Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/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
Azure 如何使用从链接的ARM模板返回的secureObject或securestring_Azure_Arm Template_Securestring_Azure Template - Fatal编程技术网

Azure 如何使用从链接的ARM模板返回的secureObject或securestring

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

如何使用从链接的ARM模板返回的
securestring
secureObject
的值

例如,一个名为
CreateStorage

  • 创建Azure存储帐户
  • 在该帐户上创建blob容器
  • 为容器创建SAS密钥
  • 返回模板
    输出
    部分中的SAS键
  • e、 g.在模板输出中返回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
    的原因。他们没有被记录在任何地方。没有真正的解决办法

    在您的情况下,只需在需要的地方拉关键点,就不必在嵌套模板中拉关键点并将其传递给父模板