我在 arm 模板中为我的密钥保管库分配了资源策略,一切正常,直到我想为应用服务的部署槽分配策略。
已创建应用服务的插槽,但在我分配访问权限的 arm 模板中(即授予插槽访问密钥库的权限),我使用它来获取资源 ID:
"resourceId": {
"type": "string",
"defaultValue": "[resourceId(parameters('resourceGroup'), parameters('resourceType'), parameters('resourceName'))]",
"metadata": {
"description": "The resource id of the resource to set the policy for. Defaults to the ResourceId function of the resource's resource group, type and name."
}
}
我收到此错误: 无法评估模板语言函数“resourceId”:函数只需要一个多段参数,该参数必须是资源类型,包括资源提供程序命名空间。当前函数参数“MyResourceGroupName,Microsoft.Web/sites,MyAppServiceName/slots/Pre”。
我不太确定我应该在这里传递什么,但我需要 resourceId 以便可以将其添加到密钥保管库中的访问策略中。由于同一个arm模板适用于普通站点,所以slot一定有一些特别之处吗?
答案 0 :(得分:1)
您必须在 Web App 名称和阶段名称中包含资源提供程序名称 'Microsoft.Web/Sites/Slots'
。您只有网络应用名称。
尝试使用这个:
"resourceId": {
"type": "string",
"defaultValue": "[resourceId('Microsoft.Web/sites/slots', parameters('resourceName'), parameters('stageName'))]"
}