0

我正在尝试为表 API 创建一个 cosmos db 帐户,并希望使用 ARM 模板将连接字符串上传到 KV。

我期望这种格式的连接字符串:

DefaultEndpointsProtocol=https;AccountName=<<AccountName>>;AccountKey=<<Key>>;TableEndpoint=https://<<AccountName>>.table.cosmos.azure.com:443/;

我正在使用这个:

[listConnectionStrings(resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('globalCosmosDBName')), '2019-12-12').connectionStrings[0].connectionString]

但是通过上面的内容,我得到了一个如下所示的连接字符串:

AccountEndpoint=https://<<AccountName>>.documents.azure.com:443/;AccountKey==<<Key>>;

如何获取与表端点的连接字符串?

4

1 回答 1

1

我们的 RP 不返回旧表连接字符串格式。它只有你下面的格式。

我认为这样做的唯一方法是使用concat构建字符串并使用下面的referencelistKeysarm 函数的组合。

"[reference(resourceId('Microsoft.DocumentDb/databaseAccounts/', parameters('globalCosmosDBName'))).documentEndpoint]"

"[listKeys(resourceId('Microsoft.DocumentDb/databaseAccounts', parameters('globalCosmosDBName')), '2020-04-01').primaryMasterKey]"

这是完整的 concat 函数。

“[concat(‘DefaultEndpointsProtocol=https;AccountName=’, [reference(resourceId('Microsoft.DocumentDb/databaseAccounts/', parameters('globalCosmosDBName'))).documentEndpoint], ‘;AccountKey=’, [listKeys(resourceId('Microsoft.DocumentDb/databaseAccounts', parameters('globalCosmosDBName')), '2020-04-01').primaryMasterKey], ‘;TableEndpoint=https://’, [reference(resourceId('Microsoft.DocumentDb/databaseAccounts/', parameters('globalCosmosDBName'))).documentEndpoint], ‘.table.cosmos.azure.com:443/;’]”
于 2020-08-12T00:01:10.893 回答