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

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Apigee X のドキュメントを表示中。
Apigee Edge のドキュメントを表示する。

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

このクイックスタートでは、すべて統合デザイナー内で、Cloud Pub/Sub トリガーを使用して統合を作成し、Pub/Sub トピックをリッスンし、データ マッピングを使用して Pub/Sub メッセージを変換し、メールを送信します。

始める前に

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

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

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

  • 新しい Cloud Pub/Sub トピックを作成します。

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

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

    1. Cloud Console の Pub/Sub トピックページに移動します。

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

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

新しい統合を作成する

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

  1. Apigee UI で、Apigee 組織を選択します。
  2. [開発] > [統合] の順にクリックします。
  3. [統合を作成] をクリックします。
  4. [統合の作成] ダイアログで名前と説明を入力します。例: my-test-integration
  5. サポートされているリージョンのリストから、統合のリージョンを選択します。
  6. [作成] をクリックして統合デザイナーを開きます。

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

Cloud Pub/Sub トリガーを統合に追加する手順は次のとおりです。
  1. 統合デザイナーで、[タスク / トリガー] > [トリガー] の順に選択して、使用可能なトリガーのリストを表示します。
  2. Cloud Pub/Sub トリガー要素をクリックしてデザイナーに配置します。

Cloud Pub/Sub トリガーを設定する

統合デザイナーの [Cloud Pub/Sub トリガー] 要素をクリックして、トリガー設定ペインを表示します。

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

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

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

projects/my-project/topics/temperaturesensor です。

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

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

トリガー出力変数の画像

データ マッピング タスクを追加して構成する

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

  1. [タスク / トリガーを追加] > [タスク] の順に選択して、利用できるタスクのリストを表示します。
  2. 統合デザイナーで [データ マッピング] 要素をクリックして配置します。
  3. デザイナーの [データ マッピング] タスクをクリックして、タスクの構成ペインを開きます。
  4. [データ マッピング エディタを開く] をクリックします。

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

    このクイックスタートは、次の手順を行って、CloudPubSubMessage を入力として使用しマッピングを作成します。

    1. CloudPubSubMessage 変数を、[変数] リストから最初の [入力] 行にドラッグします。
    2. CloudPubSubMessage 変数チップで [+(関数を追加)] をクリックして、使用可能な関数のプルダウン リストを表示します。
    3. [TO_DOUBLE()] をクリックして、CloudPubSubMessage JSON 値を double データ型に変換します。
    4. CloudPubSubMessage 変数チップでもう一度 [+(関数を追加)] をクリックして、SUBTRACT 関数を選択して連結します。
    5. パラメータ 273.15 を入力して、ケルビン単位の温度を摂氏度数に変換します。
    6. [出力] 列の 1 番目の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
      • 名前:TempInCelsius」と入力します。
      • [Use as an output of integration] チェックボックスをオンにします。
      • [作成] をクリックして変数を作成し、ペインを閉じます。新しい TempInCelsius 変数が [変数] リストに表示されます。
    7. TempInCelsius 変数を、[変数] リストから [入力] 列の 2 番目の行にドラッグします。
    8. TempInCelsius 変数内の [+(関数を追加)] をクリックして、使用可能な関数のプルダウン リストを表示します。
    9. [TO_STRING()] をクリックして、変数のデータ型を double から string に変換します。
    10. [Output] 列の 2 番目の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
      • 名前:TempInCelsiusString」と入力します。
      • 空のデフォルト値の意味: [空の文字列] を選択します。
      • [統合の出力として使用する] チェックボックスをオンにします。
      • [作成] をクリックして変数を作成し、ペインを閉じます。新しい変数が、データ マッピング エディタの左側にある [Variables] リストに表示されます。
    11. 次の図のように、完成したマッピングが表示されます。

      データ マッピング エディタの画像 データ マッピング エディタの画像

    12. マッピングが完了したら、データ マッピング エディタを閉じます。変更は自動的に保存されます。

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

Send Email タスクを構成するには、次のようにします。

  1. 統合デザイナーで、[タスク / トリガーを追加] > [タスク] をクリックして使用可能なタスクのリストを表示します。
  2. 統合デザイナーで [メール送信] 要素をクリックして配置します。
  3. デザイナーで [メール送信] 要素をクリックして、タスクの構成ペインを開きます。次のプロパティ値を設定します。
    • 送信先: メールアドレスを入力します。このメールを使用して、統合が正常に完了していることを確認します。
    • 件名: 「Temperature in Celsius」と入力します。
    • 書式なしテキストの本文: データ マッピング タスクで前に作成した TempInCelsiusString 変数を選択します。
    • 残りのオプションはデフォルト構成のままにします。
    プロパティへの変更は自動的に保存されます。

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

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

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

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

    統合トリガーとタスクの画像

統合をテストする

新しい統合をテストするには:

  1. 統合デザイナー ツールバーの [テスト] をクリックし、[Pub/Sub トリガー] を選択します。
  2. [公開とテストを確認する] ダイアログで [公開とテスト] をクリックします。
  3. Cloud Console の Pub/Sub トピックページに移動します。

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

  4. 前のステップで作成した temperaturesensor トピックを検索して選択します。
  5. トピックの詳細ページで、[+ メッセージをパブリッシュ] をクリックして [メッセージのパブリッシュ] 構成ペインを開きます。
  6. [メッセージ本文] フィールドに「307.15」と入力します。このメッセージを作成すると、IOT デバイスから Pub/Sub が受信したケルビン単位の温度読み取り値の公開がシミュレートされます。
  7. [公開] をクリックしてメッセージをトピックに公開し、統合をトリガーします。

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

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

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

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