以前に試していたものですが、今回テンプレート化して誰でも利用できるようにしてみました。これを利用すれば、LogicApps 上で Azure の各種サービスにアクセスするのも、やりやすくなると思います。
Github はこちら
作成した LogicFlow は次のようなものです。
(前半)
(後半)
前半部分では、HTTP リクエストを生成して、ユーザーダイアログを出さない形で Token を取得するよう呼出を行っています。その際、必要なパラメータ(クライアントID、シークレット、テナントID、リソースURL)については、POST 時に JSON パラメータとして受け渡してもらう想定です。
スキーマは以下のようにしています。
{
"properties": {
"client_id": {
"type": "string"
},
"client_secret": {
"type": "string"
},
"resourceurl": {
"type": "string"
},
"tenanntid": {
"type": "string"
}
},
"type": "object"
}
クライアント ID やシークレットについては、以前の記事にもあるように Azure AD 上でアプリケーションを作成する必要があります。
また、リソースURLもパラメータとしていますが、これは利用するサービスによって指定するアドレスが異なるためです。もしかすると同一の URL でも可能かもしれませんが、docs にあげられている各種資料を見ると、DataLake Store であれば https://management.core.windows.net/ ですし、Azure であれば https://fmanagement.azure.com/ であったりします。
このあたりの値を URL エンコードし、パラメータに設定して呼び出すことで、Bearer トークンを取得し、返却する LogicFlow となっています。
トリガや末端のアクションを変更することで、ネストする LogicFlow としても利用できるかと思います。
0 件のコメント:
コメントを投稿