2024年7月29日 【Google Cloud】Application IntegrationでBigQueryの顧客リストから誕生日にメールを自動送信 Application Integration BigQuery Google Cloud 検索する Popular tags 生成AI(Generative AI) Looker Studio BigQuery AlloyDB Google Workspace 事例紹介 Cloud SQL Category Google Cloud Author Google Cloud研究開発チーム SHARE 目次 Application Integrationとは やりたいこと 事前準備 Application Integrationで統合フロー作成 実行確認 おわりに Content こんにちは。Google Cloud研究開発チームです。 今回は、Google CloudのiPaaSサービスである Application IntegrationをセットアップからIntegrationの実行まで試してみました。 Application Integrationとは Application Integrationは、2023年7月にリリースされたGoogle Cloud 上で動作するiPaaS(Integration Platform as a Service)ソリューションです。 データ連携のワークフローを作成する場合など、従来はプログラムを記述する必要がありましたが、GUI上でドラック&ドロップなどのマウス操作で簡単に作成することができます。 やりたいこと 毎日10時に誕生日の方に誕生日おめでとうメールを送る 本記事では6/25・26が誕生日の方にメールを送ります 完成イメージはこちらです。 メイン統合 毎日10時にスケジュール起動して、送信対象の顧客情報を取得します。 サブ統合 メイン統合のFor Each Loopから呼び出し、メールを送ります。 事前準備 今回利用するサービスはこちらです。 BigQuery Application Integration ※本記事は、Google CloudプロジェクトやGoogleアカウントがあることを前提として進めていきます。 BigQueryで顧客リストを準備 テーブル名は「customer」としました。 name、email はSTRING型、birthdayはDATE型にしてデータをいくつかINSERTしておきます。 サービスアカウント Application Integrationで利用するサービスアカウントを作成し、適切な権限を付与します。 今回は以下の権限を追加します。 Application Integrationの起動元 BigQueryジョブユーザー BigQuery読み取りセッションユーザー Application Integrationで統合フロー作成 Application Integrationで統合フローを作っていきます。 サブ統合を作成する まずはサブ統合から作っていきます。 サブ統合では以下の設定を行います。 メールの本文に1人ずつ名前を入れるためのデータマッピング メールを1人ずつ送信する設定 Google CloudコンソールでApplication Integration のサービス画面を開きます。 (日本語では「アプリケーションの統合」と表示されています。) 「+CREATE INTEGRATION」を押下すると以下の画面が表示されるので、統合の名前、リージョンを設定します。 次にトリガーとタスクを配置します。 TRIGGERSからAPIトリガーをドラッグ&ドロップして作成します。名前はBirthday_Message_Sender_Triggerにしました。 TASKSからData MappingタスクとSend Emailタスクをドラッグ&ドロップして作成します。 APIトリガーとDataMapping、DataMappingとSendEmailをドラッグ&ドロップして接続します。 Data Mappingタスクで変数を作成する OPEN DATA MAPPING EDITORをクリックすると、Data Mapping Task Editorが開きます。 メイン統合から値を取得するために変数birthday_userを用意します。 「+CREATE」をクリックすると、Create Variableが開くので以下のように設定します。 Input 画面左側の変数から、 birthday_userをInputにドラッグします。 次に、「+」を押下してプルダウンからGET_PROPERTY関数を選択します。 GET_PROPERTY関数の引数には、emailとnameを設定します。 「Variable or Value」を押下すると以下のようなパネルが表示されるので、Valueを選択して取得したいプロパティ名を入力して「SAVE」を押下します。 同じようにnameも作成します。 Output 次は、取り出した値を入れる変数を作成します。 Outputの「create a new one」を押下し、変数名やデータ型を設定します。 「CREATE」を押下して完了です。 Send Emailタスクでバースデーメールを作成する Send Emailをクリックし、以下のように設定します。 Subjectは必須項目です。未入力の場合はメールが送信されません。 $customer$ のように書くことで作成した変数の値を使用できます。 これでサブ統合は完成です。 ここでメイン統合から呼び出すためにAPIトリガーのIDを確認しておきます。 サブ統合をメイン統合から呼び出すために、忘れずpublishしておきましょう。 メイン統合を作成する サブ統合とは別に新しく統合を作成します。 Schedulerトリガーでメール送信時間を設定する まずはSchedulerトリガーを設定します。 起動時間は「All time settings are GMT 08:00 – America/Los Angeles」を考慮する必要があります。 今回は日本時間(UTC+9)で午前10時にメールを送りたいので、ロサンゼルス時間(UTC-7)の18:00に設定します。 (6月のため、ロサンゼルスはサマータイムでUTC-7となります。) BigQueryコネクタを配置してBigQueryとの接続を作成 次は、BigQueryコネクタを作成します。 Application Integrationの「コネクタ」は、特定のデータソースへの接続を提供してくれます。 今回はBigQueryに接続するため、BigQueryコネクタを使用します。 TASKSのリストからConnectorsを選択します。 LabelはBigQueryにしました。 CONFIGURE CONNECTORを押下し、接続を構成します。 Select connectionの接続で、「接続を作成」を押下します。 続いて画面右側に表示されるCreate Connectionで、以下の項目(画像赤枠内)を設定します。 ほかの項目はデフォルトのまま画面に従い「次へ」、「CREATE」を押下し、2~3分待つと接続が作成されます。 タイプはEntitiesを選択し、次へを押下します。 エンティティはcustomer、オペレーションはListを選択します。 「次へ」、「完了」を押下します。 コネクタが作成されるとBigQueryの変数が表示されます。 変数filterClauseには以下のように入力して、当日誕生日の人だけを取り出します。 なお、current_time()はUTC+0の時刻が使用されます。 参照:フィルタ句の構文と例 | コネクタタスク | Google Cloud For Each Loopでサブ統合を繰り返し実行する For Each Loopタスクを配置したら、中身をこのように設定します。 Array selectionのList to iterateにconnectorOutputPayload()を設定します。 これでBigQueryで取得した誕生日の方のリストを呼び出します。 Sub-integration detailsにサブ統合のトリガー名を設定します。 ループ実行したいサブ統合のAPIトリガーIDと、統合の名前を入力します。 On each executionのIteration element sub-integration mappingにサブ統合で設定した変数「birthday_user」を入力します。 メイン統合とサブ統合で変数は共有されないので、ここで変数をマッピングします。 これでメイン統合も完成です。 実行確認 作成した統合を動かしてみます。 テスト実行で動作確認 画面右上の ▶︎TEST をクリックすると以下の画面が出てくるので、TEST INTEGRATIONを押下します。 成功するとこのような表示が出ます。 誕生日が6/25のオラフさん、アンディさんにメールが届きました。 メイン統合のログをみると、BigQueryとFor Each Loopそれぞれのタスクが実行されたことが分かります。 サブ統合のログでは、For Each Loopによって統合が2回実行されたことが分かります。 本番実行確認 「PUBLISH」を押下して統合フローを公開すると、その時点の統合バージョンがデプロイされ、アクティブ状態になります。 ログには「On hold」ステータスのエントリが表示されます 。 設定した10時になると、6/26が誕生日のベルさん、コンラッドさん、ハリエットさんにメールが届きました。 ログは「Succeeded」ステータスに変わり、次回のエントリが作成されます。 おわりに 今回は、Application Integrationを使ってみました。 使い方を理解するまでに時間が掛かりましたが、ほとんどコードを書くことなくGUIでワークフローを作成できるのは大きな魅力だと感じました。 興味がある方は一度試してみてください。ここまで一読いただきありがとうございました。 関連コンテンツ 【Goolge Cloud】Application IntegrationでBigQueryにインサート by Google Cloud研究開発チームon 2024年7月18日 頂きましたご意見につきましては、今後のより良い商品開発・サービス改善に活かしていきたいと考えております。 よくわかった 実際につかってみたい よくわからなかった Author Google Cloud研究開発チーム 株式会社システムサポート(STS)のGoogle Cloud研究開発チームです。 実際に技術検証した事例を中心に記事発信していきます。 Application Integration BigQuery Google Cloud 2024年7月29日 【Google Cloud】Application IntegrationでBigQueryの顧客リストから誕生日にメールを自動送信 Category Google Cloud 前の記事を読む Google Cloud Next Tokyo ’24:登壇のお知らせ(DX成功事例) 次の記事を読む (更新)Google Cloud Next Tokyo ’24 参加レポート【概要編】 Recommendation オススメ記事 2023年9月5日 Google Cloud 【Google Cloud】Looker Studio × Looker Studio Pro × Looker を徹底比較!機能・選び方を解説 2023年8月24日 Google Cloud 【Google Cloud】Migrate for Anthos and GKEでVMを移行してみた(1:概要編) 2022年10月10日 Google Cloud 【Google Cloud】AlloyDB と Cloud SQL を徹底比較してみた!!(第1回:AlloyDB の概要、性能検証編) BigQuery ML ワークショップ開催のお知らせ 生成AI導入支援パッケージ Discovery AI導入支援パッケージ Google Cloud ホワイトペーパー 新着記事 2024年10月9日 イベント・セミナー 【参加無料】typeエンジニア転職フェア 出展のお知らせ(2024/10/12) 2024年10月4日 イベント・セミナー 【11/20開催】データ分析&活用ウェビナー(事例紹介付き) 2024年9月30日 Google Cloud 【Google Cloud】サーバレスでマネージドなサービス「Cloud Run」でアプリケーションを走らせよう! HOME Google Cloud 【Google Cloud】Application IntegrationでBigQueryの顧客リストから誕生日にメールを自動送信 ご意見・ご相談・料金のお見積もりなど、お気軽にお問い合わせください。 お問い合わせはこちら HOME Categories お知らせ イベント・セミナー Google Cloud Google Workspace モバイル インフラ 技術開発 ブログ 4koma Tags 生成AI(Generative AI) Looker Studio BigQuery AlloyDB Google Workspace 事例紹介 Cloud SQL STSエンジニアリングマガジン 「サイタル」 当サイトではクッキー(Cookie)、Googleアナリティクスを利用します。 「同意する」をクリックいただくことで、サイト上での最高のエクスペリエンスをご提供いたします。 ※詳細は以下をご覧ください。 外部送信ポリシー プライバシーポリシー同意する同意しない