Apigee Integration と Cloud Pub/Sub トリガーのスタートガイド

Apigee Integration と Cloud Pub/Sub トリガーを使用してサンプルの統合を作成する方法を説明します。以下では、完全な統合の実行に必要なトリガー、タスク、変数、データ マッピングを構成する方法を説明します。

概要

このクイックスタートでは、Cloud Pub/Sub トリガーとの統合を作成して、IOT デバイスからの温度の読み取り値をケルビン単位で受け取る既存の Pub/Sub トピックをリッスンします。その後、データ マッピング タスクを使用して Pub/Sub メッセージを摂氏に変換し、値をメールで送信できます。

始める前に

クイックスタートを始める前に、次の作業を行ってください。

    • 次の IAM ロールを Google Cloud プロジェクトの Apigee Integration サービス エージェントservice-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com)に割り当てます。
      • Pub/Sub 編集者
      • Apigee Integration 起動元

        IAM ロールの割り当ての詳細については、IAM のロールと権限をご覧ください。

    環境を設定する

    新しい Cloud Pub/Sub トピックを作成する

    このクイックスタートでは、IOT デバイスから温度の読み取り値をケルビン単位で受け取る Pub/Sub トピックが存在することを前提としています。実際にトピックをデバイスに接続する必要はありません。このクイックスタートでは、トピックをリッスンし、トリガーされたときにタスクを実行する統合機能をテストします。

    このチュートリアルで使用するサンプル トピックを作成するには:

    1. Cloud コンソールで Pub/Sub の [トピック] ページに移動します。

      Pub/Sub の [トピック] ページに移動

    2. [トピックを作成] をクリックします。
    3. [トピック ID] フィールドに、一意のトピック名を入力します。例: temperaturesensor
    4. [保存] をクリックします。

    新しい統合を作成する

    新しい統合を作成するには、次の操作を行います。

    1. Apigee UI で、Apigee 組織を選択します。
    2. [Develop] > [Integrations] の順にクリックします。
    3. [Create integration] をクリックします。
    4. [Create Integration] ダイアログで名前と説明を入力します。たとえば、my-test-integration のようにします。
    5. 統合のリージョンを選択します。
    6. [Create] をクリックして統合エディタを開きます。

    Cloud Pub/Sub トリガーを追加する

    Cloud Pub/Sub トリガーを統合に追加するには、次の操作を行います
    1. 統合エディタで [Triggers] を選択し、使用可能なトリガーのリストを表示します。
    2. [Cloud Pub/Sub trigger] 要素をクリックしてデザイナーに配置します。

    Cloud Pub/Sub トリガーを構成する

    統合エディタの [Cloud Pub/Sub trigger] 要素をクリックして、トリガー構成ペインを表示します。

    [Pub/Sub topic] フィールドに、トリガーがリッスンするトピックを次の形式で指定します。

    projects/PROJECT_ID/topics/TOPIC_ID
    ここで
    • PROJECT_ID は、トピックが作成される Google Cloud プロジェクトです。
    • TOPIC_ID は、始める前にで作成した Cloud Pub/Sub トピックの ID です。

    たとえば、プロジェクトの名前が my-project であり、トピックに temperaturesensor という名前を付けた場合は、次のように入力します。

    projects/my-project/topics/temperaturesensor

    Google Cloud プロジェクトで使用可能なすべてのトピックを表示するには、[トピック] の [トピックの名前] 列をご覧ください。

    [Cloud Pub/Sub trigger] 構成ペインの [Trigger Output] フィールドに、Pub/Sub メッセージを保持する変数が自動的に入力されます。

    データ マッピング タスクの追加と構成

    データ マッピング タスクを構成するには:

    1. [Tasks] を選択して、使用可能なタスクのリストを表示します。
    2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
    3. デザイナーの [Data Mapping] タスクをクリックして、タスクの構成ペインを開きます。
    4. [Open Data Mapping Editor] をクリックします。

      Data Mapping Editor を使用すると、使用可能な変換関数を使用して、入力変数を目的の出力変数にマッピングできます。出力は、他の統合タスクまたはトリガーの変数として使用できます。データを変数として渡す方法の詳細については、Apigee Integration で変数を使用するをご覧ください。

      このクイックスタートは、次のように、CloudPubSubMessage を入力としてマッピングを作成します。

      1. [Variables] リストで CloudPubSubMessage JSON 変数を開き、CloudPubSubMessage.data 変数を最初の [Input] 行にドラッグします。
      2. CloudPubSubMessage.data 変数の横にある [+ (Add a function)] をクリックして、使用可能な関数のプルダウン リストを表示します。
      3. [TO_DOUBLE()] を選択して、CloudPubSubMessage.data の値を double のデータ型に変換します。
      4. もう一度 [+ (Add a function)] をクリックして、SUBTRACT 関数を選択して連結します。
      5. SUBTRACT 関数の値として「273.15」と入力します。これは、ケルビン単位の温度を摂氏度数に変換するためです。
      6. 出力列の最初の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
        • Name:TempInCelsius」と入力します。
        • [Use as an output of integration] をオンにします。
        • [Create] をクリックして変数を作成し、ペインを閉じます。新しい TempInCelsius 変数が [Variables] リストに表示されます。
      7. TempInCelsius 変数を、[Variables] リストから [Input] 列の 2 番目の行にドラッグします。
      8. TempInCelsius 変数の [+ (Add a function)] をクリックして、使用可能な関数のプルダウン リストを表示します。
      9. [TO_STRING()] をクリックして、変数のデータ型を double から string に変換します。
      10. [Output] 列の 2 番目の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
        • Name:TempInCelsiusString」と入力します。
        • Blank default value means: [Empty String] を選択します。
        • [Use as an output of integration] チェックボックスをオンにします。
        • [Create] をクリックして変数を作成し、ペインを閉じます。新しい変数が、データ マッピング エディタの左側にある [Variables] リストに表示されます。
      11. マッピングが完了したら、データ マッピング エディタを閉じます。変更は自動的に保存されます。

    メール送信タスクを追加して構成する

    メール送信タスクを構成するには:

    1. 統合エディタで [Tasks] を選択して、使用可能なタスクのリストを表示します。
    2. 統合エディタで [Send Email] 要素をクリックして配置します。
    3. デザイナーで [Send Email] 要素をクリックして、タスクの構成ペインを開きます。次のプロパティ値を設定します。
      • To Recipient(s): メールアドレスを入力します。このメールアドレスを使用して、統合が正常に完了していることを確認します。
      • Subject:Temperature in Celsius」と入力します。
      • Body in Plain Text: データ マッピング タスクで前に作成した TempInCelsiusString 変数を選択します。
      • 残りのオプションはデフォルト構成のままにします。
      プロパティへの変更は自動的に保存されます。

    必要なエッジ接続を追加する

    エッジは、統合の 2 つの要素間の接続です。接続は、ある要素(タスクまたはトリガー)から別の要素への制御フローの方向を示します。エッジの詳細については、エッジをご覧ください。

    1. [Cloud Pub/Sub trigger] 要素のコントロール ポイントにカーソルを合わせることで、[Cloud Pub/Sub trigger] 要素から [Data Mapping] 要素へのエッジ接続を追加します。線をクリックして [Data Mapping] タスク要素のコントロール ポイントまでドラッグします。このエッジは、Cloud Pub/Sub トリガータスクからデータ マッピング タスクへの制御フローを示します。
    2. [Data Mapping] 要素から [Send Email] 要素にエッジ接続を追加するには、[Data Mapping] 要素のコントロール ポイントにカーソルを合わせてからクリックし、[Send Email] タスク要素のコントロール ポイントに線を引きます。このエッジは、データ マッピング タスクからメール送信タスクへの制御フローを示します。

    次の図のように、完成した接続が表示されます。

    クイックスタート フローを示す画像 クイックスタート フローを示す画像

    統合をテストする

    Pub/Sub トピックページから新しい統合をテストするには、次のようにします。

    1. Cloud コンソールで Pub/Sub の [トピック] ページに移動します。

      Pub/Sub の [トピック] ページに移動

    2. 作成した temperaturesensor トピックを検索して選択します。
    3. トピックの詳細ページで、[+ メッセージをパブリッシュ] をクリックして [メッセージのパブリッシュ] 構成ペインを開きます。
    4. [メッセージ本文] フィールドに「307.15」と入力します。

      このメッセージを作成すると、IOT デバイスから Pub/Sub が受信したケルビン単位の温度読み取り値のパブリッシュがシミュレートされます。

    5. [公開] をクリックしてメッセージをトピックにパブリッシュし、統合をトリガーします。

    正常に完了すると、メール送信タスクで指定したメールアドレスに、ケルビン温度が摂氏温度に変換された値を含むメールが送信されます。メール クライアントでメールの受信を確認します。

    統合によって送信されるメールの本文には、値 34 が含まれています。

    メールの内容の確認に加え、ログを調査して、特定の統合のステータスとペイロードを確認できます。ログを表示するには:

    1. 統合エディタのツールバーで、[Logs] をクリックします。
    2. [Execution Logs] ページでは、統合の実行の試行ごとに関する詳細を確認できます。各エントリには、以下のような実行の試行の詳細が含まれます。
      • 統合名
      • 実行 ID
      • ステータス
      • 開始時刻
      • 期間
      • 統合バージョン
      • トリガー ID
    3. 実行された統合の横にある展開の矢印(>)をクリックすると、展開された統合のタスクと変数のリストと、タスクのステータスと変数のペイロードが表示されます。