问题描述
我正在尝试为表API创建一个cosmos db帐户,并希望使用ARM模板将连接字符串上传到KV。
我希望连接字符串采用以下格式:
private void Start()
{
canvasGroup = panel.GetComponent<CanvasGroup>();
canvasGroup.alpha = 0f;
}
private void Update()
{
if(canvasGroup.alpha == 1)
{
autoCloseTimer += Time.deltaTime;
if(autoCloseTimer >= autoCloseInterval)
{
canvasGroup.alpha = 0.99f;
StartCoroutine(Close());
ResetAutoCloseTimer();
}
}
}
public void Paneltemp()
{
if(canvasGroup.alpha == 1)
{
StartCoroutine(Close());
}
else
{
StartCoroutine(open());
}
}
IEnumerator Close()
{
while (canvasGroup.alpha > 0)
{
canvasGroup.alpha = 0f;
yield return null;
}
}
IEnumerator open()
{
while (canvasGroup.alpha < 1)
{
canvasGroup.alpha = 1f;
yield return null;
}
}
void ResetAutoCloseTimer()
{
autoCloseTimer = 0.00f;
}
}
我正在使用这个:
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]
如何获取与表端点的连接字符串?
解决方法
我们的RP不返回旧表连接字符串格式。它只有下面的格式。
我认为做到这一点的唯一方法是使用concat
构建字符串并使用下面的reference
和listKeys
臂函数的组合。
"[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','2020-04-01').primaryMasterKey],‘;TableEndpoint=https://’,‘.table.cosmos.azure.com:443/;’]”