0

Я пытаюсь развернуть приложение Azure Logic, которое включает в себя действие для отправки сообщения на служебной шине с использованием шаблона ARM.Как установить строку подключения для действия приложения логики службы Bus в шаблоне ARM?

В дополнение к развертыванию приложения Logic шаблон ARM развертывает пространство имен служебной шины, очередь Queue и два AuthorizationRule (один для отправки и один для прослушивания).

Я хочу, чтобы динамически установить информацию о соединении для сообщения «Отправить служебную шину», чтобы использовать строку Connection, созданную для 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] 

EDIT: Кроме того, я был называют, кажется, a promising Azure quick start on github (based on the title), но я не могу делать какие-либо смысл. Похоже, что используется более старая схема 2014-12-01-preview, а «queueconnector» ссылается на Api Gateway. Если для этого сценария есть более новый пример, я бы хотел его увидеть.

+1

Как вы знаете, соединения - это ресурс, поэтому его нужно создать, сначала вы указали этот https://blogs.msdn.microsoft.com/logicapps/2016/02/23/deploying-in-the-logic-apps -Preview-обновление /. Ссылка быстрого запуска, на которую вы ссылаетесь, предназначена для старой схемы. – TusharJ

+0

Спасибо Tushar. Мне потребовалось некоторое время, но я смог получить шаблон ARM, используя информацию в этой ссылке. Рад сообщить вам ответ, если вы хотите отправить свой комментарий в качестве ответа. – Paul

+0

Paul, пожалуйста, не стесняйтесь редактировать мой ответ, чтобы добавить дополнительную информацию, чтобы ваше обучение могло принести пользу другим. Также я поделюсь информацией с моей командой, чтобы добавить дополнительную информацию о документации. – TusharJ

ответ