你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 GitHub 和 Azure 部署环境在 CI/CD 中部署环境

本教程介绍如何将 Azure 部署环境集成到 CI/CD 管道中。 可以使用支持 CI/CD 的任何 GitOps 提供程序,例如 GitHub Actions、Azure Arc、GitLab 或 Jenkins。

持续集成和持续交付 (CI/CD) 是一种软件开发方法,可帮助团队自动执行编译、测试和部署软件更改的过程。 CI/CD 使你能够更频繁、更自信地发布软件更改。

将使用具有以下三个分支的工作流:main、dev 和 test。

  • main 分支始终被视为生产分支。
  • 从 main 分支创建 feature 分支。
  • 创建拉取请求以将 feature 分支合并到 main

本教程中的工作流是一个简化的示例。 实际工作流可能更加复杂。

在开始本教程之前,可以通过查看 Azure 部署环境的关键概念来熟悉部署环境组件和概念。

本教程中,您将学习如何:

  • 创建和配置开发人员中心
  • 创建密钥保管库
  • 创建和配置 GitHub 存储库
  • 将目录添连接到开发人员中心
  • 配置部署标识
  • 配置 GitHub 环境
  • 测试 CI/CD 管道

先决条件

产品 要求
蔚蓝 - Azure 订阅
- Azure 订阅的所有者权限。
- 已安装 Azure CLI
Git 一个 GitHub 帐户。
- 已安装 Git

1.创建和配置开发人员中心

在本部分,你将创建具有三种环境类型(Dev、Test 和 Prod)的 Azure 部署环境开发人员中心和项目

  • Prod 环境类型包含单个生产环境
  • 在 Dev 中为每个功能分支创建一个新环境
  • 在 Test 中为每个拉取请求创建一个新环境

1.1 设置 Azure CLI

首先,登录到 Azure。 运行以下命令,然后按照提示完成身份验证过程:

az login

接下来,安装 Azure CLI 的开发人员中心扩展:

az extension add --name devcenter --upgrade

安装当前扩展后,注册 Microsoft.DevCenter 命名空间:

az provider register --namespace Microsoft.DevCenter

小提示

在本教程中,你需要将多个值保存为环境变量,供稍后使用。 建议将这些值记录在其他位置,以确保在需要时可以使用。

获取你的用户 ID 并将其设置为环境变量供稍后使用:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

检索当前订阅的订阅 ID:

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

检索当前租户的租户 ID:

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

设置以下环境变量:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

注释

必须使用全局唯一的密钥保管库名称。 否则,可能会收到以下错误:

Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 创建开发人员中心

开发人员中心汇集了具有类似设置的项目和环境。 开发人员中心提供对可用于创建环境的模板和工件目录的访问权限。 开发人员中心还提供管理对环境和项目的访问权限的方法。

创建资源组:

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

创建开发人员中心:

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

上一个命令输出 JSON。 将 ididentity.principalId 的值保存为环境变量,供稍后使用:

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 在订阅上分配开发人员中心标识所有者角色

开发人员中心需要权限才能在与环境类型关联的订阅上分配角色。

为了降低不必要的复杂性,在本教程中,开发人员中心和所有环境类型使用单个订阅。 实际上,开发人员中心和目标部署订阅可能是应用了不同策略的单独订阅。

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 创建环境类型

在开发人员中心级别,环境类型定义开发团队可以创建的环境,例如开发、测试、沙盒、预生产和生产环境。

创建三个新环境类型:Dev、Test 和 Prod

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 创建项目

项目是开发团队的访问点。 每个项目都与一个开发中心相关联。

创建项目:

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

上一个命令输出 JSON。 将 id 值保存为环境变量,供稍后使用:

AZURE_PROJECT_ID=<id>

为自己分配项目的“DevCenter 项目管理员角色”:

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 创建项目环境类型

在项目级别,平台工程师指定适合开发团队的环境类型。

为在开发人员中心创建的每个环境类型创建新的项目环境类型:

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2.创建密钥保管库

在本部分,你将创建新的密钥保管库。 本教程稍后将使用此密钥保管库从 GitHub 保存个人访问令牌

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

同样,将上一命令的 JSON 输出中的 id 保存为环境变量:

AZURE_KEYVAULT_ID=<id>

为自己分配新密钥保管库的“密钥保管库管理员”角色:

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

为开发人员中心的标识分配“密钥保管库机密用户”角色:

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3.创建和配置 GitHub 存储库

在本部分,你将创建新的 GitHub 存储库来存储目录。 Azure 部署环境同时支持 GitHub 和 Azure DevOps 存储库。 在本教程中,你将使用 GitHub。

3.1 创建 GitHub 存储库

在此步骤,你将在 GitHub 帐户中创建一个具有预定义目录结构、分支和文件的新存储库。 这些项是从示例模板存储库生成的。

  1. 基于示例模板生成新的 GitHub 存储库:

    显示 GitHub - 创建新存储库页面的屏幕截图。

  2. 如果没有付费 GitHub 帐户,请将存储库设置为“公共”

  3. 选择“创建存储库”

3.2 保护存储库的 main 分支

可以通过设置分支保护规则来保护重要分支。 保护规则定义协作者是否可以删除分支或强制推送到分支。 这些规则还针对推送到分支的操作设置了要求,例如传递状态检查或强制实施线性提交历史记录。

注释

受保护的分支可以在 GitHub Free 和组织的 GitHub Free 公共存储库中使用,也可以在 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有存储库中使用。 有关详细信息,请参阅 GitHub 计划

  1. 如果尚未打开,请转到存储库的主页。

  2. 在窗口顶部的菜单中选择“设置”

    显示 GitHub 存储库页面的屏幕截图。突出显示了“设置”。

  3. 在左边栏的“代码和自动化”部分,选择“分支”

    显示设置页面的屏幕截图。突出显示了“分支”。

  4. 在“分支保护规则”下,选择“添加分支规则集”

    显示“分支保护规则”页面的屏幕截图。突出显示了“添加分支规则集”。

  5. 在“新建分支规则集”页面的“规则集名称”中,输入“CI-CD-tutorial-ruleset”

    显示“规则集名称”框的屏幕截图。突出显示了“规则集名称”。

  6. 在“目标分支”下选择“添加目标”,然后选择“包括默认分支”或“包括所有分支”

    显示“目标分支”部分的屏幕截图。突出显示了“添加目标”的两个选项。

  7. 在“分支规则”下,选择“合并前需要拉取请求”

    显示“分支规则”的屏幕截图。“合并前需要拉取请求”复选框已选中并突出显示。

  8. (可选)可以启用更多保护规则

  9. 选择 创建

3.3 配置存储库变量

  1. 在边栏的“安全性”部分选择“机密和变量”,然后选择“操作”

    显示边栏的“安全性”部分的屏幕截图。突出显示了“操作”。

  2. 选择“变量”选项卡

  3. 对于下表中的每个项:

    1. 选择“新建存储库变量”
    2. 在“名称”字段中,输入变量名称。
    3. 在“值”字段中,输入表中描述的值。
    4. 选择“添加变量”
    变量名称 变量值
    AZURE_DEVCENTER 你的开发人员中心名称
    AZURE_PROJECT 你的项目名称
    AZURE_CATALOG 设置为“环境”
    AZURE_CATALOG_ITEM 设置为“函数应用”
    AZURE_SUBSCRIPTION_ID Azure 订阅 ID
    AZURE_TENANT_ID 你的 Azure 租户 ID

    变量页面的屏幕截图,其中包含变量表。

3.4 创建 GitHub 个人访问令牌

接下来,创建细粒度个人访问令牌,使 Azure 部署环境开发人员中心能够连接到存储库并使用环境目录。

注释

可以在反馈论坛中留下有关精细个人访问令牌的反馈。

  1. 在 GitHub.com 上任意页面的右上角,选择你的个人资料照片,然后选择“设置”

  2. 在左侧边栏中,选择“开发人员设置”。

  3. 在左侧边栏中的“个人访问令牌”下,选择“细粒度令牌”,然后选择“生成新令牌”

    显示 GitHub 个人访问令牌选项的屏幕截图。突出显示了“精细令牌”和“生成新令牌”选项。

  4. 在“新建精细个人访问令牌”页面上的“令牌名称”下,输入令牌的名称

  5. 在“过期时间”下,选择令牌的过期时间

  6. 在“资源所有者”下,选择你的 GitHub 用户名

  7. 在“存储库访问权限”下,选择“仅选择存储库”。 在“选定的存储库”下,搜索并选择你创建的存储库

    显示 GitHub 存储库访问权限选项的屏幕截图。突出显示了“仅选择存储库”选项。

  8. 在“权限”下选择“存储库权限”,然后将“内容”更改为“只读”

    显示 GitHub 存储库权限的屏幕截图。突出显示了“内容”部分。

  9. 选择“生成令牌”

  10. 请复制并保存你的个人访问令牌。 以后再也无法查看它。

3.5 将个人访问令牌保存到密钥保管库

接下来,将个人访问令牌保存为名为 pat 的密钥保管库机密

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4.将目录添连接到开发人员中心

在 Azure 部署环境中,目录是包含一组环境定义的存储库。 目录项由基础结构即代码 (IaC) 模板和充当清单的环境文件组成。 模板定义环境,环境文件提供有关模板的元数据。 开发团队使用目录中的环境定义来创建环境。

用于创建 GitHub 存储库的模板包含 Environments 文件夹中的目录。

将目录添加到开发人员中心

在以下命令中,请将 < Organization/Repository > 替换为你的 GitHub 组织和存储库名称:

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5.配置部署标识

使用 GitHub Actions 进行 OpenID Connect 是一种身份验证方法,它使用生存期较短的令牌来增强安全性。 建议使用这种方法向 Azure 验证 GitHub Actions。

还可以直接使用机密对服务主体进行身份验证,但这不在本教程的范围内。

5.1 配置部署标识

  1. 为三种环境类型中的每一种注册 Microsoft Entra 应用程序和服务主体

    为 Dev 创建 Microsoft Entra 应用程序

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    此命令输出 JSON,其中包含在创建具有 Graph API 的联合凭据时使用的 id 以及 appId(也称为客户端 ID)

    设置以下环境变量:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    针对 Test 重复上述步骤

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    再次针对 Prod 重复上述步骤

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. 为每个应用程序创建服务主体。

    运行以下命令为 Dev 创建新服务主体

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    此命令使用不同的 id 生成 JSON 输出,将在下一步中使用。

    设置以下环境变量:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    针对 Test 重复上述步骤

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    再次针对 Prod 重复上述步骤

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. 运行以下命令,为每个 Microsoft Entra 应用程序创建新的联合标识凭据

    在以下三个命令中,将 < Organization/Repository > 替换为 GitHub 组织和存储库名称。

    为 Dev 创建联合标识凭据:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    为 Test 创建凭据

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    为 Prod 创建凭据

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 将角色分配给部署标识

  1. 为每个部署标识分配项目的“读取者”角色:

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. 为每个部署标识分配对应的环境类型的“部署环境用户”角色:

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6.配置 GitHub 环境

在 GitHub 环境中,可以使用保护规则和机密配置环境。 引用环境的工作流作业在运行或访问环境的机密之前,必须遵守该环境的所有保护规则。

创建映射到 Azure 部署环境项目中的环境类型的 Dev、Test 和 Prod 环境

注释

环境、环境机密和环境保护规则在所有产品的公共存储库中均可用。 若要访问专用存储库或内部存储库中的环境、环境机密和部署分支,必须使用 GitHub Pro、GitHub Team 或 GitHub Enterprise。 若要访问专用存储库或内部存储库中的其他环境保护规则,必须使用 GitHub Enterprise。 有关详细信息,请参阅 GitHub 计划

6.1 创建 Dev 环境

  1. 在 GitHub 中,转到存储库的主页。

  2. 在存储库名称下,选择“设置”。 如果未看到“设置”选项卡,请选择“...”下拉菜单,然后选择“设置”

  3. 在左侧边栏中,选择“环境”

  4. 选择“新建环境”,输入“Dev”作为环境名称,然后选择“配置环境”

    显示“环境 - 添加 /”窗格的屏幕截图。环境名称为 Dev,“配置环境”按钮已突出显示。

  5. 在“环境机密”下选择“添加环境机密”,然后在“名称”框中输入“AZURE_CLIENT_ID”

    显示“环境 / 配置 Dev”窗格的屏幕截图。突出显示了“添加环境机密”。

  6. 在“值”框中,输入前面创建的“Dev”Microsoft Entra 应用的客户端 ID (appId)(已另存为 $DEV_AZURE_CLIENT_ID 环境变量)

    “添加机密”框的屏幕截图。名称设置为 AZURE CLIENT ID,值设置为 ID 编号,突出显示了“添加机密”按钮。

  7. 选择“添加机密”。

6.2 创建 Test 环境

在左侧边栏中选择“环境”,返回到环境主页。

  1. 选择“新建环境”,输入“Test”作为环境名称,然后选择“配置环境”

  2. 在“环境机密”下选择“添加环境机密”,然后在“名称”框中输入“AZURE_CLIENT_ID”

  3. 在“值”框中,输入前面创建的“Test”Microsoft Entra 应用的客户端 ID (appId)(已另存为 $TEST_AZURE_CLIENT_ID 环境变量)

  4. 选择“添加机密”。

6.3 创建 Prod 环境

再次在左侧边栏中选择“环境”,返回到环境主页

  1. 选择“新建环境”,输入“Prod”作为环境名称,然后选择“配置环境”

  2. 在“环境机密”下选择“添加环境机密”,然后在“名称”框中输入“AZURE_CLIENT_ID”

  3. 在“值”框中,输入前面创建的“Prod”Microsoft Entra 应用的客户端 ID (appId)(已另存为 $PROD_AZURE_CLIENT_ID 环境变量)

  4. 选择“添加机密”。

接下来,将自己设置为此环境的必需审阅者。 尝试部署到 Prod 时,GitHub Actions 会等待批准后再开始部署。 当作业正在等待批准时,其状态为“等待中”。 如果作业在 30 天内未获得批准,会自动失败。

有关环境和所需批准的详细信息,请参阅使用环境进行部署

  1. 选择“所需审查者”

  2. 搜索并选择你的 GitHub 用户名。 最多可输入 6 个人员或团队。 只需指定一名审查者即可批准该作业,使其可继续进行。

  3. 选择“保存保护规则”

最后,将 main 配置为部署分支:

  1. 在“部署分支和标记”列表中,选择“选定的分支和标记”

  2. 选择“添加部署分支或标记规则”,确保已选择“引用类型: 分支”,然后在“名称模式”框中输入“main”

  3. 选择“添加规则”。

7.测试 CI/CD 管道

在本部分,你将对存储库进行一些更改并测试 CI/CD 管道。

7.1 克隆存储库

  1. 在 Git Bash 中,使用 cd 切换到你要将存储库克隆到的本地文件夹。

  2. 克隆存储库。 在以下命令中,确保将 < Organization/Repository > 替换为 GitHub 组织和存储库名称。

    git clone https://github.com/< Organization/Repository >.git
    
  3. 导航到克隆的目录:

    cd <repository>
    
  4. 创建一个新分支并将其远程发布:

    git checkout -b feature1
    
    git push -u origin feature1
    

    将在 Azure 中创建特定于此分支的新环境。

  5. 在 GitHub 中,转到新建的存储库的主页。

  6. 在存储库名称下,选择“操作”

    你将会看到新的“创建环境”工作流正在运行。

7.2 更改代码

  1. 在 Visual Studio Code 中打开本地克隆的存储库。

  2. 在 ADE.Tutorial 文件夹中,对文件进行更改

  3. 保存所做更改。

7.3 推送更改以更新环境

  1. 暂存更改并推送到 feature1 分支:

    git add .
    git commit -m '<commit message>'
    git push
    
  2. 在存储库的“操作”页上,可以看到一个新的“更新环境”工作流正在运行。

7.4 创建拉取请求

  1. 创建 GitHub 拉取请求 main <- feature1

  2. 在存储库的“操作”页面上,你会看到已启动新的工作流来创建特定于拉取请求的环境。 使用“Test”环境类型。

7.5 合并拉取请求

  1. 在 GitHub 中,转到你创建的拉取请求。

  2. 合并该拉取请求。

    更改将发布到生产环境中,并删除分支和拉取请求环境。

清理资源

如果不打算使用已创建的任何资源,请删除它们,以免继续产生费用。 如果已将示例应用程序部署在其他资源组中,可能需要重复以下步骤。

若要使用 Azure 门户删除资源:

  1. 选择左上角的菜单按钮,然后选择“资源组”。

  2. 从列表中选择你创建的资源组。

  3. 选择“删除资源组”。

  4. 输入资源组名称。 然后选择“删除”

若要使用 Azure CLI 删除资源,请输入以下命令:

az group delete --name <my-dev-center-rg>

请记住,删除资源组会删除其中的所有资源。