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 のようになります。 なし