练习 - 创建注册表

已完成

注意

首次激活沙盒并接受这些条款后,你的 Microsoft 帐户将与名为“Microsoft Learn 沙盒”的新 Azure 目录相关联。 还会将你添加到名为“Concierge 订阅”的特殊订阅中。

你需要为你的组织创建一个注册表,然后才能发布 CDN 和网站的 Bicep 模块。 然后将共享模块发布到注册表。 然后其他团队可以创建包含共享模块的部署。

通过学习本练习,你将能够:

  • 部署一个新的专用注册表供你的玩具公司使用。
  • 连接注册表以验证是否已成功创建。

若要将资源部署到 Azure,你需要从 Visual Studio Code 终端登录到 Azure 帐户。 请确保已安装 Azure CLI,并使用你用于激活沙盒的同一帐户登录。

  1. 在“终端”菜单中,选择“新终端”。 终端窗口通常在屏幕的下半部分打开。

  2. 如果终端窗口右侧显示的 shell 为“bash”,则将打开正确的 shell,你可以跳到下一部分。

    Visual Studio Code 终端窗口的屏幕截图,其中显示了 bash 选项。

  3. 如果出现“bash”以外的 shell,请选择 shell 下拉箭头,然后选择“Azure Cloud Shell (Bash)”

    Visual Studio Code 终端窗口的屏幕截图,其中显示了终端 shell 下拉列表并选中了“Git Bash (默认)”。

  4. 在终端 shell 列表中,选择“bash”。

    Visual Studio Code 终端窗口的屏幕截图,其中选中了 bash 终端。

  5. 在终端中,转到保存模板的目录。 例如,如果将模板保存到 templates 文件夹,则可以使用以下命令:

    cd templates
    

安装 Bicep

运行以下命令以确保具有最新版本的 Bicep:

az bicep install && az bicep upgrade

登录 Azure

  1. 在 Visual Studio Code 终端中,运行以下命令登录到 Azure:

    az login
    
  2. 在打开的浏览器中,登录到 Azure 帐户。

    Visual Studio Code 终端显示与此帐户关联的订阅列表。

  3. 为在此会话中运行的所有 Azure CLI 命令设置默认订阅。

    az account set --subscription "Concierge Subscription"
    

    注意

    如果最近使用了多个沙盒,终端可能会显示多个 Concierge 订阅实例。 在这种情况下,请使用下面的两个步骤来设置一个默认订阅。 如果前面的命令成功,且仅列出一个 Concierge 订阅,则跳过下面的两个步骤。

  4. 获取 Concierge 订阅 ID。

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 使用订阅 ID 设置默认订阅。 将 {your subscription ID} 替换为最新的 Concierge 订阅 ID。

    az account set --subscription {your subscription ID}
    

设置默认资源组

当你使用 Azure CLI 时,可以设置默认资源组,并忽略本练习中其他 Azure CLI 命令的参数。 将默认值设置为在沙盒环境中为你创建的资源组。

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

若要将资源部署到 Azure,你需要从 Visual Studio Code 终端登录到 Azure 帐户。 请确保已安装 Azure PowerShell,并且登录的帐户与激活了沙盒的帐户相同。

  1. 在“终端”菜单中,选择“新终端”。 终端窗口通常在屏幕的下半部分打开。

  2. 如果终端窗口右侧显示的 shell 为“powershell”或“pwsh”,则会打开正确的 shell,你可以跳到下一部分。

    Visual Studio Code 终端窗口的屏幕截图,其中在 shell 下拉列表中显示了 pwsh 选项。

  3. 如果出现“powershell”或“pwsh”以外的 shell,请选择 shell 下拉箭头,然后选择“PowerShell”

    Visual Studio Code 终端窗口的屏幕截图,其中显示了终端 shell 下拉列表并选中了 PowerShell。

  4. 在终端 shell 列表中,选择“powershell”或“pwsh”。

    Visual Studio Code 终端窗口的屏幕截图,其中选择了 PowerShell 终端。

  5. 在终端中,转到保存模板的目录。 例如,如果将模板保存到 templates 文件夹,则可以使用以下命令:

    Set-Location -Path templates
    

安装 Bicep CLI

若要从 Azure PowerShell 中使用 Bicep,请安装 Bicep CLI

使用 Azure PowerShell 登录到 Azure

  1. 在 Visual Studio Code 终端中,运行以下命令:

    Connect-AzAccount
    

    在打开的浏览器中,登录到 Azure 帐户。

  2. 登录到 Azure 后,终端会显示与此帐户关联的订阅列表。

    如果已激活沙盒,则会显示名为“Concierge 订阅”的订阅。 请在本练习的其余部分使用此订阅。

  3. 为在此会话中运行的所有 Azure PowerShell 命令设置默认订阅。

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    注意

    如果最近使用了多个沙盒,终端可能会显示多个 Concierge 订阅实例。 在这种情况下,请使用下面的两个步骤来设置一个默认订阅。 如果前面的命令成功,且仅列出一个 Concierge 订阅,则跳过下面的两个步骤。

  4. 获取订阅 ID。 运行以下命令将列出你的订阅及其 ID。 查看 Concierge Subscription,然后复制第二列中的 ID。 它类似于 cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0

    Get-AzSubscription
    
  5. 将处于活动状态的订阅更改为“Concierge 订阅”。 请务必将 {Your subscription ID} 替换为复制的内容。

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

设置默认资源组

你可以设置默认资源组,并忽略本练习中其他 Azure PowerShell 命令的参数。 将此默认值设置为在沙盒环境中为你创建的资源组。

Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>

创建容器注册表

在这里,你将创建一个用于存储和共享你的 Bicep 模块的新注册表。 本示例使用 Azure 容器注册表。

  1. 为容器注册表选择唯一名称。 该名称必须跨 Azure 全局唯一。 选择长度为 5 到 50 个字符并包含字母和数字的名称。 在后续步骤中使用该名称。

  2. 通过在 Visual Studio Code 终端中运行此命令来创建容器注册表。 将 YOUR_CONTAINER_REGISTRY_NAME 占位符替换为在上一步中选择的名称。

    az acr create \
      --name YOUR_CONTAINER_REGISTRY_NAME \
      --sku Basic \
      --location westus
    

提示

还可以使用 Bicep 创建容器注册表。 在此示例中,简单起见,我们使用 Azure CLI。

  1. 为容器注册表选择唯一名称。 该名称必须跨 Azure 全局唯一。 选择长度为 5 到 50 个字符并包含字母和数字的名称。 在后续步骤中使用该名称。

  2. 通过在 Visual Studio Code 终端中运行此命令来创建容器注册表。 将 YOUR_CONTAINER_REGISTRY_NAME 占位符替换为在上一步中选择的名称。

    New-AzContainerRegistry `
      -Name YOUR_CONTAINER_REGISTRY_NAME `
      -Sku Basic `
      -Location westus
    

提示

还可以使用 Bicep 创建容器注册表。 在此示例中,简单起见,我们使用 Azure PowerShell cmdlet。

列出注册表中的模块

现在已经创建了注册表,可以连接到它来验证它是否正常工作。

  1. 通过运行此命令列出注册表中的模块。 将 YOUR_CONTAINER_REGISTRY_NAME 占位符替换为之前选择的名称。

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    请注意,你未指定任何用于连接到容器注册表的凭据。 Azure CLI 使用用于登录到 Azure CLI 的相同凭据。 你已创建容器注册表,因此你可以访问它。

  2. Azure CLI 命令返回的列表不包含任何结果:

    []
    

    你没有看到任何结果,因为尚未发布任何模块。 你将在下一个单元中了解有关发布模块的详细信息。

  1. 通过运行此命令列出注册表中的模块。 将 YOUR_CONTAINER_REGISTRY_NAME 占位符替换为之前选择的名称。

    Get-AzContainerRegistryRepository `
      -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    请注意,你未指定任何用于连接到容器注册表的凭据。 Azure PowerShell 使用你登录 Azure PowerShell cmdlet 所使用的凭据。 你已创建容器注册表,因此你可以访问它。

  2. Azure PowerShell cmdlet 未显示任何输出。

    没有任何结果,因为尚未发布任何模块。 你将在下一个单元中了解有关发布模块的详细信息。