Application Integration でサポートされているコネクタをご覧ください。
Cloud Pub/Sub トピックをリッスンしてメールを送信する
Application Integration と Cloud Pub/Sub トリガーを使用してサンプル統合を作成する方法を学習します。 次の手順では、完全な統合の実行に必要なトリガー、タスク、変数、データ マッピングを構成する方法を説明します。
概要
このクイックスタートでは、Cloud Pub/Sub トリガーとの統合を作成して、IOT デバイスからの温度の読み取り値をケルビン単位で受け取る既存の Pub/Sub トピックをリッスンします。その後、データ マッピング タスクを使用して Pub/Sub メッセージを摂氏に変換し、値をメールで送信できます。
始める前に
Google Cloud プロジェクトの Application Integration サービス エージェント(service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
)に、次の Identity and Access Management(IAM)ロールを割り当てます。
- Pub/Sub 編集者
- Application Integration の起動元
IAM ロールの割り当ての詳細については、IAM のロールと権限をご覧ください。
環境の設定
新しい Cloud Pub/Sub トピックを作成します。
このクイックスタートでは、IOT デバイスから温度の読み取り値をケルビン単位で受け取る Pub/Sub トピックがあるとします。実際にトピックをデバイスに接続する必要はありません。このクイックスタートでは、トピックをリッスンし、トリガーされたときにタスクを実行する統合機能をテストします。
このチュートリアルで使用するサンプル トピックを作成するには:
- Cloud Console の Pub/Sub トピックページに移動します。
- [トピックを作成] をクリックします。
- [トピック ID] フィールドに、一意のトピック名を入力します。例:
temperaturesensor
- [Save] をクリックします。
新しい統合を作成する
新しい統合を作成するには、次の手順を行います。
- Google Cloud コンソールで [Application Integration] ページに移動します。
- ナビゲーション メニューで [統合] をクリックします。[統合] のページが表示されます。
- [統合を作成] をクリックします。
- [統合の作成] ダイアログで名前と説明を入力します。例:
my-test-integration
。 - 統合のリージョンを選択します。
- [作成] をクリックして統合エディタを開きます。
Cloud Pub/Sub トリガーを追加する
Cloud Pub/Sub トリガーを統合に追加するには、次の操作を行います- 統合エディタで [トリガー] を選択し、使用可能なトリガーのリストを表示します。
- [Cloud Pub/Sub trigger] 要素をクリックしてデザイナーに配置します。
Cloud Pub/Sub トリガーを構成する
統合エディタで [Cloud Pub/Sub トリガー] 要素をクリックして、トリガー構成ペインを表示します。
[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 トリガー] 構成ペインの [トリガー出力] フィールドに、Pub/Sub メッセージを保持する変数が自動的に入力されます。
データ マッピング タスクの追加と構成
データ マッピング タスクを構成するには:
- [Tasks] を選択して、使用可能なタスクのリストを表示します。
- 統合エディタで [Data Mapping] 要素をクリックして配置します。
- デザイナーの [Data Mapping] タスクをクリックして、タスクの構成ペインを開きます。
- [データ マッピング エディタを開く] をクリックします。
データ マッピング エディタを使用すると、使用可能な変換関数を使用して、入力変数を目的の出力変数にマッピングできます。出力は、他の統合タスクまたはトリガーの変数として使用できます。データを変数として渡す方法の詳細については、Application Integration で変数を使用するをご覧ください。
このクイックスタートは、次のように、
CloudPubSubMessage
を入力としてマッピングを作成します。- [変数] リストで
CloudPubSubMessage
JSON 変数を開き、CloudPubSubMessage.data
変数を最初の [入力] 行にドラッグします。 CloudPubSubMessage.data
変数の横にある [+ (Add a function)] をクリックして、使用可能な関数のプルダウン リストを表示します。- [
TO_DOUBLE()
] を選択して、CloudPubSubMessage.data
の値をdouble
のデータ型に変換します。 - もう一度 [+(関数を追加)] をクリックして、
SUBTRACT
関数を選択して連結します。 -
SUBTRACT
関数の値として「273.15
」と入力します。これは、ケルビン単位の温度を摂氏度数に変換するためです。 - [出力] 列の 1 番目の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
- 名前: 「
TempInCelsius
」と入力します。 - [Use as an output of integration] チェックボックスをオンにします。
- [作成] をクリックして変数を作成し、ペインを閉じます。新しい TempInCelsius 変数が [変数] リストに表示されます。
- 名前: 「
- TempInCelsius 変数を、[変数] リストから [入力] 列の 2 番目の行にドラッグします。
- TempInCelsius 変数内の [+(関数を追加)] をクリックして、使用可能な関数のプルダウン リストを表示します。
- [
TO_STRING()
] をクリックして、変数のデータ型をdouble
からstring
に変換します。 - [Output] 列の 2 番目の行をクリックして、変換されたデータの値を保持する新しい変数を作成します。次のフィールドに値を入力します。
- 名前: 「
TempInCelsiusString
」と入力します。 - 空のデフォルト値の手段: [空の文字列] を選択します。
- [統合の出力として使用する] チェックボックスをオンにします。
- [作成] をクリックして変数を作成し、ペインを閉じます。新しい変数が、データ マッピング エディタの左側にある [Variables] リストに表示されます。
- 名前: 「
- マッピングが完了したら、データ マッピング エディタを閉じます。変更は自動的に保存されます。
- [変数] リストで
メール送信タスクを追加して構成する
メール送信タスクを構成するには、次のようにします。
- 統合エディタで [タスク] を選択して、使用可能なタスクのリストを表示します。
- 統合エディタで [Send Email] 要素をクリックして配置します。
- デザイナーで [Send Email] 要素をクリックして、タスクの構成ペインを開きます。次のプロパティ値を設定します。
- 送信先: メールアドレスを入力します。このメールを使用して、統合が正常に完了していることを確認します。
- 件名: 「
Temperature in Celsius
」と入力します。 - 書式なしテキストの本文: データ マッピング タスクで前に作成した
TempInCelsiusString
変数を選択します。 - 残りのオプションはデフォルト構成のままにします。
必要なエッジ接続を追加する
エッジは、統合の 2 つの要素間の接続です。接続は、ある要素(タスクまたはトリガー)から別の要素への制御フローの方向を示します。エッジの詳細については、エッジをご覧ください。
- [Cloud Pub/Sub トリガー] 要素のコントロール ポイントにカーソルを合わせることで、[Cloud Pub/Sub トリガー] 要素から [データ マッピング] 要素にエッジ接続を追加し、線をクリックして [データ マッピング] タスク要素のコントロール ポイントまでドラッグします。このエッジは、Cloud Pub/Sub トリガータスクからデータ マッピング タスクへの制御フローを示します。
- [データ マッピング] 要素から [メール送信] 要素にエッジ接続を追加するには、[データ マッピング] 要素のコントロール ポイントにカーソルを合わせてからクリックし、[メール送信] タスク要素のコントロール ポイントに線を引きます。このエッジは、データ マッピングタスクからメール送信タスクへの制御フローを示します。
次の図のように、完成した接続が表示されます。
統合を公開する
統合を公開するには、統合エディタのツールバーで [公開] をクリックします。
統合が正常に公開されると、公開された統合の実行ログを表示、検査できます。ログを表示するには、[View execution logs for this integration] をクリックします。実行ログのページが表示されます。
Cloud Pub/Sub を使用して統合をテストする
Pub/Sub トピックページから新しい統合をテストするには、次のようにします。
- Cloud Console の Pub/Sub トピックページに移動します。
- 作成した temperaturesensor トピックを検索して選択します。
- トピックの詳細ページで、[+ メッセージをパブリッシュ] をクリックして [メッセージのパブリッシュ] 構成ペインを開きます。
- [メッセージ本文] フィールドに「
307.15
」と入力します。このメッセージを作成すると、IOT デバイスから Pub/Sub が受信したケルビン単位の温度読み取り値のパブリッシュがシミュレートされます。
- [公開] をクリックしてメッセージをトピックに公開し、統合をトリガーします。
正常に完了すると、メール送信タスクで指定したメールアドレスに、ケルビン温度が摂氏温度に変換された値を記したメールが送信されます。ご自身のメール クライアントでメールの受信を確認します。
統合によって送信されるメールの本文には、値 34
が記載されています。
メールの内容の確認に加え、ログを調査して、特定の統合のステータスとペイロードを表示できます。ログを表示するには:
- 統合エディタで、[View execution logs for this integration] をクリッhttps://localization.google.com/polyglot/tasks/77296930クします。実行ログのページが表示されます。実行ログの詳細については、インテグレーション実行ログを表示するをご覧ください。
- [Execution Logs] ページでは、統合の実行の試行ごとに関する詳細を確認できます。各エントリには、以下のような実行の試行の詳細が含まれます。
- 連携名
- 実行 ID
- ステータス
- 開始時刻
- 所要時間
- 統合バージョン
- トリガー ID
- 実行された統合の横にある展開の矢印(>)をクリックすると、展開された統合のタスクと変数のリストと、タスクのステータスと変数のペイロードが表示されます。
割り当てと上限
割り当てと上限については、割り当てと上限をご覧ください。