如何使用 Arm 模板在应用服务中获取 Principal Id?
How to get Principal Id in app service using Arm template?
您好,我正在编写 ARM 模板来部署我的应用程序服务。我想在我的 arm 模板中创建系统标识。在应用服务手臂模板部分,我有以下代码。
"identity": {
"principalId": "[reference(variables('identity_resource_id'), '2017-12-01', 'Full').identity.principalId]",
"tenantId": "[parameters('tenantId')]",
"type": "SystemAssigned"
}
然后在变量部分我添加了
"appServiceNameFrontEnd": "[concat(variables('defaultConvention'),'03-','FrontEnd')]"
"identity_resource_id": "[concat(resourceId('Microsoft.Web/sites', variables('appServiceNameFrontEnd')), '/providers/Microsoft.ManagedIdentity/Identities/default')]"
每当我尝试 运行 时,我都会遇到以下错误
##[error]Deployment template validation failed: 'The template resource 'FrontEnd' at line '1' and column '10436' is not valid: The template
function 'reference' is not expected at this location. Please see
https://aka.ms/arm-template-expressions for usage details..
有人可以帮助我如何获得系统分配的身份吗?任何帮助将不胜感激。谢谢
您不能为系统分配的身份指定 ID。
有效模板是:
"identity": {
"type": "SystemAssigned"
}
tenantId 将始终是链接到订阅的租户。
如果你在其他地方需要它,你可以使用 [subscription().tenantId]
。
要在其他地方访问系统分配的标识的 objectId,您可以使用例如:
"objectId": "[reference(resourceId('Microsoft.Web/sites', variables('appServiceNameFrontEnd')), '2016-08-01', 'Full').identity.principalId]",
(请记住将应用服务指定为资源的依赖项,以便仅在部署应用服务后才部署它)
您好,我正在编写 ARM 模板来部署我的应用程序服务。我想在我的 arm 模板中创建系统标识。在应用服务手臂模板部分,我有以下代码。
"identity": {
"principalId": "[reference(variables('identity_resource_id'), '2017-12-01', 'Full').identity.principalId]",
"tenantId": "[parameters('tenantId')]",
"type": "SystemAssigned"
}
然后在变量部分我添加了
"appServiceNameFrontEnd": "[concat(variables('defaultConvention'),'03-','FrontEnd')]"
"identity_resource_id": "[concat(resourceId('Microsoft.Web/sites', variables('appServiceNameFrontEnd')), '/providers/Microsoft.ManagedIdentity/Identities/default')]"
每当我尝试 运行 时,我都会遇到以下错误
##[error]Deployment template validation failed: 'The template resource 'FrontEnd' at line '1' and column '10436' is not valid: The template function 'reference' is not expected at this location. Please see https://aka.ms/arm-template-expressions for usage details..
有人可以帮助我如何获得系统分配的身份吗?任何帮助将不胜感激。谢谢
您不能为系统分配的身份指定 ID。 有效模板是:
"identity": {
"type": "SystemAssigned"
}
tenantId 将始终是链接到订阅的租户。
如果你在其他地方需要它,你可以使用 [subscription().tenantId]
。
要在其他地方访问系统分配的标识的 objectId,您可以使用例如:
"objectId": "[reference(resourceId('Microsoft.Web/sites', variables('appServiceNameFrontEnd')), '2016-08-01', 'Full').identity.principalId]",
(请记住将应用服务指定为资源的依赖项,以便仅在部署应用服务后才部署它)