Создание API подключения Azure с URL-адресом времени выполнения подключения
У меня есть приложение логики ( стандартное приложение логики), которое вызывает Cosmos DB. Мне нужно сохранить «URL-адрес времени выполнения подключения» в конфигурации приложения логики.
Когда я создаю соединение из конструктора приложения логики, соединение имеет это свойство. Однако, когда я развертываю то же соединение с использованием шаблона ARM, соединение не имеет этого свойства.
Кто-нибудь знает, как получить это свойство или сгенерировать его? И если есть возможность, как его потом вызвать в шаблоне ARM
Спасибо
2 ответа
Вы можете создать соединитель cosmos db с помощью следующего скрипта (bicep):
param location string = resourceGroup().location
param cosmosDbAccountName string
param connectorName string = '${cosmosDbAccountName}-connector'
// get a reference to the cosmos db account
resource cosmosDbAccount 'Microsoft.DocumentDB/databaseAccounts@2021-06-15' existing = {
name: cosmosDbAccountName
}
// create the related connection api
resource cosmosDbConnector 'Microsoft.Web/connections@2016-06-01' = {
name: connectorName
location: location
kind: 'V2'
properties: {
displayName: connectorName
parameterValues: {
databaseAccount: cosmosDbAccount.name
accessKey: listKeys(cosmosDbAccount.id, cosmosDbAccount.apiVersion).primaryMasterKey
}
api: {
id: 'subscriptions/${subscription().subscriptionId}/providers/Microsoft.Web/locations/${location}/managedApis/documentdb'
}
}
}
output connectionRuntimeUrl string = reference(cosmosDbConnector.id, cosmosDbConnector.apiVersion, 'full').properties.connectionRuntimeUrl
URL-адрес будет выходом сгенерированного ARM. Затем вы можете установить этот URL-адрес в качестве приложения в приложении рабочего процесса:
COSMOS_CONNECTION_RUNTIMEURL: <connectionRuntimeUrl>
Тогда в
connections.json
файл, вы можете ссылаться на этот параметр приложения:
{
"managedApiConnections": {
"documentdb": {
...
"connectionRuntimeUrl": "@appsetting('COSMOS_CONNECTION_RUNTIMEURL')"
}
}
}
Использование настроек и параметров приложения должно упростить развертывание
Согласно этому обсуждению, простое соединение API (V1) может не иметь «connectionRuntimeUrl». Итак, чтобы увидеть это, мне нужно добавить
"kind": "V2",
в моем шаблоне подключения, также как @Thomas написал в своем ответе