使用现有模板向应用添加 Azure 开发人员 CLI 支持
Azure 开发人员 CLI (azd
) 提供了两个不同的工作流来初始化模板以用于应用,其中包括:
- 使用当前目录中的代码:此方法分析应用并自动生成支持的基础结构和配置资源。
- 选择模板:此方法允许将现有模板与应用集成,或使用现有模板作为新应用的起点。
这两种方法都在 “创建 Azure 开发人员 CLI 模板概述 ”文档中进行探讨。
本文介绍如何通过“选择模板”方法向应用添加对 Azure 开发人员 CLI(azd
)的支持。 有关替代方法的详细信息,请访问使用现有模板文档向应用添加azd
支持。 还可以访问培训 - 生成和部署azd
模板,了解有关生成azd
模板的详细信息。
为应用选择模板
使用命令的azd init
“选择模板”工作流,可以选择用作起点的现有azd
模板。 所选模板的内容将添加到项目的根目录。 大多数模板提供所需的文件和文件夹集 azd
,许多模板都包含一个完整的基础结构即代码文件,用于为所选应用程序堆栈预配 Azure 资源。
在此示例中,你将使用 Starter - Bicep 模板,其中包括模板的基本结构 azd
以及一些有用的样板代码入门。 当想要搭建正确的模板结构和启动资源时,初学者模板是一个不错的选择,但仍创作自己的基础结构文件。
若要遵循使用现有示例应用程序的后续步骤,请将以下初学者项目克隆到计算机上的空目录:
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
在所选命令行工具中,导航到克隆项目的根目录。
azd init
运行命令以初始化azd
模板。azd init
出现提示时,选择用于 选择模板的选项。
从模板列表中,选择 “Starter - Bicep”。 可以键入模板名称或使用键盘箭头键查找它。
出现提示时,输入简短的环境名称,例如 testenv。
运行
azd init
后,以下资产将添加到当前目录:├── .azdo [ Configures an Azure Pipeline ] ├── .devcontainer [ For DevContainer ] ├── .github [ Configures a GitHub workflow ] ├── .vscode [ VS Code workspace configurations ] ├── .azure [ Stores Azure configurations and environment variables ] ├── infra [ Contains infrastructure as code files ] │ ├── main.bicep/main.tf [ Main infrastructure file ] │ ├── main.parameters.json/main.tfvars.json [ Parameters file ] │ └── core/modules [ Contains reusable Bicep/Terraform modules ] └── azure.yaml [ Describes the app and type of Azure resources]
更新 Bicep 文件
项目现在包含模板的核心结构和资产 azd
。 但是,若要为特定项目预配 Azure 资源,需要更新文件夹中的 infra
Bicep 文件。 若要托管示例应用程序,需要使用 Bicep 文件定义以下资源:
- Azure App 服务计划
- 在 Linux 上运行的Azure App 服务
在所选编辑器(如 Visual Studio Code)中打开根项目目录。
main.bicep
使用编辑器打开文件夹中的文件infra
。 此文件包含用于设置基本变量、参数和命名约定的有用样板代码。 在阅读的第 50Add resources to be provisioned below
行周围的注释块下,添加以下 Bicep:// Creates an app service instance to host the app module web './core/host/appservice.bicep' = { name: 'web' scope: rg params: { name: '${abbrs.webSitesAppService}web-${resourceToken}' location: location tags: union(tags, { 'azd-service-name': 'web' }) appServicePlanId: appServicePlan.outputs.id runtimeName: 'python' runtimeVersion: '3.8' scmDoBuildDuringDeployment: true } } // Create an App Service Plan to group applications under the same payment plan and SKU module appServicePlan './core/host/appserviceplan.bicep' = { name: 'appserviceplan' scope: rg params: { name: '${abbrs.webServerFarms}${resourceToken}' location: location tags: tags sku: { name: 'B1' } } }
注意
- 基于订阅 ID 生成唯一字符串,并用作
${resourceToken}
变量。 此令牌追加到创建azd
的所有 Azure 资源的名称。 azd
使用标记来标识资源,以便可以根据组织的命名约定修改名称。'azd-service-name': 'web'
应用服务上的标记是用于标识部署主机的值azd
。 该值必须与为 azure.yaml 文件中的服务定义的值相同。
- 基于订阅 ID 生成唯一字符串,并用作
更新 azure.yaml 文件
若要部署应用, azd
需要详细了解你的应用。 该文件 azure.yaml
用于定义应用中每个服务的源代码位置、语言和 Azure 托管服务。 有关完整详细信息,请参阅 azure.yaml 架构。
打开
azure.yaml
项目的根目录。将以下行添加到文件底部:
name: msdocs-python-flask-webapp-quickstart services: web: project: . language: py host: appservice
预览和部署模板
保存所有更改并运行以下命令,在 Azure 上预配和部署应用资源:
azd up
命令完成后,单击命令输出中的链接以导航到已部署的站点。
项目现在与 Azure 开发人员 CLI 兼容,可用作模板。
注意
azd
还支持默认使用 Buildpack 来容器化应用。 azd
如果模板面向 Azure 容器应用或Azure Kubernetes 服务但不包含 Docker 文件,azd
则使用 Buildpack 自动生成映像。