2

我正在尝试使用资源管理器模板自动为 Azure 中的存储帐户创建 API 连接。

我正在使用listKeysARM 中的方法来检索存储帐户的访问密钥。我经历了这个问题,它对我不起作用。当我使用outputs模板部分中的方法时,它工作正常并成功检索和显示访问密钥。

"outputs": { "listKeysOutput": { "type": "string", "value": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storagename')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]" } }

但是,当我尝试在连接资源中使用相同的函数时(如下所示),模板执行时没有任何错误。但是在从 Azure 门户访问 API 连接时,它会显示“缺少参数”。

"parameterValues": { "accesskey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storagename')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]", "accountName": "[parameters('storagename')]" }

在此处输入图像描述

在此处输入图像描述

我在这里错过了什么吗?或者'accesskey'属性不接受listKeys的输出?

4

4 回答 4

2

几个月前我有过类似的经历,并通过直接在我的代码中使用连接字符串然后将连接字符串传递给连接来解决它。该值如下所示:

[concat('DefaultEndpointsProtocol=https;AccountName=',  variables('storageConfigs')[0].name,';AccountKey=', listKeys(resourceId('Microsoft.Storage/storageAccounts/',  variables('storageConfigs')[0].name), variables('defaultStorageApiVersion')).key1)]

我使用了一个存储配置对象作为输入,这就是为什么它看起来像上面一样,你可以用variables('storageConfigs')[0].name你在代码中使用的任何名称或变量函数替换它。看起来像上面它可能是storagename

于 2016-10-10T20:16:44.897 回答
0

可能导致问题的两件事:

  1. 确保 API 连接依赖于存储帐户
  2. 将“accessKey”中的键大写(模板中的某些内容区分大小写)
于 2016-09-02T16:18:50.370 回答
0

依赖关系确实是一个要求,以便在启动 api 连接部署之前已经创建了存储帐户。

OP 模板代码的问题在于 Azure Blob api 连接资源accesskey的正确参数名称是accessKey(注意大写 K)。

对于因缺少 API 连接资源所需参数的文档而苦苦挣扎的人 - 启动此 API 调用:

https://management.azure.com/subscriptions/<YOUR SUBSCRIPTION ID>/providers/Microsoft.Web/locations/<YOUR LOCATION>/managedApis/<API TYPE>?api-version=2016-06-01

<API TYPE>应该是要检查的连接的 api 类型,azureblob例如azurequeuesdocumentdb

所有预期参数的描述与该资源的其他描述信息一起返回。

于 2017-07-18T16:48:55.127 回答
0

@Naren,我建议您可以使用此 API 函数来获取您的存储密钥

邮政 https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listKeys?api-version={api-version}

您可以获得与模板相同的结果。

    {
  “keys”: [
    {
      “keyName”: “key1”,
      “value”: "key1Value”,
      “permissions”: “FULL”
    },
    {
      “keyName”: “key2”,
      “value”: "key2Value”,
      “permissions”: “FULL”
    },
  ]
}

仅供参考: https ://msdn.microsoft.com/en-us/library/mt163589.aspx

于 2016-09-12T08:56:56.347 回答