Создание 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 написал в своем ответе

Другие вопросы по тегам