AWS Certified Developer - Associate
• 内容领域 1: 使用 AWS 服务进行开发(占计分内容的 32%)
• 内容领域 2: 安全性(占计分内容的 26%)
• 内容领域 3: 部署(占计分内容的 24%)
• 内容领域 4: 故障排除和优化(占计分内容的 18%)
任务 1: 为 AWS 上托管的应用程序开发代码技能 1.1.1: 描述架构模式(例如,事件驱动型、微服务、整体式、编配、编排、扇出)
技能 1.1.2: 描述有状态概念和无状态概念之间的区别
技能 1.1.3: 描述紧耦合组件和松散耦合组件之间的区别
技能 1.1.4: 描述同步模式和异步模式之间的区别
技能 1.1.5: 使用编程语言(例如 Java、C#、Python、JavaScript、TypeScript、Go)创建具有韧性的容错应用程序
技能 1.1.6: 创建、扩展和维护 API(例如,响应/请求转换、强制执行验证规则、覆盖状态代码)
技能 1.1.7: 在开发环境中编写和运行单元测试(例如,使用 AWS SAM)
技能 1.1.8: 编写代码以使用消息收发服务
技能 1.1.9: 使用 API 和 AWS SDK 编写与 AWS 服务交互的代码
技能 1.1.10: 使用 AWS 服务处理流数据
技能 1.1.11: 使用 Amazon Q Developer 协助开发
技能 1.1.12: 使用 Amazon EventBridge 实施事件驱动型模式
技能 1.1.13: 为第三方服务集成实施具有韧性的应用程序代码(例如,重试逻辑、断路器、错误处理模式)
任务 2: 为 AWS Lambda 开发代码
技能 1.2.1: 描述通过 Lambda 代码访问 VPC 中的私有资源
技能 1.2.2: 通过定义环境变量和参数(例如,内存、并发性、超时、运行时、处理程序、层、扩展、触发器、目标)来配置 Lambda 函数
技能 1.2.3: 使用代码(例如,Lambda 目标、死信队列)处理事件生命周期和错误
技能 1.2.4: 使用 AWS 服务及工具编写和运行测试代码
技能 1.2.5: 将 Lambda 函数与 AWS 服务集成
技能 1.2.6: 调整 Lambda 函数以获得最佳性能
技能 1.2.7: 使用 Lambda 函数近乎实时地处理和转换数据
任务 3: 在应用程序开发中使用数据存储
技能 1.3.1: 描述用于平衡分区访问的高基数分区键
技能 1.3.2: 描述数据库一致性模型(例如,强一致性、最终一致性)
技能 1.3.3: 描述查询和扫描操作之间的区别
技能 1.3.4: 定义 Amazon DynamoDB 键和索引
技能 1.3.5: 对数据进行序列化和反序列化,从而提供数据存储的持久性
技能 1.3.6: 使用、管理和维护数据存储
技能 1.3.7: 管理数据生命周期
技能 1.3.8: 使用数据缓存服务
技能 1.3.9: 根据访问模式使用专用数据存储(例如,Amazon OpenSearch Service)
任务 1: 对应用程序和 AWS 服务实施身份验证和/或授权
技能 2.1.1: 使用身份提供商实施联合访问(例如,Amazon Cognito、IAM)
技能 2.1.2: 使用持有者令牌保护应用程序
技能 2.1.3: 配置对 AWS 的编程式访问
技能 2.1.4: 对 AWS 服务进行身份验证调用
技能 2.1.5: 代入 IAM 角色
技能 2.1.6: 为 IAM 主体定义权限
技能 2.1.7: 实施应用程序级授权,实现精细的访问控制
技能 2.1.8: 在微服务架构中处理跨服务身份验证
任务 2: 使用 AWS 服务实施加密
技能 2.2.1: 定义静态和传输中的加密
技能 2.2.2: 描述证书管理(例如,AWS 私有 CA)
技能 2.2.3: 描述客户端加密和服务器端加密之间的差异
技能 2.2.4: 使用加密密钥加密或解密数据
技能 2.2.5: 生成用于开发目的的证书和 SSH 密钥
技能 2.2.6: 跨账户边界使用加密
技能 2.2.7: 启用和禁用密钥轮换
任务 3: 管理应用程序代码中的敏感数据
技能 2.3.1: 描述数据分类(例如,个人身份信息 [PII]、受保护的健康信息 [PHI])
技能 2.3.2: 加密包含敏感数据的环境变量
技能 2.3.3: 使用密钥管理服务保护敏感数据
技能 2.3.4: 清理敏感数据
技能 2.3.5: 实施应用程序级数据掩蔽和清理
技能 2.3.6: 为多租户应用程序实施数据访问模式
任务 1: 准备要部署到 AWS 的应用程序构件
技能 3.1.1: 管理软件包中代码模块的依赖项(例如,环境变量、配置文件、容器映像)
技能 3.1.2: 为应用程序部署组织文件和目录结构
技能 3.1.3: 在部署环境中使用代码存储库
技能 3.1.4: 实施应用程序的资源要求(例如,内存、内核)
技能 3.1.5: 针对特定环境准备应用程序配置(例如,使用 AWS AppConfig)
任务 2: 在开发环境中测试应用程序
技能 3.2.1: 使用 AWS 服务和工具测试已部署的代码
技能 3.2.2: 为外部依赖项编写集成测试和模拟 API
技能 3.2.3: 使用开发终端节点测试应用程序(例如,在 Amazon API Gateway 中配置各个阶段)
技能 3.2.4: 将应用程序堆栈更新部署到现有环境(例如,将 AWS SAM 模板部署到不同的暂存环境)
任务 3: 自动执行部署测试
技能 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)服务部署代码
技能 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: 为应用程序发布配置部署策略(例如,蓝/绿、金丝雀、滚动)
任务 1: 协助进行根本原因分析
技能 4.1.1: 调试代码以识别缺陷
技能 4.1.2: 解释应用程序指标、日志和跟踪
技能 4.1.3: 查询日志以查找相关数据
技能 4.1.4: 实施自定义指标(例如,Amazon CloudWatch 嵌入式指标格式 [EMF])
技能 4.1.5: 使用控制面板和提供的见解查看应用程序运行状况
技能 4.1.6: 使用服务输出日志排除部署故障
技能 4.1.7: 调试应用程序中的服务集成问题
任务 2: 针对可观测性的检测代码
技能 4.2.1: 描述日志记录、监控和可观测性之间的区别
技能 4.2.2: 实施有效的日志记录策略来记录应用程序的行为和状态
技能 4.2.3: 实施发出自定义指标的代码
技能 4.2.4: 为跟踪服务添加注释
技能 4.2.5: 针对特定操作实施通知警报(例如,关于配额限制或部署完成的通知)
技能 4.2.6: 使用 AWS 服务和工具实施跟踪
技能 4.2.7: 为应用程序事件和用户操作实施结构化日志记录
技能 4.2.8: 配置应用程序运行状况检查和就绪性探测器
任务 3: 使用 AWS 服务和功能优化应用程序
技能 4.3.1: 定义并发性
技能 4.3.2: 分析应用程序性能
技能 4.3.3: 确定应用程序的最小内存和计算能力
技能 4.3.4: 使用订阅筛选条件策略来优化消息收发
技能 4.3.5: 根据请求标头缓存内容
技能 4.3.6: 实施应用程序级缓存以提高性能
技能 4.3.7: 优化应用程序资源的使用
技能 4.3.8: 分析应用程序性能问题
技能 4.3.9: 使用应用程序日志识别性能瓶颈