将更新应用到模板

已完成

初始 azd 预配和部署过程是开始使用 Azure 中的应用的好方法。 但是,环境运行后,你将需要开始对应用代码或 Azure 环境进行更改。

在对 azd 模板进行更改后,可以选择一些不同的工作流来更新 Azure 环境。 无论更改了应用程序代码还是基础结构文件,你始终都可以再次运行 azd up 来更新环境。 azd up 每次运行时都会完成打包、预配和部署步骤,因此,这是一种确保所有更改都推送到 Azure 的简单方法。

但是,azd 还提供了更精细的命令,用于映射到开发人员工作流的特定阶段。 这些命令还可以通过跳过你知道尚未更改的不必要的检查或步骤来节省时间。

  • azd deploy - 此命令打包应用程序源代码并将其重新部署到 Azure。 但是,它不会执行任何将更改应用到 Azure 资源的基础结构即代码文件。

  • azd provision - 此命令基于对基础结构即代码文件的更改创建或更新 Azure 资源。 例如,如果你将 azd provision 添加到 Bicep 或 Terraform 文件,它将在 Azure 中创建新的存储帐户。 但是,此命令不会打包或重新部署应用程序源代码。

更新应用代码

你的团队正在构建票证管理应用,而不是 Todo 应用,因此你需要相应地更改标题文本。 使用 azd 完成以下步骤以更新应用程序代码并重新部署更改:

  1. 在模板的 src/web/src/layout 目录中找到 header.tsx 文件。 如果使用的是 Visual Studio Code,还可以使用 ctrl + p 快捷方式直接搜索 header.tsx 文件。

  2. 将第 42 行周围的标题显示文本从 Todo 更改为 Ticket Manager 并保存更改。

    <Stack horizontal styles={logoStyles}>
        <FontIcon aria-label="Check" iconName="SkypeCircleCheck" className={logoIconClass} />
        <Text variant="xLarge">Ticket Manager</Text>
    </Stack>
    
  3. 在设置为目录根目录的命令提示符窗口中,运行 azd deploy 命令。 请稍等片刻,同时 azd 重新部署代码。

    azd deploy
    
  4. 命令完成后,在浏览器中重新访问应用。 标题左上角的文本现在应显示为“票证管理器”。

更新 Azure 资源

你的团队计划为用户添加使用票证上传文件的功能,例如他们遇到的问题的图像或屏幕截图或其他服务文档。 你想要将 Azure 存储帐户添加到将保存这些文件的环境。 你还希望确保此模板预配到未来环境时,在初始设置期间包含存储帐户。 可以使用以下步骤修改模板的基础结构即代码文件来满足这些要求:

  1. 在模板根目录中的 infra 文件夹中,打开 main.bicep 文件。

  2. 该模板已包含用于创建存储帐户的可重用 Bicep 模块,因此你可以使用它添加自己的帐户。 将以下代码片段粘贴到 main.bicep 文件底部第 180 行附近,其上方定义了输出变量:

    module storage './core/storage/storage-account.bicep' = {
      name: 'storage'
      scope: rg
      params: {
        name: '${abbrs.storageStorageAccounts}${resourceToken}'
        location: location
        tags: tags
      }
    }
    
  3. 保存更改,然后运行 azd provision 命令。 azd provision 将使用模板中的基础结构即代码文件来更新 Azure 环境,但不会重新部署任何应用源代码。

    azd provision
    
  4. 命令完成后,按照控制台中输出的 URL 在浏览器中启动 Azure 门户。 应会看到包含所有最初预配资源(包括新存储帐户)的资源组。

    显示部署的存储帐户的屏幕截图。

注意

使用 azd 时,请记住,基础结构即代码文件是幂等的,这意味着无论运行它们多少次,所需的结束状态都将保持一致。 Bicep 或 Terraform 会将更改应用到 Azure,以便环境与基础结构文件的状态匹配,但不会将更改应用于已与所需状态匹配的资源。