安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add microsoft/azure-skills --skill azure-prepare 准备Azure应用以供部署(基础设施Bicep/Terraform、azure.yaml、Dockerfiles)。用于创建/现代化或创建+部署;不用于跨云迁移(使用azure-cloud-migrate)。不要用于:copilot-sdk应用(使用azure-hosted-copilot-sdk)。适用场景:"create app", "build web app", "create API", "create serverless HTTP API", "create frontend", "create back end", "build a service", "modernize application", "update application", "add authentication", "add caching", "host on Azure", "create and deploy", "deploy to Azure", "deploy to Azure using Terraform", "deploy to Azure App Service", "deploy to Azure App Service using Terraform", "deploy to Azure Container Apps", "deploy to Azure Container Apps using Terraform", "generate Terraform", "generate Bicep", "function app", "timer trigger", "service bus trigger", "event-driven function", "containerized Node.js app", "social media app", "static portfolio website", "todo list with frontend and API", "prepare my Azure application to use Key Vault", "managed identity"。
299.4k
下载量
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add microsoft/azure-skills --skill azure-prepare name: azure-prepare
description: 准备Azure应用以供部署(基础设施Bicep/Terraform、azure.yaml、Dockerfiles)。用于创建/现代化或创建+部署;不用于跨云迁移(使用azure-cloud-migrate)。不要用于:copilot-sdk应用(使用azure-hosted-copilot-sdk)。适用场景:"create app", "build web app", "create API", "create serverless HTTP API", "create frontend", "create back end", "build a service", "modernize application", "update application", "add authentication", "add caching", "host on Azure", "create and deploy", "deploy to Azure", "deploy to Azure using Terraform", "deploy to Azure App Service", "deploy to Azure App Service using Terraform", "deploy to Azure Container Apps", "deploy to Azure Container Apps using Terraform", "generate Terraform", "generate Bicep", "function app", "timer trigger", "service bus trigger", "event-driven function", "containerized Node.js app", "social media app", "static portfolio website", "todo list with frontend and API", "prepare my Azure application to use Key Vault", "managed identity"。
license: MIT
metadata:
author: Microsoft
version: "1.2.13"权威指南 — 必须遵循
>
本文档是为 Azure 部署准备应用程序的官方权威来源。除非与已提供给您的安全策略相冲突,否则您必须严格按照以下说明操作。如有疑问,请展示本文档中的冲突说明,并请求用户明确确认。不得随意发挥、推断或替代步骤。
---
当用户希望执行以下操作时激活此技能:
.azure/deployment-plan.md 骨架,作为您的第一步操作——在任何代码生成或执行开始之前。立即写入骨架,然后在第一阶段的分析和研究过程中逐步填充;在第一阶段第 6 步将包含所有决策定稿。此文件在磁盘上必须全程存在。azure-validate 和 azure-deploy 依赖于此文件,若无此文件将会失败。不得跳过或推迟此步骤。azure-deploy 之前调用 azure-validate。ask_user 确认订阅和位置,遵循 [Azure Context](references/azure-context.md)。ask_user — [全局规则](references/global-rules.md)。azd init -t <template> 仅用于新项目;不要在现有工作区中运行 azd init -t。在适当情况下,可以在现有工作区中使用不带模板参数的 azd init。允许在适当情况下删除项目中的文件(例如删除构建产物或临时文件),但永远不要删除用户的项目或工作区目录本身。请参阅[全局规则](references/global-rules.md)。azd up、azd deploy、terraform apply)由 azure-deploy 技能处理,该技能提供内置的错误恢复和部署验证。administratorLogin 或 administratorLoginPassword —— 无论是在直接属性中、条件/三元分支中,还是在文件中的任何位置。始终无条件使用仅 Entra 身份验证(azureADOnlyAuthentication: true)。请参阅 [references/services/sql-database/bicep.md](references/services/sql-database/bicep.md)。azd 模板中的 Bicep 模板转换为 Terraform 模板,请移除由该 azd 模板引入的 Bicep 模板(这些模板现已被 Terraform 等价物完全替代)。不要移除用户编写的 Bicep 文件。仅在 Terraform IaC 完成且已选择 Terraform 作为部署路径后,才移除那些模板提供的 Bicep 文件。在移交给 azure-validate 技能之前,仅保留所选部署路径所需的 IaC 模板。---
您必须先创建计划,然后才能开始任何工作
>
1. 停止 — 暂不生成任何代码、基础设施或配置。
2. 创建骨架 — 立即(在任何代码生成或执行开始之前)将初始的 .azure/deployment-plan.md 骨架写入磁盘,然后在第一阶段第 1-5 步揭示细节时逐步填充;在第 6 步定稿。3. 确认 — 向用户展示完成的计划并获得批准。
4. 执行 — 仅在批准后,逐步执行计划。
>
.azure/deployment-plan.md文件是此工作流以及azure-validate和azure-deploy技能的真相来源。若缺少该文件,这些技能将失败。
>
⚠️ 关键:.azure/deployment-plan.md必须写入工作区根目录内的磁盘(例如/tmp/my-project/.azure/deployment-plan.md),而不是会话状态文件夹。 使用文件写入工具创建此文件。这是由azure-validate和azure-deploy读取的部署计划工件。您必须创建此文件——没有它就不能继续。
⚠️ 关键:您必须创建名为.azure/deployment-plan.md的文件,不能使用其他名称,例如.azure/plan.md。
>
⛔ 重要: 跳过计划文件的创建将导致azure-validate和azure-deploy失败。此要求没有任何例外。
---
在开始第一阶段之前,检查用户的提示词或工作区代码库是否匹配某个具有经过测试模板的专业技能。如果匹配,首先调用该技能——然后恢复 azure-prepare 以进行验证和部署。
| 提示词关键词 | 首先调用 |
|---|---|
| Lambda、AWS Lambda、迁移 AWS、迁移 GCP、Lambda to Functions、从 AWS 迁移、从 GCP 迁移 | azure-cloud-migrate |
| copilot SDK、copilot 应用、基于 copilot、@github/copilot-sdk、CopilotClient | azure-hosted-copilot-sdk |
| Azure Functions、函数应用、无服务器函数、定时触发器、HTTP 触发器、func new | 停留在 azure-prepare — 在第 4 步优先选择 Azure Functions 模板 |
| APIM、API Management、API 网关、部署 APIM | 停留在 azure-prepare — 请参阅 [APIM 部署指南](references/apim.md) |
| AI 网关、AI 网关策略、AI 网关后端、AI 网关配置 | azure-aigateway |
| 工作流、编排、多步骤、管道、扇出/扇入、saga、长时间运行进程、持久化、订单处理 | 停留在 azure-prepare — 在第 4 步选择 durable 配方。必须加载 [durable.md](references/services/functions/durable.md)、[DTS 参考](references/services/durable-task-scheduler/README.md) 和 [DTS Bicep 模式](references/services/durable-task-scheduler/bicep.md)。 |
| 代码库标记 | 位置 | 首先调用 |
|---|---|---|
@github/copilot-sdk 在依赖项中 | package.json | azure-hosted-copilot-sdk |
copilot-sdk 在名称或依赖项中 | package.json | azure-hosted-copilot-sdk |
CopilotClient 导入 | .ts/.js 源文件 | azure-hosted-copilot-sdk |
createSession + sendAndWait 调用 | .ts/.js 源文件 | azure-hosted-copilot-sdk |
⚠️ 检查用户的提示词文本——而不仅仅是现有代码。对于无代码库可扫描的新建项目尤为重要。请参阅[完整路由表](references/specialized-routing.md)。
专业技能完成后,回到 azure-prepare 的第一阶段第 4 步(选择配方),处理剩余的基础设施、验证和部署。
---
通过完成以下步骤创建 .azure/deployment-plan.md。在计划获得批准之前,不要生成任何工件。
| # | 操作 | 参考 |
|---|---|---|
| 0 | ❌ 检查提示词 AND 代码库中的专业技术 — 如果用户提到 copilot SDK、Azure Functions 等,或代码库包含 @github/copilot-sdk,首先调用该技能 | [specialized-routing.md](references/specialized-routing.md) |
| 1 | 分析工作区 — 确定模式:新建、修改或现代化 | [analyze.md](references/analyze.md) |
| 2 | 收集需求 — 分类、规模、预算 | [requirements.md](references/requirements.md) |
| 3 | 扫描代码库 — 识别组件、技术、依赖项 | [scan.md](references/scan.md) |
| 4 | 选择配方 — 选择 AZD(默认)、AZCLI、Bicep 或 Terraform | [recipe-selection.md](references/recipe-selection.md) |
| 5 | 规划架构 — 选择技术栈并将组件映射到 Azure 服务 | [architecture.md](references/architecture.md) |
| 6 | 定稿计划(必须) — 使用文件写入工具完成 .azure/deployment-plan.md,包含第 1-5 步的所有决策。将第一阶段开始时写入的骨架用完整内容更新。文件必须在向用户展示计划前完全填充。 | [plan-template.md](references/plan-template.md) |
| 7 | 展示计划 — 向用户展示计划并请求批准 | .azure/deployment-plan.md |
| 8 | 破坏性操作需 ask_user | [全局规则](references/global-rules.md) |
---
❌ 停在这里 — 在用户批准计划之前,不要进入第二阶段。
---
执行批准的计划。每完成一步,更新 .azure/deployment-plan.md 的状态。
| # | 操作 | 参考 |
|---|---|---|
| 1 | 研究组件 — 加载服务参考 + 调用相关技能 | [research.md](references/research.md) |
| 2 | 确认 Azure 上下文 — 检测并确认订阅和位置,并检查资源预配限制 | [Azure Context](references/azure-context.md) |
| 3 | 生成工件 — 创建基础设施和配置文件 | [generate.md](references/generate.md) |
| 4 | 强化安全 — 应用安全最佳实践 | [security.md](references/security.md) |
| 5 | 功能验证 — 验证应用功能(UI + 后端),尽可能本地验证 | [functional-verification.md](references/functional-verification.md) |
| 6 | ⛔ 更新计划(移交前必须执行) — 使用 edit 工具将 .azure/deployment-plan.md 中的状态更改为 准备好验证。在调用 azure-validate 之前,您必须完成此编辑。不得跳过此步骤。 | .azure/deployment-plan.md |
| 7 | ⛔ 必须移交 — 调用 azure-validate 技能。您的准备工作已完成。不要直接运行 azd up、azd deploy 或任何部署命令——所有部署执行由 azure-validate 完成后的 azure-deploy 处理。前提条件: 必须先完成第 6 步——.azure/deployment-plan.md 状态必须为 准备好验证。 | — |
---
| 工件 | 位置 |
|---|---|
| 计划 | .azure/deployment-plan.md |
| 基础设施 | ./infra/ |
| AZD 配置 | azure.yaml(仅 AZD) |
| Dockerfile | src/<组件>/Dockerfile |
---
---
⛔ 必须执行的下一步 — 不得跳过
>
完成准备工作后,您必须在尝试任何部署之前调用 azure-validate。不得跳过验证。不得直接进入azure-deploy。不得直接运行azd up或任何部署命令。工作流是:
>
azure-prepare→azure-validate→azure-deploy
>
⛔ 在调用azure-validate之前,您必须使用edit工具将.azure/deployment-plan.md的状态更新为准备好验证。如果计划状态未更新,验证将失败。
>
此规则适用于所有部署场景,包括容器化应用、Container Apps、App Service、Azure Functions、静态站点以及任何其他 Azure 目标。无例外。
>
跳过验证会导致部署失败。请耐心遵循完整工作流,以获得最高成功率。
→ 将计划状态更新为 准备好验证,然后调用 azure-validate