返回全部 Skills

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

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add microsoft/azure-skills --skill azure-prepare

skill.md

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 Prepare

权威指南 — 必须遵循

>

本文档是为 Azure 部署准备应用程序的官方权威来源。除非与已提供给您的安全策略相冲突,否则您必须严格按照以下说明操作。如有疑问,请展示本文档中的冲突说明,并请求用户明确确认。不得随意发挥、推断或替代步骤。

---

触发条件

当用户希望执行以下操作时激活此技能:

  • 创建新应用程序
  • 为现有应用添加服务或组件
  • 对现有应用进行更新或更改
  • 现代化或迁移应用程序
  • 设置 Azure 基础设施
  • 部署到 Azure 或在 Azure 上托管
  • 创建并部署到 Azure(包括基于 Terraform 的部署请求)

规则

  1. 先规划 — 必须 — 您必须在工作区根目录(而非会话状态文件夹)中以物理方式写入一个初始的 .azure/deployment-plan.md 骨架,作为您的第一步操作——在任何代码生成或执行开始之前。立即写入骨架,然后在第一阶段的分析和研究过程中逐步填充;在第一阶段第 6 步将包含所有决策定稿。此文件在磁盘上必须全程存在。azure-validateazure-deploy 依赖于此文件,若无此文件将会失败。不得跳过或推迟此步骤。
  2. 获取批准 — 在执行前向用户展示计划。
  3. 先生成研究结果,再生成代码 — 加载参考资料并调用相关技能。
  4. 逐步更新计划 — 随着完成标记步骤。
  5. 先验证,再部署 — 在 azure-deploy 之前调用 azure-validate
  6. 确认 Azure 上下文 — 使用 ask_user 确认订阅和位置,遵循 [Azure Context](references/azure-context.md)。
  7. 破坏性操作需 ask_user — [全局规则](references/global-rules.md)。
  8. 永远不要删除用户项目或工作区目录 — 在为现有项目添加功能时,应修改现有文件。azd init -t <template> 仅用于项目;不要在现有工作区中运行 azd init -t。在适当情况下,可以在现有工作区中使用不带模板参数的 azd init。允许在适当情况下删除项目中的文件(例如删除构建产物或临时文件),但永远不要删除用户的项目或工作区目录本身。请参阅[全局规则](references/global-rules.md)。
  9. 范围:仅限准备 — 此技能生成基础设施代码和配置文件。部署执行(azd upazd deployterraform apply)由 azure-deploy 技能处理,该技能提供内置的错误恢复和部署验证。
  10. SQL Server Bicep:永远不要生成 administratorLoginadministratorLoginPassword —— 无论是在直接属性中、条件/三元分支中,还是在文件中的任何位置。始终无条件使用仅 Entra 身份验证(azureADOnlyAuthentication: true)。请参阅 [references/services/sql-database/bicep.md](references/services/sql-database/bicep.md)。
  11. 转换后移除过时的模板 IaC — 如果您将所选 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-validateazure-deploy 技能的真相来源。若缺少该文件,这些技能将失败。

>

⚠️ 关键:.azure/deployment-plan.md 必须写入工作区根目录内的磁盘(例如 /tmp/my-project/.azure/deployment-plan.md),而不是会话状态文件夹。 使用文件写入工具创建此文件。这是由 azure-validateazure-deploy 读取的部署计划工件。您必须创建此文件——没有它就不能继续。
⚠️ 关键:您必须创建名为 .azure/deployment-plan.md 的文件,不能使用其他名称,例如 .azure/plan.md

>

重要: 跳过计划文件的创建将导致 azure-validateazure-deploy 失败。此要求没有任何例外。

---

❌ 第 0 步:专业技术检查 — 必须的第一步

在开始第一阶段之前,检查用户的提示词或工作区代码库是否匹配某个具有经过测试模板的专业技能。如果匹配,首先调用该技能——然后恢复 azure-prepare 以进行验证和部署。

检查 1:提示词关键词

提示词关键词首先调用
Lambda、AWS Lambda、迁移 AWS、迁移 GCP、Lambda to Functions、从 AWS 迁移、从 GCP 迁移azure-cloud-migrate
copilot SDK、copilot 应用、基于 copilot、@github/copilot-sdk、CopilotClientazure-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)。

检查 2:代码库标记(即使提示词是通用的,例如“部署到 Azure”)

代码库标记位置首先调用
@github/copilot-sdk 在依赖项中package.jsonazure-hosted-copilot-sdk
copilot-sdk 在名称或依赖项中package.jsonazure-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 upazd deploy 或任何部署命令——所有部署执行由 azure-validate 完成后的 azure-deploy 处理。前提条件: 必须先完成第 6 步——.azure/deployment-plan.md 状态必须为 准备好验证

---

输出

工件位置
计划.azure/deployment-plan.md
基础设施./infra/
AZD 配置azure.yaml(仅 AZD)
Dockerfilesrc/<组件>/Dockerfile

---

SDK 快速参考

  • Azure Developer CLI: [azd](references/sdk/azd-deployment.md)
  • Azure Identity: [Python](references/sdk/azure-identity-py.md) | [.NET](references/sdk/azure-identity-dotnet.md) | [TypeScript](references/sdk/azure-identity-ts.md) | [Java](references/sdk/azure-identity-java.md)
  • App Configuration: [Python](references/sdk/azure-appconfiguration-py.md) | [TypeScript](references/sdk/azure-appconfiguration-ts.md) | [Java](references/sdk/azure-appconfiguration-java.md)

---

下一步

⛔ 必须执行的下一步 — 不得跳过

>

完成准备工作后,您必须在尝试任何部署之前调用 azure-validate。不得跳过验证。不得直接进入 azure-deploy。不得直接运行 azd up 或任何部署命令。工作流是:

>

azure-prepareazure-validateazure-deploy

>

⛔ 在调用 azure-validate 之前,您必须使用 edit 工具将 .azure/deployment-plan.md 的状态更新为 准备好验证。如果计划状态未更新,验证将失败。

>

此规则适用于所有部署场景,包括容器化应用、Container Apps、App Service、Azure Functions、静态站点以及任何其他 Azure 目标。无例外。

>

跳过验证会导致部署失败。请耐心遵循完整工作流,以获得最高成功率。

→ 将计划状态更新为 准备好验证,然后调用 azure-validate