AI-200:Developing AI Cloud Solutions on Azure Azure サービスへの接続と利用 問4
Azure サービスへの接続と利用/Azure Functions の開発と実装Azure Service Bus キューにメッセージが届くたびに起動し、内容を加工して Azure Cosmos DB に1件書き込む関数を、Azure Functions で作ります。Service Bus と Cosmos DB に接続するクライアント SDK のコードは、自分では書かない構成にします。適切なものはどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure サービスへの接続と利用」に対応。実際の試験問題ではありません)
- AService Bus トリガーで関数を起動し、Cosmos DB の出力バインドで加工結果を書き込む
- Bタイマー トリガーで1秒ごとに関数を起動し、SDK でキューを確認してから Cosmos DB に書き込む
- CCosmos DB トリガーで関数を起動し、Service Bus の入力バインドでメッセージを読み込む
- D1つの関数に Service Bus トリガーと HTTP トリガーの両方を設定し、どちらからでも起動できるようにする
正解:A
解説
Azure Functions では、関数を起動するきっかけを「トリガー」、ほかのサービスとのデータの受け渡しを「バインド」として宣言的に設定できます。Service Bus トリガーでメッセージを受け取り、Cosmos DB の出力バインドに値を返すだけで書き込めるため、接続や再試行のコードを自分で書く量を減らせます。1つの関数に設定できるトリガーは1つだけです。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A正しい。トリガーと出力バインドを組み合わせると、接続処理を書かずにメッセージの受信から書き込みまで実装できます。
- B誤り。タイマーで定期的にキューを確認する方法は、遅延が生じるうえに、接続処理のコードも増えます。メッセージの到着で起動するトリガーのほうが適切です。
- C誤り。Cosmos DB トリガーは、Cosmos DB のコンテナーの変更をきっかけに関数を起動するものです。キューへの到着をきっかけにする要件とは方向が逆です。
- D誤り。1つの関数に設定できるトリガーは1つだけです。