使用连接运行时 URL 创建 Azure 连接 API

ibd*_*bda 8 azure azure-resource-manager azure-bicep azure-logic-app-standard

我有一个逻辑应用程序(标准逻辑应用程序),可以调用cosmos DB。我需要将“连接运行时Url”存储在逻辑应用程序的配置下。

当我从逻辑应用设计器创建连接时,该连接具有此属性。但是,当我使用 ARM 模板部署相同的连接时,该连接不具有此属性。

有人知道如何获得或生成该属性吗?如果可能的话,稍后如何在 ARM 模板中调用它

谢谢

Tho*_*mas 7

只有 API 连接kind: 'V2'可以返回connectionRuntimeUrl.

您可以使用以下脚本(bicep)创建一个 cosmos 数据库连接器:

param location string = resourceGroup().location
param cosmosDbAccountName string = 'thomastestcosmos'
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@2018-07-01-preview' = {
  name: connectorName
  location: location
  kind: 'V2'
  properties: {
    displayName: connectorName
    parameterValues: {
      databaseAccount: cosmosDbAccount.name
      accessKey: cosmosDbAccount.listKeys().primaryMasterKey
    }
    api: {
      id: subscriptionResourceId('Microsoft.Web/locations/managedApis', location, 'documentdb') 
    }
  }
}

output connectionRuntimeUrl string = cosmosDbConnector.properties.connectionRuntimeUrl
Run Code Online (Sandbox Code Playgroud)

该 url 将是生成的 ARM 的输出,然后您可以将此 url 设置为工作流应用程序中的应用程序设置:

COSMOS_CONNECTION_RUNTIMEURL: <connectionRuntimeUrl>
Run Code Online (Sandbox Code Playgroud)

然后在connections.json文件中,您可以引用此应用程序设置:

{
  "managedApiConnections": {
    "documentdb": {
      ...
      "connectionRuntimeUrl": "@appsetting('COSMOS_CONNECTION_RUNTIMEURL')"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

使用应用程序设置和参数应该使部署更容易

  • 是的,现在这正在发挥作用。秘密是我需要在我的 api 连接模板中添加“Kind = V2”,根据:https://github.com/Azure/bicep/issues/3494 我之前无法看到它。谢谢托马斯 (2认同)