AWS 开发者助理 (DVA-C02) 认证考试指南
版本 1.3 DVA-C02
简介
AWS 开发者助理 (DVA-C02) 认证考试面向从事开发人员角色的人员。该考试验证了考生开发、测试、部署和调试基于 AWS 云的应用程序的专业能力。
该考试还验证了考生能够完成以下任务的能力:
- 在 AWS 上开发和优化应用程序。
- 使用持续集成和持续交付 (CI/CD) 工作流来打包和部署。
- 保护应用程序代码和数据。
- 识别和解决应用程序问题。
目标考生描述
目标考生应该具有 1 年或以上在 AWS 服务上开发和维护应用程序的实践经验。
建议的一般 IT 知识
目标考生应具备以下一般 IT 知识:
- 至少一种高级编程语言的熟练程度
- 应用程序生命周期管理的理解
- 编写代码的基本云应用程序理解
- 开发功能性应用程序的能力
- 使用开发工具的经验
建议的 AWS 知识
目标考生应该能够完成以下任务:
- 使用 AWS 服务 API、AWS 命令行界面 (AWS CLI) 和 SDK 开发和保护应用程序。
- 使用 CI/CD 管道在 AWS 上部署应用程序。
目标考生范围外的工作任务
以下列表包含目标考生预计无法执行的工作任务。此列表并非详尽无遗。这些任务超出了考试范围:
- 设计架构(例如,分布式系统、微服务、数据库模式和建模)。
- 设计和创建 CI/CD 管道。
- 管理 IAM 用户和组。
- 管理服务器和操作系统。
- 设计 AWS 网络基础设施(例如,Amazon Virtual Private Cloud [Amazon VPC]、AWS Direct Connect)。
请参阅附录,了解可能出现在考试上的技术和概念列表、在考试范围内的 AWS 服务和功能列表,以及考试范围外的 AWS 服务和功能列表。
考试内容
回答类型
考试共有两种类型的问题:
- 多选题:有一个正确答案和三个错误答案(干扰项)
- 多响应题:有两个或更多正确答案,选项总数为五个或更多
选择一个或多个最能完成陈述或回答问题的响应。干扰项或错误答案是具有不完整知识或技能的考生可能选择的响应选项。干扰项通常是与内容区域相匹配的合理响应。
未作答的问题将被评为错误;猜测不会受到惩罚。考试包括 50 个会影响您成绩的问题。
未评分内容
考试包括 15 个不会影响您成绩的未评分问题。AWS 收集关于这些未评分问题表现的信息,以评估这些问题在未来作为评分问题的使用。这些未评分问题在考试中没有标识。
考试结果
AWS 开发者助理 (DVA-C02) 认证考试的结果为合格或不合格。考试根据 AWS 专业人士遵循认证行业最佳实践和指南建立的最低标准进行评分。
您的考试成绩以 100-1,000 的标准分数形式报告。最低及格分数为 720。您的成绩显示了您在整个考试中的表现,以及您是否通过。标准化评分模型有助于在可能具有略有不同难度级别的多个考试形式之间进行成绩等同。
您的成绩报告可能包含一个表格,显示您在每个章节的表现分类。考试使用补偿性评分模型,这意味着您不需要在每个章节都达到及格分数。您只需要通过整个考试。
考试的每个章节都有特定的权重,因此某些章节比其他章节有更多的问题。该分类表包含强调您的优势和弱点的一般信息。在解释章节级别的反馈时要谨慎。
内容大纲
本考试指南包括考试的权重、内容域和任务。本指南并未提供考试内容的全面列表。但是,每项任务都有额外的上下文可帮助您为考试做准备。
考试包含以下内容域和权重:
- 内容域 1:使用 AWS 服务进行开发(32% 的得分内容)
- 内容域 2:安全(26% 的得分内容)
- 内容域 3:部署(24% 的得分内容)
- 内容域 4:故障排查和优化(18% 的得分内容)
内容域 1:使用 AWS 服务进行开发
任务 1:为托管在 AWS 上的应用程序开发代码
知识:
- 架构模式(例如,事件驱动、微服务、单体、编排、流程编排、扇出)
- 幂等性
- 有状态和无状态概念的差异
- 紧耦合和松耦合组件的差异
- 容错设计模式(例如,带指数退避和抖动的重试、死信队列)
- 同步和异步模式的差异
技能:
- 使用编程语言(例如 Java、C#、Python、JavaScript、TypeScript、Go)创建容错且有弹性的应用程序
- 创建、扩展和维护 API(例如,响应/请求转换、强制执行验证规则、覆盖状态代码)
- 在开发环境中编写和运行单元测试(例如,使用 AWS Serverless Application Model [AWS SAM])
- 编写使用消息传递服务的代码
- 编写与 AWS 服务交互的代码,使用 API 和 AWS SDK
任务 2:为 AWS Lambda 开发代码
知识:
- 事件源映射
- 无状态应用程序
- 单元测试
- 事件驱动架构
- 可伸缩性
- 从 Lambda 代码访问 VPC 中的私有资源
技能:
- 通过定义环境变量和参数(例如,内存、并发性、超时时间、运行时、处理程序、层、扩展、触发器、目标地址)来配置 Lambda 函数
- 使用代码处理事件生命周期和错误(例如,Lambda 目标地址、死信队列)
- 使用 AWS 服务和工具编写和运行测试代码
- 将 Lambda 函数与 AWS 服务集成
- 调整 Lambda 函数以获得最佳性能
任务 3:在应用程序开发中使用数据存储
知识:
- 关系和非关系数据库
- 创建、读取、更新和删除 (CRUD) 操作
- 高基数分区键以实现平衡的分区访问
- 云存储选项(例如,文件、对象、数据库)
- 数据一致性模型(例如,强一致性、最终一致性)
- 查询和扫描操作的差异
- Amazon DynamoDB 密钥和索引
- 缓存策略(例如,写通、读通、延迟加载、TTL)
- Amazon Simple Storage Service (Amazon S3) 层和生命周期管理
- 临时和持久性数据存储模式的差异
技能:
- 序列化和反序列化数据以提供对数据存储的持久性
- 使用、管理和维护数据存储
- 管理数据生命周期
- 使用数据缓存服务
内容域 2:安全
任务 1:为应用程序和 AWS 服务实现认证和/或授权
知识:
- 身份联合(例如,安全声明标记语言 [SAML]、OpenID Connect [OIDC]、Amazon Cognito)
- 持有者令牌(例如,JSON Web 令牌 [JWT]、OAuth、AWS Security Token Service [AWS STS])
- Amazon Cognito 中用户池和身份池的比较
- 基于资源的策略、服务策略和主体策略
- 基于角色的访问控制 (RBAC)
- 使用 ACL 的应用程序授权
- 最小权限原则
- AWS 托管策略和客户托管策略的差异
- 身份和访问管理
技能:
- 使用身份提供商实施联合访问(例如,Amazon Cognito、AWS Identity and Access Management [IAM])
- 使用持有者令牌保护应用程序
- 配置对 AWS 的程序访问
- 对 AWS 服务进行经过身份验证的调用
- 承担 IAM 角色
- 为主体定义权限
任务 2:使用 AWS 服务实施加密
知识:
- 静态和传输中的加密
- 证书管理(例如,AWS 专用证书颁发机构)
- 密钥保护(例如,密钥轮换)
- 客户端加密和服务器端加密的差异
- AWS 托管密钥和客户托管 AWS Key Management Service (AWS KMS) 密钥的差异
技能:
- 使用加密密钥加密或解密数据
- 为开发目的生成证书和 SSH 密钥
- 跨账户使用加密
- 启用和禁用密钥轮换
任务 3:管理应用程序代码中的敏感数据
知识:
- 数据分类(例如,个人身份信息 [PII]、受保护的健康信息 [PHI])
- 环境变量
- 密钥管理(例如,AWS Secrets Manager、AWS Systems Manager Parameter Store)
- 安全凭据处理
技能:
- 加密包含敏感数据的环境变量
- 使用机密管理服务来保护敏感数据
- 清理敏感数据
内容域 3:部署
任务 1:准备要部署到 AWS 的应用程序工件
知识:
- 访问应用程序配置数据的方式(例如,AWS AppConfig、Secrets Manager、Parameter Store)
- Lambda 部署包装、层和配置选项
- 基于 Git 的版本控制工具(例如,Git)
- 容器镜像
技能:
- 管理代码模块的依赖项(例如,环境变量、配置文件、容器镜像)
- 组织应用程序部署的文件和目录结构
- 在部署环境中使用代码存储库
- 应用资源的应用程序要求(例如,内存、内核)
任务 2:在开发环境中测试应用程序
知识:
- AWS 服务中执行应用程序部署的功能
- 使用模拟端点进行集成测试
- Lambda 版本和别名
技能:
- 使用 AWS 服务和工具测试部署的代码
- 执行 API 和解决集成依赖项的模拟集成
- 使用开发端点测试应用程序(例如,在 Amazon API Gateway 中配置阶段)
- 将应用程序堆栈更新部署到现有环境(例如,将 AWS SAM 模板部署到不同的暂存环境)
任务 3:自动化部署测试
知识:
- API Gateway 阶段
- 持续集成和持续交付 (CI/CD) 工作流中的分支和操作
- 自动化软件测试(例如,单元测试、模拟测试)
技能:
- 创建应用程序测试事件(例如,用于测试 Lambda、API Gateway、AWS SAM 资源的 JSON 有效负载)
- 将 API 资源部署到各种环境
- 创建使用批准版本进行集成测试的应用程序环境(例如,Lambda 别名、容器镜像标签、AWS Amplify 分支、AWS Copilot 环境)
- 实施和部署基础设施即代码 (IaC) 模板(例如,AWS SAM 模板、AWS CloudFormation 模板)
- 管理单个 AWS 服务中的环境(例如,在 API Gateway 中区分开发、测试和生产)
任务 4:使用 AWS CI/CD 服务部署代码
知识:
- 基于 Git 的版本控制工具(例如,Git)
- AWS CodePipeline 中的手动和自动批准
- 从 AWS AppConfig 和 Secrets Manager 访问应用程序配置
- 使用 AWS 服务的 CI/CD 工作流
- 使用 AWS 服务和工具部署应用程序(例如,CloudFormation、AWS Cloud Development Kit [AWS CDK]、AWS SAM、AWS CodeArtifact、AWS Copilot、Amplify、Lambda)
- Lambda 部署包选项
- API Gateway 阶段和自定义域
- 部署策略(例如,金丝雀、蓝/绿、滚动)
技能:
- 更新现有的 IaC 模板(例如,AWS SAM 模板、CloudFormation 模板)
- 使用 AWS 服务管理应用程序环境
- 使用部署策略部署应用程序版本
- 将代码提交到存储库以触发构建、测试和部署操作
- 使用编排工作流将代码部署到不同的环