【研发类-后端开发Skills】azd-deployment 技能

发布时间:2026/9/26 11:51:16
【研发类-后端开发Skills】azd-deployment 技能 Deploy containerized frontend backend applications to Azure Container Apps with remote builds, managed identity, and idempotent infrastructure.技能概述azd-deployment 技能用于将容器化的前端后端应用部署到Azure Container Apps。支持远程构建、托管身份和幂等基础设施适用于需要企业级云部署的场景。下载地址https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azd-deployment主要功能容器化部署: 部署前端后端容器应用到Azure Container Apps远程构建: 在Azure Container Registry中构建镜像托管身份: 配置系统分配的托管身份和RBAC幂等部署: Bicep声明式基础设施确保幂等性服务发现: Container App环境内内部HTTP路由环境管理: 多环境支持dev、staging、prod触发条件部署容器化应用到Azure Container Apps需要企业级云基础设施部署需要托管身份和RBAC配置需要多环境部署管理快速开始# 初始化和部署azd auth loginazd init # 创建azure.yaml和.azure/文件夹azd env new env-name # 创建环境(dev, staging, prod)azd up # 配置基础设施 构建 部署核心文件结构project/├── azure.yaml # azd服务定义 钩子├── infra/│ ├── main.bicep # 根基础设施模块│ ├── main.parameters.json # 从环境变量注入参数│ └── modules/│ ├── container-apps-environment.bicep│ └── container-app.bicep├── .azure/│ ├── config.json # 默认环境指针│ └── env-name/│ ├── .env # 环境特定值(azd管理)│ └── config.json # 环境元数据└── src/├── frontend/Dockerfile└── backend/Dockerfileazure.yaml配置示例: 完整配置name: azd-deploymentmetadata:template: my-project1.0.0infra:provider: biceppath: ./infraazure:location: eastus2services:frontend:project: ./src/frontendlanguage: tshost: containerappdocker:path: ./Dockerfilecontext: .remoteBuild: truebackend:project: ./src/backendlanguage: pythonhost: containerappdocker:path: ./Dockerfilecontext: .remoteBuild: truehooks:postdeploy:shell: shrun: |echo Frontend: ${SERVICE_FRONTEND_URI}echo Backend: ${SERVICE_BACKEND_URI}关键配置选项选项描述remoteBuild: true在Azure Container Registry中构建镜像推荐context: .相对于项目路径的Docker构建上下文host: containerapp部署到Azure Container Appsinfra.provider: bicep使用Bicep进行基础设施配置常用命令# 环境管理azd env list # 列出环境azd env select name # 切换环境azd env get-values # 显示所有环境变量azd env set KEY value # 设置变量# 部署azd up # 完整配置 部署azd provision # 仅基础设施azd deploy # 仅代码部署azd deploy --service backend # 部署单个服务# 调试azd show # 显示项目状态az containerapp logs show -n app -g rg --follow # 流式日志托管身份与RBAC示例: 启用系统分配身份resource containerApp Microsoft.App/containerApps2024-03-01 {identity: {type: SystemAssigned}}output principalId string containerApp.identity.principalId关键提醒重要注意事项:始终使用 remoteBuild: true - 本地构建在M1/ARM Mac上部署到AMD64会失败Bicep输出自动填充 .azure/env/.env - 不要手动编辑使用 azd env set 设置密钥 - 不要在main.parameters.json默认值中设置服务标签(azd-service-name) - azd需要它来查找Container Apps钩子中使用 || true - 防止RBAC已存在错误导致部署失败最佳实践推荐做法:✅ 使用Bicep声明式基础设施确保幂等性✅ 使用钩子保存手动添加的自定义域名✅ 使用内部DNS进行服务间通信✅ 配置后置钩子进行RBAC分配✅ 使用 azd env set 管理环境变量使用限制仅适用于Azure Container Apps部署需要Azure订阅和azd CLI需要Bicep知识进行基础设施配置不涵盖其他Azure服务的部署