Google Pub/Sub Connector 1.0 の例 - Mule 4

これらの例では、Google Pub/Sub Connector を使用して次のアクションを実行する方法を示しています。

始める前に

  • Java 8、11、または 17

  • Anypoint Studio 7.5 以降

  • Mule Runtime Engine (Mule) 4.3.0 以降

  • DataWeave

PubSub 接続の設定

このコネクタでは、PubSub を使用して接続を保護するため、[PubSub Connection (PubSub 接続)] 項目値を指定する必要があります。次の手順を実行します。

PubSub 接続の設定ファイルを作成する

PubSub 接続のプロパティが含まれる設定ファイルを作成します。

  1. /src/main/resources/​ フォルダー内に ​mule-app.properties​ という名前のファイルを作成します。

  2. mule-app.properties​ ファイルに、次のような ​PubSub Connection​ の一連のプロパティを作成します。括弧で囲まれたテキスト (括弧を含む) を各自の設定の適切な値に置き換えます。

    config.private_key_id=<privatekeyid>
    config.private_key=<privatekey>
    config.client_id=<clientid>
    config.client_email=<clientemail>
    config.default_project_id=<defaultprojectid>

    プロパティファイルの作成についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

PubSub 接続のグローバル要素を設定する

PubSub Connection​ ファイルのグローバル要素を設定します。

  1. 新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで、​[Search in Exchange (Exchange 内を検索)]​ をクリックして「​google pubsub​」と入力します。

  3. [Google Pub/Sub Connector]​ を ​[Selected modules (選択済みモジュール)]​ セクションに追加し、​[Finish (完了)]​ をクリックします。

  4. [Global Elements (グローバル要素)]​ タブをクリックし、​[Create (作成)]​ をクリックします。

  5. [Connector Configuration (コネクタ設定)] > [Google PubSub Configuration (Google PubSub 設定)]​ を選択し、​[OK]​ をクリックします。

  6. 次の値を入力します。

    項目

    名前

    Google_Pub_Sub_Configuration

    Private key id (非公開キー ID)

    ${config.private_key_id}

    Private key (非公開キー)

    ${config.private_key}

    Client id (クライアント ID)

    ${config.client_id}

    Client email (クライアントメール)

    ${config.client_email}

    Default Project Id (デフォルトのプロジェクト ID)

    ${config.default_project_id}

    Default Subscription Name (デフォルトのサブスクリプション名)

    orders-subscription

    Default Topic Name (デフォルトのトピック名)

    orders-topic

  7. [OK]​ をクリックします。

プロパティファイルのグローバル要素を設定する

mule-app.properties​ ファイルのグローバル要素を設定して、Mule がその場所を認識できるようにします。

  1. [Global Elements (グローバル要素)]​ タブをクリックし、​[Create (作成)]​ をクリックします。

  2. [Choose Global Type (グローバル種別の選択)]​ ダイアログで、​[Configuration properties (設定プロパティ)]​ を選択し、​[OK]​ をクリックします。

  3. [File (ファイル)]​ 項目に「​mule.app.properties​」と入力します。

  4. [OK]​ をクリックします。

スナップショットの作成

この Mule フローでは要求されたサブスクリプションからスナップショットを作成します。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け入れる

  • Create snapshot
    スナップショットの作成

  • Logger
    Create snapshot​ 操作からの HTTP 応答を表示する

  • Transform Message
    Create snapshot​ 操作の結果を JSON 形式で出力する

Create Snapshot 操作の Studio フロー

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

この例の実行手順

  1. コネクタが設定されていることを確認します。

  2. プロジェクトを保存します。

  3. Web ブラウザーから 「​http://localhost:8081/Leaving the Site​」 と入力してアプリケーションをテストします。​[Create Snapshot (スナップショットを作成)]​ フォームが表示されます。​[Snapshot Name (スナップショット名)]​ 項目と ​[Subscription Name (サブスクリプション名)]​ 項目は事前入力されています。

    [Create Snapshot (スナップショットを作成)] フォーム
  4. [Create Snapshot (スナップショットを作成)]​ をクリックします。スナップショットが正常に作成されたというアラートが表示されます。

スナップショットへのパッチ適用

この Mule フローでは、既存のスナップショットを更新します。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け取ります。

  • Patch snapshot
    スナップショットを更新する

  • Transform Message
    Patch snapshot​ 操作の結果を JSON 形式で出力する

  • Logger
    PATCH snapshot​ 操作からの HTTP 応答を表示する

PATCH Snapshot 操作の Studio フロー

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

スナップショットの取得

この Mule フローでは、既存のスナップショットを取得します。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け取ります。

  • Get snapshot
    スナップショットを取得する

  • Logger
    Get snapshot​ 操作からの HTTP 応答を表示する

  • Transform Message
    Get snapshot​ 操作の結果を JSON 形式で出力する

Get snapshot 操作の Studio フロー

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

この例の実行手順

  1. コネクタが設定されていることを確認します。

  2. プロジェクトを保存します。

  3. Web ブラウザーから 「​http://localhost:8081/Leaving the Site​」 と入力してアプリケーションをテストします。​[GET Snapshot (スナップショットを取得)]​ フォームが表示されます。​[Snapshot Name (スナップショット名)]​ 項目は事前入力されています。

    [GET Snapshot (スナップショットを取得)] フォーム
  4. [GET Snapshot (スナップショットを取得)]​ をクリックします。スナップショットが正常に取得されたというアラートが表示されます。

スナップショットの削除

この Mule フローでは、既存のスナップショットを削除します。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け取ります。

  • Delete snapshot
    スナップショットを削除する

Delete Snapshot 操作の Studio フロー

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
      xmlns:pubsub="http://www.mulesoft.org/schema/mule/pubsub"
      xmlns:http="http://www.mulesoft.org/schema/mule/http"
      xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
                          http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
                          http://www.mulesoft.org/schema/mule/pubsub http://www.mulesoft.org/schema/mule/pubsub/current/mule-pubsub.xsd
                          http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

    <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
        <http:listener-connection host="0.0.0.0" port="8081" />
    </http:listener-config>

    <pubsub:config name="Google_Pub_Sub_Configuration" doc:name="Google Pub Sub Configuration" projectId="${config.default_project_id}">
        <pubsub:connection privateKeyId="${config.private_key_id}" privateKey="${config.private_key}" clientId="${config.client_id}" clientEmail="${config.client_email}" />
    </pubsub:config>

    <configuration-properties doc:name="Configuration properties" file="mule-app.properties" />

    <flow name="delete-snapshot-flow">
        <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/deleteSnapshot"/>
        <pubsub:delete-snapshot doc:name="Delete snapshot" config-ref="Google_Pub_Sub_Configuration" snapshotName="#[attributes.queryParams.deletesnapshot]"/>
    </flow>
</mule>
xml

この例の実行手順

  1. コネクタが設定されていることを確認します。

  2. プロジェクトを保存します。

  3. Web ブラウザーから 「​http://localhost:8081/Leaving the Site​」 と入力してアプリケーションをテストします。​[Delete Snapshot (スナップショットを削除)]​ フォームが表示されます。​[Snapshot Name (スナップショット名)]​ 項目は事前入力されています。

    [Delete Snapshot (スナップショットを削除)] フォーム
  4. [Delete Snapshot (スナップショットを削除)]​ をクリックします。スナップショットが正常に削除されたというアラートが表示されます。

メッセージのパブリッシュ

この Mule フローでは、1 つのメッセージを選択されたトピックにパブリッシュします。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け取ります。

  • Publish Message
    メッセージをパブリッシュする

Publish Message 操作の Studio フロー

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

この例の実行手順

  1. コネクタが設定されていることを確認します。

  2. プロジェクトを保存します。

  3. Web ブラウザーから 「​http://localhost:8081/Leaving the Site​」 と入力してアプリケーションをテストします。​[Publish Message (メッセージをパブリッシュ)]​ フォームが表示されます。​[Topic Name (トピック名)]​、​[Ordering Key (順序キー)]​、および ​[Message (メッセージ)]​ 項目は事前入力されています。

    [Publish Message (メッセージをパブリッシュ)] フォーム
  4. [Publish Message (メッセージをパブリッシュ)]​ をクリックします。スナップショットが正常にパブリッシュされたというアラートが表示されます。