可以在ARM模板中获取Azure Function系统密钥吗?

时间:2018-05-23 21:00:15

标签: azure azure-functions arm-template azure-eventgrid

我知道我可以使用listKeys / listSecrets方法在ARM模板中获取Azure函数的主机密钥和trigger_url。 但我需要systemkey,我部署了一个Event Grid Subscription,它需要包含系统密钥的Azure Function端点url:

"resources": [
        {
            "type": "Microsoft.Storage/StorageAccounts/providers/eventSubscriptions",
            "name": "[concat(concat(parameters('publisherName'), '/Microsoft.EventGrid/'), parameters('name'))]",
            "apiVersion": "2018-01-01",
            "properties": {
                "destination": {
                    "endpointType": "[parameters('endpointType')]",
                    "properties": {
                        "endpointUrl": "[parameters('endpointUrl')]"
                    }
                },
                "filter": {
                    "subjectBeginsWith": "[parameters('subjectBeginsWith')]",
                    "subjectEndsWith": "[parameters('subjectEndsWith')]",
                    "subjectIsCaseSensitive": "[parameters('subjectIsCaseSensitive')]",
                    "includedEventTypes": "[parameters('includedEventTypes')]"
                },
                "labels": "[parameters('labels')]"
            }
        }
    ]

其中endpointUrl的形式为:

https://<function-app-name>.azurewebsites.net/admin/extensions/EventGridExtensionConfig?functionName=<function-name>&code=XZvGU0ROPxxxxxxxxxxxxxxxxxxxxxxxxxxxxaaieD89gPQ==

名为&#39; code&#39;的参数是systemkey,可以通过在

上执行GET来检索
http://<function-app-name>.azurewebsites.net/admin/host/systemkeys/eventgridextensionconfig_extension?code=<master_key>

有没有办法在ARM模板中检索此系统密钥(或整个端点),而无需使用注入它或其他外部系统的bash脚本?

文档确实说:&#34;但是,您不能使用需要请求正文中的值的列表操作。&#34;因此,我不认为我能够使用“#list”列表&#39;操作

2 个答案:

答案 0 :(得分:2)

现在这是不可能的。您只能使用ARM模板返回功能键。 同样在这里描述: https://blog.mexia.com.au/list-of-access-keys-from-output-values-after-arm-template-deployment#functions

答案 1 :(得分:1)

是的,现在有可能:

"destination": {
    "endpointType": "WebHook",
    "properties": {
        "endpointUrl": "[concat(variables('functionUrl'), listKeys(resourceId(variables('functionResourceGroupName'), 'Microsoft.Web/sites/host/', variables('functionAppName'), 'default'),'2016-08-01').systemkeys.eventgrid_extension)]"
    }
},

functionUrl&code=结尾的地方。在运行时〜2进行了测试。