处理 Azure 托管应用程序的托管资源组中的资源

本文介绍如何更新已部署为托管应用程序的一部分的资源。 托管应用程序的发布者有权访问托管资源组中的资源。 若要更新这些资源,需要找到与托管应用程序关联的托管资源组,并访问该资源组中的资源。

本文假设已部署包含 Azure 管理服务的托管 Web 应用程序 (IaaS) 示例项目中的托管应用程序。 该托管应用程序包含一个 Standard_D1_v2 虚拟机。 如果尚未部署该托管应用程序,仍可以使用本文来熟悉更新托管资源组的步骤。

下图显示了已部署的托管应用程序。

Deployed managed application

在本文中,我们使用 Azure CLI 来执行以下操作:

  • 识别托管应用程序
  • 识别托管资源组
  • 识别托管资源组中的虚拟机资源
  • 更改 VM 大小(更改为未被使用的更小大小,或者更改为更大的大小以支持更多负载)
  • 将用于指定允许位置的策略分配到托管资源组

获取托管应用程序和托管资源组

若要获取资源组中的托管应用程序,请使用:

az managedapp list --query "[?contains(resourceGroup,'DemoApp')]"

若要获取托管资源组的 ID,请使用:

az managedapp list --query "[?contains(resourceGroup,'DemoApp')].{ managedResourceGroup:managedResourceGroupId }"

调整托管资源组中 VM 的大小

若要查看托管资源组中的虚拟机,请提供托管资源组的名称。

az vm list -g DemoApp6zkevchqk7sfq --query "[].{VMName:name,OSType:storageProfile.osDisk.osType,VMSize:hardwareProfile.vmSize}"

若要更新 VM 的大小,请使用:

az vm resize --size Standard_D2_v2 --ids $(az vm list -g DemoApp6zkevchqk7sfq --query "[].id" -o tsv)

完成操作后,验证应用程序是否在 Standard D2 v2 大小的 VM 上运行。

Managed application using Standard D2 v2

将策略应用到托管资源组

获取托管资源组并在该范围分配策略。 策略 e56962a6-4747-49cd-b67b-bf8b01975c4c 是用于指定允许位置的内置策略。

managedGroup=$(az managedapp show --name <app-name> --resource-group DemoApp --query managedResourceGroupId --output tsv)

az policy assignment create --name locationAssignment --policy e56962a6-4747-49cd-b67b-bf8b01975c4c --scope $managedGroup --params '{
                            "listofallowedLocations": {
                                "value": [
                                    "chinaeast",
                                    "chinanorth"
                                ]
                            }
                        }'

若要查看允许的位置,请使用:

az policy assignment show --name locationAssignment --scope $managedGroup --query parameters.listofallowedLocations.value

策略分配显示在门户中。

View policy assignment

后续步骤