論理アプリケーション(標準)ワークフローのコールバックURLに基づくAzure APIM構成の自動化
私の研究に続き、次のステップは自動的にAVEure API管理をBIIPで設定することでした.
私の計画は、特定の論理アプリケーション(標準)のワークフローのリストを取得し、バックエンドエンドポイントを追加するためにapimを繰り返し設定することです.私は、それが簡単なケースであると思いました、しかし、それはそうでありません.
結果として得られた結果は以下の通りです(マイクロソフトウェブサイトのサンプル).
更なる研究とテストの後、結局、これは私が思いついたものです:ロジックアプリケーションの配列を渡すことによって、主なバイープ・ファイルから新しいモジュールを呼ぶ
ListCallBackURL ()を呼び出し、出力を自分のカスタムフォーマットで出力するモジュールを作成する
結果の配列をAPI管理ポリシーに使用し、同じapioperation変数で繰り返します.
私の計画は、特定の論理アプリケーション(標準)のワークフローのリストを取得し、バックエンドエンドポイントを追加するためにapimを繰り返し設定することです.私は、それが簡単なケースであると思いました、しかし、それはそうでありません.
結果として得られた結果は以下の通りです(マイクロソフトウェブサイトのサンプル).
{
"value": "https://prod-03.westus.logic.azure.com/workflows/d4690301f3b340de9330256bb2e83974/triggers/requestTrigger/paths/invoke?api-version=2016-06-01&se=2018-04-19T16%3A00%3A00.0000000Z&sp=%2Ftriggers%2FrequestTrigger%2Frun&sv=1.0&sig=JXbHjs3qzLPDyk-IM_VzsN-WL_mNql3v_uWbBbKgtVk",
"method": "POST",
"basePath": "https://prod-03.westus.logic.azure.com/workflows/d4690301f3b340de9330256bb2e83974",
"queries": {
"api-version": "2016-06-01",
"se": "2018-04-19T16:00:00.0000000Z",
"sp": "//*",
"sv": "1.0",
"sig": "JXbHjs3qzLPDyk-IM_VzsN-WL_mNql3v_uWbBbKgtVk"
}
}
私の必要条件は、私がapimのセットバックエンドサービスとURIを書き換えることを必要とします.上記のJSONでは、ユーザ定義関数が必要です.ああ、今のところnot possible in bicep :更なる研究とテストの後、結局、これは私が思いついたものです:
module cbUrl 'module_cburl.bicep' = [for (item, i) in apiOperations: {
name: 'url${i}'
params: {
logicAppId: resourceId(logicAppName)
workflows: item
}
}]
param logicAppId string
param workflows string
var url = listCallbackURL('${logicAppId}/hostruntime/runtime/webhooks/workflow/api/management/workflows/${workflows}/triggers/manual', '2022-03-01')
var apiVersion = url.queries['api-version']
output url object = {
basePath: url.basePath
queries: '?api-version=${uriComponent(apiVersion)}&sv=${uriComponent(url.queries.sv)}&sp=${uriComponent(url.queries.sp)}&sig=${uriComponent(url.queries.sig)}'
}
resource apiPolicies 'Microsoft.ApiManagement/service/apis/operations/policies@2021-08-01' = [for (item, i) in apiOperations: {
name: '${apimSvcRef.name}/${apiName}/${item}/policy'
properties: {
value: '<policies>\r\n <inbound>\r\n <base />\r\n <set-backend-service base-url="${cbUrl[i].outputs.url.basePath}" />\r\n <rewrite-uri template="${cbUrl[i].outputs.url.queries}" />\r\n </inbound>\r\n <backend>\r\n <base />\r\n </backend>\r\n <outbound>\r\n <base />\r\n </outbound>\r\n <on-error>\r\n <base />\r\n </on-error>\r\n</policies>'
format: 'xml'
}
}]
Reference
この問題について(論理アプリケーション(標準)ワークフローのコールバックURLに基づくAzure APIM構成の自動化), 我々は、より多くの情報をここで見つけました https://dev.to/leonards/automating-azure-apim-configuration-based-on-logic-app-standard-workflows-callback-urls-26feテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol