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 の [トピック] ページに移動します。
- [トピックを作成] をクリックします。
- [トピック ID] フィールドに、一意のトピック名を入力します。例:
temperaturesensor
- [保存] をクリックします。
- Apigee UI で、Apigee 組織を選択します。
- [Develop] > [Integrations] の順にクリックします。
- [Create integration] をクリックします。
- [Create Integration] ダイアログで名前と説明を入力します。たとえば、
my-test-integration
のようにします。 - 統合のリージョンを選択します。
- [Create] をクリックして統合エディタを開きます。
- 統合エディタで [Triggers] を選択し、使用可能なトリガーのリストを表示します。
- [Cloud Pub/Sub trigger] 要素をクリックしてデザイナーに配置します。
- PROJECT_ID は、トピックが作成される Google Cloud プロジェクトです。
- TOPIC_ID は、始める前にで作成した Cloud Pub/Sub トピックの ID です。
- [Tasks] を選択して、使用可能なタスクのリストを表示します。
- 統合エディタで [Data Mapping] 要素をクリックして配置します。
- デザイナーの [Data Mapping] タスクをクリックして、タスクの構成ペインを開きます。
- [Open Data Mapping Editor] をクリックします。
Data Mapping Editor を使用すると、使用可能な変換関数を使用して、入力変数を目的の出力変数にマッピングできます。出力は、他の統合タスクまたはトリガーの変数として使用できます。データを変数として渡す方法の詳細については、Apigee Integration で変数を使用するをご覧ください。
このクイックスタートは、次のように、
CloudPubSubMessage
を入力としてマッピングを作成します。- [Variables] リストで
CloudPubSubMessage
JSON 変数を開き、CloudPubSubMessage.data
変数を最初の [Input] 行にドラッグします。 CloudPubSubMessage.data
変数の横にある [+ (Add a function)] をクリックして、使用可能な関数のプルダウン リストを表示します。- [
TO_DOUBLE()
] を選択して、CloudPubSubMessage.data
の値をdouble
のデータ型に変換します。 - もう一度 [+ (Add a function)] をクリックして、
SUBTRACT
関数を選択して連結します。 -
SUBTRACT
関数の値として「273.15
」と入力します。これは、ケルビン単位の温度を摂氏度数に変換するためです。 - 出力列の最初の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
- Name: 「
TempInCelsius
」と入力します。 - [Use as an output of integration] をオンにします。
- [Create] をクリックして変数を作成し、ペインを閉じます。新しい TempInCelsius 変数が [Variables] リストに表示されます。
- Name: 「
- TempInCelsius 変数を、[Variables] リストから [Input] 列の 2 番目の行にドラッグします。
- TempInCelsius 変数の [+ (Add a function)] をクリックして、使用可能な関数のプルダウン リストを表示します。
- [
TO_STRING()
] をクリックして、変数のデータ型をdouble
からstring
に変換します。 - [Output] 列の 2 番目の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
- Name: 「
TempInCelsiusString
」と入力します。 - Blank default value means: [Empty String] を選択します。
- [Use as an output of integration] チェックボックスをオンにします。
- [Create] をクリックして変数を作成し、ペインを閉じます。新しい変数が、データ マッピング エディタの左側にある [Variables] リストに表示されます。
- Name: 「
- マッピングが完了したら、データ マッピング エディタを閉じます。変更は自動的に保存されます。
- [Variables] リストで
- 統合エディタで [Tasks] を選択して、使用可能なタスクのリストを表示します。
- 統合エディタで [Send Email] 要素をクリックして配置します。
- デザイナーで [Send Email] 要素をクリックして、タスクの構成ペインを開きます。次のプロパティ値を設定します。
- To Recipient(s): メールアドレスを入力します。このメールアドレスを使用して、統合が正常に完了していることを確認します。
- Subject: 「
Temperature in Celsius
」と入力します。 - Body in Plain Text: データ マッピング タスクで前に作成した
TempInCelsiusString
変数を選択します。 - 残りのオプションはデフォルト構成のままにします。
- [Cloud Pub/Sub trigger] 要素のコントロール ポイントにカーソルを合わせることで、[Cloud Pub/Sub trigger] 要素から [Data Mapping] 要素へのエッジ接続を追加します。線をクリックして [Data Mapping] タスク要素のコントロール ポイントまでドラッグします。このエッジは、Cloud Pub/Sub トリガータスクからデータ マッピング タスクへの制御フローを示します。
- [Data Mapping] 要素から [Send Email] 要素にエッジ接続を追加するには、[Data Mapping] 要素のコントロール ポイントにカーソルを合わせてからクリックし、[Send Email] タスク要素のコントロール ポイントに線を引きます。このエッジは、データ マッピング タスクからメール送信タスクへの制御フローを示します。
- Cloud コンソールで Pub/Sub の [トピック] ページに移動します。
- 作成した temperaturesensor トピックを検索して選択します。
- トピックの詳細ページで、[+ メッセージをパブリッシュ] をクリックして [メッセージのパブリッシュ] 構成ペインを開きます。
- [メッセージ本文] フィールドに「
307.15
」と入力します。このメッセージを作成すると、IOT デバイスから Pub/Sub が受信したケルビン単位の温度読み取り値のパブリッシュがシミュレートされます。
- [公開] をクリックしてメッセージをトピックにパブリッシュし、統合をトリガーします。
- 統合エディタのツールバーで、[Logs] をクリックします。
- [Execution Logs] ページでは、統合の実行の試行ごとに関する詳細を確認できます。各エントリには、以下のような実行の試行の詳細が含まれます。
- 統合名
- 実行 ID
- ステータス
- 開始時刻
- 期間
- 統合バージョン
- トリガー ID
- 実行された統合の横にある展開の矢印(>)をクリックすると、展開された統合のタスクと変数のリストと、タスクのステータスと変数のペイロードが表示されます。
環境を設定する
新しい Cloud Pub/Sub トピックを作成する
このクイックスタートでは、IOT デバイスから温度の読み取り値をケルビン単位で受け取る Pub/Sub トピックが存在することを前提としています。実際にトピックをデバイスに接続する必要はありません。このクイックスタートでは、トピックをリッスンし、トリガーされたときにタスクを実行する統合機能をテストします。
このチュートリアルで使用するサンプル トピックを作成するには:
新しい統合を作成する
新しい統合を作成するには、次の操作を行います。
Cloud Pub/Sub トリガーを追加する
Cloud Pub/Sub トリガーを統合に追加するには、次の操作を行いますCloud Pub/Sub トリガーを構成する
統合エディタの [Cloud Pub/Sub trigger] 要素をクリックして、トリガー構成ペインを表示します。
[Pub/Sub topic] フィールドに、トリガーがリッスンするトピックを次の形式で指定します。
projects/PROJECT_ID/topics/TOPIC_IDここで
たとえば、プロジェクトの名前が my-project
であり、トピックに temperaturesensor
という名前を付けた場合は、次のように入力します。
projects/my-project/topics/temperaturesensor
Google Cloud プロジェクトで使用可能なすべてのトピックを表示するには、[トピック] の [トピックの名前] 列をご覧ください。
[Cloud Pub/Sub trigger] 構成ペインの [Trigger Output] フィールドに、Pub/Sub メッセージを保持する変数が自動的に入力されます。
データ マッピング タスクの追加と構成
データ マッピング タスクを構成するには:
メール送信タスクを追加して構成する
メール送信タスクを構成するには:
必要なエッジ接続を追加する
エッジは、統合の 2 つの要素間の接続です。接続は、ある要素(タスクまたはトリガー)から別の要素への制御フローの方向を示します。エッジの詳細については、エッジをご覧ください。
次の図のように、完成した接続が表示されます。
統合をテストする
Pub/Sub トピックページから新しい統合をテストするには、次のようにします。
正常に完了すると、メール送信タスクで指定したメールアドレスに、ケルビン温度が摂氏温度に変換された値を含むメールが送信されます。メール クライアントでメールの受信を確認します。
統合によって送信されるメールの本文には、値 34
が含まれています。
メールの内容の確認に加え、ログを調査して、特定の統合のステータスとペイロードを確認できます。ログを表示するには: