📝

Logic Apps から Azure OpenAI Service をマネージド ID で認証して呼び出す

2023/05/18に公開

タイトル通りのことをやろうと思います。
APIキーを使わないで済むなら、それに越したことはないので!

基本的には Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスを認証する を参考にやっていきます。

Logic Apps の作成とマネージド ID の有効化

まずは Azure ポータルで Logic Apps を作成してマネージド ID を有効化します。マネージド ID にはシステム割り当てとユーザー割り当ての 2 種類がありますが、今回はシステム割り当ての方でやろうと思います。

Logic Apps の作成は特に躓きポイントもないので割愛します。今回は Standard プランで作成しました。
作成したら ID からシステム割り当てマネージド ID をオンにします。そして Azure ロールの割り当てを選択します。

そして、ロールの割り当ての追加で OpenAI をデプロイしているリソースグループに対して Cognitive Services OpenAI User (Cognitive Services User でも良いらしいですが) をつけます。

ワークフローの作成

それではワークフローを追加して作っていきましょう。まずは HTTP Request が来たら動くようにトリガーを設定します。

HTTP のアクションを追加して、OpenAI のエンドポイントにリクエストを送るようにします。URL などは以下の Azure OpenAI Service のリファレンスを参考にして URL などを入力していきます。

https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/reference

こんな感じに設定します。

そして、Parameters で Authentication にチェックを入れます。

各種設定項目を埋めていきます。Audience はこのドキュメントを信じて https://cognitiveservices.azure.com にしました。

実行して動作確認

デバッグモードを有効にして適当な { "prompt": "Hello world" } こんな Body をつけて実行してみました。

HTTP に渡された入力をみると、ちゃんと ManagedServiceIdentity が入っているので API Key ではなく、ちゃんとマネージド ID を使ってくれていそうなことがわかります。

出力を見ると、ちゃんと text-davinci-003text にもちゃんと結果が入ってますね。

まとめ

ということで Logic Apps からマネージド ID を使って Azure OpenAI Service を呼び出してみました。Azure のAPI Key を使わなくて済むのは嬉しいですね。

Microsoft (有志)

Discussion