Google Cloud Pub/Sub 拡張機能

バージョン: 1.2.0

Google Cloud Pub/Sub サービスのトピックにメッセージを公開します。

ここでは、この拡張機能を構成して使用する方法についてのリファレンスを提供します。

前提条件

API プロキシからこの拡張機能を使用する前に、次の操作を行う必要があります。

  1. クイックスタート: コンソールの使用の説明に従って、Cloud Pub/Sub トピックを作成します。

  2. トピックを取得したら、Cloud Pub/Sub トピックに公開する権限を付与します。たとえば、roles/pubsub.publisher ロールを使用してトピックに公開できます。Cloud Pub/Sub ロールの詳細については、アクセス制御をご覧ください。

  3. GCP Console でサービス アカウント キーを作成します

  4. 拡張機能の追加と構成を行うときに、構成リファレンスを使用して、生成されたキーの JSON ファイルのコンテンツを使用します。

Cloud Pub/Sub について

Cloud Pub/Sub は、送信者と受信者を分離する多対多の非同期メッセージングを提供します。Cloud Pub/Sub は、Google Cloud Platform や外部にホストされているシステムをデベロッパーがすばやく統合するのに役立つ、低レイテンシで耐久性のあるメッセージングを提供します。

Cloud Pub/Sub を使い始めたばかりの場合は、Cloud Pub/Sub ドキュメントのクイックスタートをご覧ください。

次の例では、ExtensionCallout ポリシーを使用して、Cloud Pub/Sub 拡張機能のアクションをサポートする方法を説明します。

メッセージの公開

この例では、publish アクションを使用して、拡張機能の構成に指定されたトピックに簡単なメッセージを公開しています。publish アクションは、公開されたトピック内の公開されたメッセージの ID を返します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : "My test message."
      }
    ]]></Input>
    <Output>topic.message.id</Output>
</ConnectorCallout>

次の Assign Message ポリシーは、拡張機能のレスポンスを格納する変数の値を使用して、レスポンス ペイロードを割り当てます。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.id}</Payload>
    </Set>
</AssignMessage>

この例では、レスポンス データが次のような JSON として返されます。

{"messageId":"165918654986954"}

アクション

publish

この拡張機能の構成で指定されたトピックにメッセージを公開します。

構文

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish"
}]]></Input>

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>

リクエスト パラメータ

パラメータ 説明 デフォルト 必須
message 公開するメッセージ。 String なし

レスポンス

トピックに公開されたメッセージの ID を含む JSON。例:

{"messageId":"165918654986954"}

構成リファレンス

この拡張機能を API プロキシで使用するように構成してデプロイする場合は、以下のプロパティを使用します。

拡張機能の共通プロパティ

すべての拡張機能には次のプロパティがあります。

プロパティ 説明 デフォルト 必須
name この拡張機能に付ける名前。 なし
packageName Apigee Edge から提供された拡張機能パッケージの名前。 なし
version 拡張機能を構成する拡張機能パッケージのバージョン番号。 なし
configuration 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 なし

この拡張機能パッケージに固有のプロパティ

プロパティ 説明 デフォルト 必須
topic 公開先のトピック。この値は、Pub/Sub サービス(サービスの GCP Console など)から取得します。たとえば、トピック名は projects/GCP-PROJECT-ID/topics/TOPIC-NAME の形式になります。 なし