如何将 ResourceID 函数用于应用程序服务槽

How to use ResourceID function for an app service slot

我在 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一定有什么特别之处吧?

您必须将资源提供者名称 'Microsoft.Web/Sites/Slots' 包含在 Web 应用程序名称和舞台名称中。您只有网络应用名称。

尝试使用这个:

"resourceId": {
  "type": "string",
  "defaultValue": "[resourceId('Microsoft.Web/sites/slots', parameters('resourceName'), parameters('stageName'))]"
}