

# 内容领域 3： 部署
<a name="developer-associate-02-domain3"></a>

**Topics**
+ [任务 1： 准备要部署到 AWS 的应用程序构件](#developer-associate-02-domain3-task1)
+ [任务 2： 在开发环境中测试应用程序](#developer-associate-02-domain3-task2)
+ [任务 3： 自动执行部署测试](#developer-associate-02-domain3-task3)
+ [任务 4： 使用 AWS 持续集成和持续交付（CI/CD）服务部署代码](#developer-associate-02-domain3-task4)

## 任务 1： 准备要部署到 AWS 的应用程序构件
<a name="developer-associate-02-domain3-task1"></a>
+ 技能 3.1.1： 管理软件包中代码模块的依赖项（例如，环境变量、配置文件、容器映像）
+ 技能 3.1.2： 为应用程序部署组织文件和目录结构
+ 技能 3.1.3： 在部署环境中使用代码存储库
+ 技能 3.1.4： 实施应用程序的资源要求（例如，内存、内核）
+ 技能 3.1.5： 针对特定环境准备应用程序配置（例如，使用 AWS AppConfig）

## 任务 2： 在开发环境中测试应用程序
<a name="developer-associate-02-domain3-task2"></a>
+ 技能 3.2.1： 使用 AWS 服务和工具测试已部署的代码
+ 技能 3.2.2： 为外部依赖项编写集成测试和模拟 API
+ 技能 3.2.3： 使用开发终端节点测试应用程序（例如，在 Amazon API Gateway 中配置各个阶段）
+ 技能 3.2.4： 将应用程序堆栈更新部署到现有环境（例如，将 AWS SAM 模板部署到不同的暂存环境）
+ 技能 3.2.5： 测试事件驱动型应用程序

## 任务 3： 自动执行部署测试
<a name="developer-associate-02-domain3-task3"></a>
+ 技能 3.3.1： 创建应用程序测试事件（例如，用于测试 AWS Lambda、API Gateway、AWS SAM 资源的 JSON 负载）
+ 技能 3.3.2： 将 API 资源部署到各种环境
+ 技能 3.3.3： 创建使用经批准的版本进行集成测试的应用程序环境（例如，Lambda 别名、容器映像标签、AWS Amplify 分支、AWS Copilot 环境）
+ 技能 3.3.4： 实施和部署基础设施即代码 (IaC, Infrastructure as Code) 模板（例如，AWS SAM 模板、AWS CloudFormation 模板）
+ 技能 3.3.5： 管理各个 AWS 服务中的环境（例如，在 API Gateway 中区分开发、测试和生产环境）
+ 技能 3.3.6： 使用 Amazon Q Developer 生成自动测试

## 任务 4： 使用 AWS 持续集成和持续交付（CI/CD）服务部署代码
<a name="developer-associate-02-domain3-task4"></a>
+ 技能 3.4.1： 描述 Lambda 部署打包选项
+ 技能 3.4.2： 描述 API Gateway 阶段和自定义域
+ 技能 3.4.3： 更新现有的 IaC 模板（例如，AWS SAM 模板、CloudFormation 模板）
+ 技能 3.4.4： 使用 AWS 服务管理应用程序环境
+ 技能 3.4.5： 使用部署策略部署应用程序版本
+ 技能 3.4.6： 将代码提交到存储库以调用构建、测试和部署操作
+ 技能 3.4.7： 使用编排的工作流将代码部署到不同的环境
+ 技能 3.4.8： 使用现有的部署策略执行应用程序回滚
+ 技能 3.4.9： 使用标签和分支进行版本和发布管理
+ 技能 3.4.10： 使用现有的运行时配置创建动态部署（例如，在 Lambda 函数中使用 API Gateway 中的阶段变量）
+ 技能 3.4.11： 为应用程序发布配置部署策略（例如，蓝/绿、金丝雀、滚动）