如何获取为ARM模板中的表API创建的cosmos DB的连接字符串

问题描述

我正在尝试为表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构建字符串并使用下面的referencelistKeys臂函数的组合。

"[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/;’]”