0

我正在嘗試部署一個Azure邏輯應用程序,其中包含使用ARM模板在服務總線上發送消息的操作。如何在ARM模板中爲Service Bus Logic App操作設置連接字符串?

除了部署邏輯應用程序,ARM模板還部署了服務總線名稱空間,隊列和兩個授權規則(一個用於發送,另一個用於監聽)。

我想動態設置發送服務總線消息操作的連接信息,以使用爲支持發送的AuthorizationRule生成的連接字符串。

當我創建此在門戶編輯器(指定發送連接字符串),我注意到在代碼視圖生成以下...

"Send_message.": { 
    "conditions": [ 
     { 
      "dependsOn": "<previous action>" 
     } 
    ], 
    "inputs": { 
     "body": { 
      "ContentData": "@{encodeBase64(triggerBody())}" 
     }, 
     "host": { 
      "api": { 
       "runtimeUrl": "https://logic-apis-westus.azure-apim.net/apim/servicebus" 
      }, 
      "connection": { 
       "name": "@parameters('$connections')['servicebus']['connectionId']" 
      } 
     }, 
     "method": "post", 
     "path": "/@{encodeURIComponent(string('<queuename>'))}/messages" 
    }, 
    "type": "apiconnection" 
} 

},

我假定連接信息以某種方式掩埋在@parameters('$connections')['servicebus']['connectionId']"

然後,我使用resources.azure.com導航到邏輯應用程序,以查看我是否可以獲得有關如何定義@parameters('$connections')['servicebus']['connectionId']"的更多詳細信息。

我發現這一點:

"parameters": { 
    "$connections": { 
    "value": { 
     "servicebus": { 
     "connectionId": "/subscriptions/<subguid>/resourceGroups/<rgname>/providers/Microsoft.Web/connections/servicebus", 
     "connectionName": "servicebus", 
     "id": "/subscriptions/<subguid>/providers/Microsoft.Web/locations/westus/managedApis/servicebus" 
     } 
    } 
    } 
} 

但我仍然沒有看到在連接字符串設置。

在哪裏可以使用類似於以下內容的方式在ARM模板中設置服務總線操作的連接字符串?

[listkeys(variables('sendAuthRuleResourceId'), variables('sbVersion')).primaryConnectionString] 

編輯:另外,我已經提到了似乎是a promising Azure quick start on github (based on the title),但我不能做它的任何意義。它似乎使用較舊的模式2014-12-01-preview,並且「隊列連接器」引用Api網關。如果在這個場景中有一個更新的例子,我很樂意看到它。

+1

正如你所知,連接是一個資源,所以它需要首先創建你是否參考這個https://blogs.msdn.microsoft.com/logicapps/2016/02/23/deploying-in-the-logic-apps -preview刷新/。您所指的快速啓動鏈接是針對較舊的模式。 – TusharJ

+0

謝謝杜莎。這花了我一段時間,但我能夠使用該鏈接中的信息獲取ARM模板。如果你想提交你的評論作爲答案,很高興給你信用的答案。 – Paul

+0

Paul請隨時編輯我的答案以添加更多信息,以便您的學習可以讓其他人受益。此外,我會與我的團隊分享這些信息以添加更多文檔細節。 – TusharJ

回答

相關問題