Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在ARM模板中获取Azure批处理帐户访问密钥_Azure_Azure Resource Manager_Arm Template_Azure Batch - Fatal编程技术网

正在ARM模板中获取Azure批处理帐户访问密钥

正在ARM模板中获取Azure批处理帐户访问密钥,azure,azure-resource-manager,arm-template,azure-batch,Azure,Azure Resource Manager,Arm Template,Azure Batch,在我的ARM模板中,我想获取由batch\u accountName参数指定的批处理帐户的主键。 应为批处理帐户提取密钥的表达式为: "[listKeys(resourceId('Microsoft.Batch/batchAccounts', parameters('batch_accountName')), '2017-09-01')]" 它返回如下所示的对象: { "accountName": "my-acc-name", "primary": "***", "secondar

在我的ARM模板中,我想获取由
batch\u accountName
参数指定的批处理帐户的主键。 应为批处理帐户提取密钥的表达式为:

"[listKeys(resourceId('Microsoft.Batch/batchAccounts', parameters('batch_accountName')), '2017-09-01')]"
它返回如下所示的对象:

{
  "accountName": "my-acc-name",
  "primary": "***",
  "secondary": "***"
}
现在,我尝试使用以下表达式获取azure batch account主键失败(与上述表达式的唯一区别是我添加了
.primary
,以便获取对象的属性):

我得到的错误是:
索引(基于零)必须大于或等于零,并且小于参数列表的大小。
,这意味着,如果我理解正确,
列表键
应该返回一个数组。但实际上,它返回一个如上所示的对象

我昨天才了解了ARM模板,所以我可能做错了什么,这在目前对我来说并不明显,而且我还没有在互联网的荒原中偶然发现这样的错误,人们通常会询问如何获取存储密钥,这对我来说很好,我无法获取批量帐户密钥

编辑:

这里是我尝试注入这个表达式的资源。该资源是数据工厂中的批量链接服务

{
  "name": "[concat(parameters('factoryName'), '/AzureBatchLinkedService')]",
  "type": "Microsoft.DataFactory/factories/linkedServices",
  "apiVersion": "2017-09-01-preview",
  "properties": {
    "type": "AzureBatch",
    "typeProperties": {
      "accountName": "[parameters('batch_accountName')]",
      "accessKey": {
        "type": "SecureString",
        "value": "[listKeys(resourceId('Microsoft.Batch/batchAccounts', parameters('batch_accountName')), '2017-09-01').primary]"
      },
      "batchUri": "[concat('https://', parameters('batch_accountName'), '.' , parameters('batch_region'), '.batch.azure.com')]",
      "poolName": "[parameters('batch_poolName')]",
      "linkedServiceName": {
        "referenceName": "AzureStorageLinkedService",
        "type": "LinkedServiceReference"
      }
    }
  },
  "dependsOn": [
    "[concat(variables('factoryId'), '/linkedServices/AzureStorageLinkedService')]"
  ]
}

为确保已成功配置引用的资源,应将其声明为依赖项,在“dependsOn”数组中添加此行:


另外,要将资源用作依赖项,必须在模板中声明它。

此错误出现在哪里?可以发布arm模板吗?至少是您尝试将访问密钥注入的资源it@4c74356b41我在使用部署模板时遇到此错误powershell@Thomas我已经编辑了原始问题,添加了我尝试将此表达式插入的资源。在
“dependsOn”
数组中,您可以尝试添加此资源
[resourceId]吗('Microsoft.Batch/batchAccounts',parameters('Batch_accountName')]
好的,这没有任何意义,因为资源已经创建,这个答案是误导性的和错误的。对不起,我不知道它为什么工作。请随意编辑或发布新答案。
{
  "name": "[concat(parameters('factoryName'), '/AzureBatchLinkedService')]",
  "type": "Microsoft.DataFactory/factories/linkedServices",
  "apiVersion": "2017-09-01-preview",
  "properties": {
    "type": "AzureBatch",
    "typeProperties": {
      "accountName": "[parameters('batch_accountName')]",
      "accessKey": {
        "type": "SecureString",
        "value": "[listKeys(resourceId('Microsoft.Batch/batchAccounts', parameters('batch_accountName')), '2017-09-01').primary]"
      },
      "batchUri": "[concat('https://', parameters('batch_accountName'), '.' , parameters('batch_region'), '.batch.azure.com')]",
      "poolName": "[parameters('batch_poolName')]",
      "linkedServiceName": {
        "referenceName": "AzureStorageLinkedService",
        "type": "LinkedServiceReference"
      }
    }
  },
  "dependsOn": [
    "[concat(variables('factoryId'), '/linkedServices/AzureStorageLinkedService')]"
  ]
}
[resourceId('Microsoft.Batch/batchAccounts', parameters('batch_accountName')]