Google Cloud Pub/Sub 拡張機能

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

ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。この拡張機能を API プロキシから使用する前に、次の操作を行う必要があります。

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

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

  3. サービス アカウントのキーを生成します。

  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

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

リクエスト パラメータ

<Input><![CDATA[{
      "message" : "message-to-publish"
    }]]></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 のようになります。 なし ○