Azure 如何使用从链接的ARM模板返回的secureObject或securestring
如何使用从链接的ARM模板返回的Azure 如何使用从链接的ARM模板返回的secureObject或securestring,azure,arm-template,securestring,azure-template,Azure,Arm Template,Securestring,Azure Template,如何使用从链接的ARM模板返回的securestring或secureObject的值 例如,一个名为CreateStorage 创建Azure存储帐户 在该帐户上创建blob容器 为容器创建SAS密钥 返回模板输出部分中的SAS键 e、 g.在模板输出中返回SAS: "outputs": { "createdContainerSas": { "type": "string", "value": "[concat('https://', variables
securestring
或secureObject
的值
例如,一个名为CreateStorage
输出
部分中的SAS键"outputs": {
"createdContainerSas": {
"type": "string",
"value": "[concat('https://', variables('storageAccountName'), '.blob.core.windows.net/', variables('containerName'), '?', listServiceSas(variables('storageAccountName'), '2018-07-01', variables('importSasInputs')).serviceSasToken)]"
}
}
然后,主模板将SAS密钥添加到KeyVault中,以便应用程序的其余部分可以使用它。主模板获取的值如下所示:
"value": "[reference('CreateStorage').outputs.createdContainerSas.value]"
问题在于,当前SAS密钥返回为字符串
,这意味着它以纯文本形式出现在Azure部署UI中
但是,当我将返回对象的类型更改为securestring
或secureObject
时,当调用createdContainerSas.value
时,会遇到以下错误:
{\r\n \"code\": \"InvalidTemplate\",\r\n \"message\": \"Unable to process template language expressions for resource '/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.Resources/deployments/CreateKeyVault' at line '310' and column '9'. 'The language expression property 'value' doesn't exist, available properties are 'type'.'\"\r\n }
{\r\n\“code\”:“InvalidTemplate\”,\r\n\“message\”:\“无法处理资源的模板语言表达式”/subscriptions//resourceGroups//providers/Microsoft.Resources/deployments/CreateKeyVault',第“310”行和第“9”列。“语言表达式属性“value”不存在,可用属性为“type”。\”\r\n}
因此,从子链接的ARM模板返回securestring
或secureObject
时,.value
属性似乎不存在
微软在say的文档
输出值支持与模板输入参数相同的类型
而且securestring
和secureObject
都可以作为模板输入参数正常工作,所以我一定是做错了什么
如何使用从链接的ARM模板返回的
securestring
或secureObject
的值?securestring\secureObject类型从输入\输出中省略。你不能“得到”它们。他们刚刚通过,就这样。这就是我们称之为secure
的原因。他们没有被记录在任何地方。没有真正的解决办法
在您的情况下,只需在需要的地方拉关键点,就不必在嵌套模板中拉关键点并将其传递给父模板