
示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载resources/是 aws-doc-sdk-examples 仓库中一个语言无关language-agnostic的公共资源层集中存放跨服务示例运行所需的基础设施模板、前端客户端与共享数据文件。阅读本文后你将掌握该目录四大子目录cdk、cfn、clients、sample_files的职责划分、各 CDK 应用创建的资源清单、三种运行 CDK 应用的方式CDK CLI / AWS CLI / CloudFormation 控制台以及共享样例数据的实际用途。一、目录结构总览四个各司其职的子目录根据 resources/README.mdresources目录专门承载跨服务示例运行所需的一切配套设施并按用途划分为四个子目录子目录用途/cdk用于搭建跨服务示例所需资源的 AWS CDK 模板/cfn用于搭建跨服务示例所需资源的 AWS CloudFormation 模板/clients用于运行跨服务示例的前端客户端/sample_files供各类示例使用的共享样例数据文件从设计意图看这套目录结构把示例代码与示例依赖的云资源解耦跨服务示例如 JavaScript、Python、Go、Ruby 等各语言目录下的cross_service应用只需按名称引用这里定义的资源而具体的资源创建逻辑统一沉淀在cdk/cfn中可被多种语言的示例复用。二、cdk 子目录面向十余个场景的 CDK 应用合集resources/cdk/README.md 明确说明该目录下的 AWS CDK 应用负责创建如下服务的资源IAM、CloudWatch、Amazon Cognito、Amazon Comprehend、Amazon DynamoDB、Amazon Lex、Amazon SNS、Amazon SQS、Amazon S3、Amazon Translate。每个子目录都是一个独立的 CDK 应用包含setup.ts或同名.ts入口、package.json、cdk.json、tsconfig.json等标准工程文件。2.1 逐个盘点各 CDK 应用创建的资源按 resources/cdk/README.md 的描述各应用创建的资源清单如下dynamodb_ruby_example_create_movies_table / dynamodb-ruby-example-create-users-table各创建一个 DynamoDB 表服务于 Ruby 示例的数据建模场景。iam-ruby-example-add-new-user创建一个 IAM 用户。s3-ruby-example-create-bucket创建一个 S3 存储桶。javascript_example_code_polly_aws_service创建一个对 Amazon Polly 拥有完全访问权限的 IAM 未认证unauthenticated角色以及一个挂接该角色的 Cognito 身份池。javascript_example_lambda_aws_service创建公有读的 S3 存储桶、基于 AWS 身份的 IAM 未认证角色具备建 DynamoDB 表、调用 Lambda 函数、创建移动分析事件的权限以及挂接该角色的 Cognito 身份池。kinesis-example-create-stream创建 Kinesis 数据流、Cognito 身份池和 IAM 角色。kinesis-iam-unauthenticated-role创建 Cognito 身份池和 IAM 角色。lambda_using_api_gateway创建 DynamoDB 表、可执行 Lambda 函数的 IAM 角色、托管 Lambda 函数的 S3 存储桶。lambda_using_scheduled_events创建 S3 存储桶、IAM 角色和 DynamoDB 表。lex_bot_example_iam_unauth_role创建对 Comprehend、Translate、Lex 具备权限的 IAM 未认证角色。messaging-app-unauthenticated-role-sqs-fifo-queue创建具备 SQS 权限的 IAM 未认证角色以及一个 SQS FIFO 队列。python_example_code_apigateway_aws_service创建带username分区键的 DynamoDB 表以及允许 API Gateway 读写该表的 IAM 角色。python_example_code_apigateway_websocket创建带connection_id主键的 DynamoDB 表、授予 Lambda 访问 DynamoDB 权限并允许其运行函数的 IAM 角色与策略以及一个基于 Python 3.7、通过环境变量注入表名的 Lambda 函数。python_example_code_stepfunctions_demo创建带username分区键的 DynamoDB 表以及允许 API Gateway 读写该表的 IAM 角色。rekognition-sns-video-analyzer创建对 SQS、S3、Rekognition 具备权限的 IAM 未认证角色、S3 存储桶和 SNS 主题。rekognition-unauthrole创建 IAM 角色和 Cognito 身份池。submit-data-app-unauthenticated-role创建 DynamoDB 表、Cognito 身份池和 IAM 角色。textract_example_s3_sns_sqs创建授予 Textract 读写权限的 S3 存储桶、SNS 主题、可由 Textract 代入并向主题发布的 IAM 角色以及订阅该主题的 SQS 队列。textract_example_s3_sns_sqs_cognito在上一项基础上额外创建 Cognito 用户池、身份池和认证用户角色授予认证用户访问 Textract、SQS 队列和 S3 存储桶的权限。transcribe-streaming-unauth-role创建具备 Amazon SESSendEmail、Amazon TranscribeStartStreamTranscriptionWebSocket、Amazon ComprehendDetectDominantLanguage、Amazon TranslateTranslateText权限的 IAM 未认证角色。go_example_lambda创建 S3 存储桶、DynamoDB 表、SNS 主题、SQS 队列以及监听这些资源变更并打印 CloudWatch 日志的 Go 语言 Lambda 处理器。go-apprunner创建 Docker 容器以及让 Go 应用在容器内运行所需的 IAM 角色。lambda_api_step_functions创建 Cognito 身份池、IAM 角色和 Step Functions 实例。javascript_example_code_transcribe_demo创建带认证用户角色的 Cognito 身份池、附着于该角色含 S3 与 Transcribe 权限的 IAM 策略、支持注册与登录的 Cognito 用户池以及分别托管应用文件和转录结果的 S3 存储桶。值得注意README 中部分条目如go_example_lambda、go-apprunner、lambda_api_step_functions、javascript_example_code_transcribe_demo等在 cdk 目录下已无对应目录说明该 README 记录了历史演进过程中的多代应用当前实际保留的以 resources/cdk 中的目录清单为准。2.2 从源码看资源定义以三个典型应用为例从源码结构看多数 CDK 应用遵循一个setup.ts定义栈、cdk.json指向入口的统一模式。以下三个示例最能说明其资源定义细节。示例一Aurora Serverless 集群与 Secrets Manager 联动resources/cdk/aurora_serverless_app/setup.ts该栈面向 Aurora 样例应用依次完成三件事创建管理员凭据 Secret使用generateSecretString以username: docexampleadmin为模板、由 CloudFormation 自动生成password字段并关闭标点符号excludePunctuation: true与空格includeSpace: false保证生成的密码兼容 Aurora MySQL 的凭据格式。创建 Aurora 数据库集群选用AuroraPostgresEngineVersion.of(15.5,15)引擎默认库名为auroraappdb开启 Data APIenableDataApi: true并将 Serverless v2 容量设置在 0.5 到 8 ACU 之间写入实例通过ClusterInstance.serverlessV2(writer)声明并直接复用第一步的 Secret 作为数据库凭据。输出三个关键值SecretArn、ClusterArn、DbName——README 注释明确说明这些值正是 Amazon RDS Data Service 对该集群执行 SQL 语句所必需的。该栈的package.json声明了aws-cdk-lib^2.80.0 / ^2.189.1、constructs^10.0.38等依赖与仓库中其他 CDK 应用保持一致。示例二带 MFA 的 Cognito 用户池resources/cdk/cognito_scenario_user_pool_with_mfa/setup.ts该栈专为 Cognito 场景设计通过UserPool构造器集中配置允许自助注册selfSignUpEnabled: true、邮件自动验证autoVerify: { email: true }、强制邮箱属性required: true且不可变强制 MFAmfa: Mfa.REQUIRED且仅启用 TOTP 动态令牌otp: true, sms: false启用设备追踪新设备要求挑战验证challengeRequiredOnNewDevice: true通过addClient注册应用客户端开放管理员密码与用户密码两类认证流程并在输出中提供UserPoolId与ClientId供示例程序调用。示例三DynamoDB 工作项追踪表resources/cdk/dynamodb-item-tracker/setup.ts该栈仅创建一张 DynamoDB 表doc-example-work-item-tracker分区键为字符串类型iditem并设置removalPolicy: RemovalPolicy.DESTROY以便演示后随栈销毁其cdk.json将应用入口指向npx ts-node --prefer-ts-exts setup.ts与仓库中其他应用的启动方式一致。三、cfn 子目录纯 YAML 的 CloudFormation 模板resources/cfn 存放不依赖 CDK 的纯 CloudFormation 模板当前包含三个场景entity-resolution-basicsentity-resolution-basics-template.yml服务于实体解析基础示例iotsitewise_basicsSitewiseRoles-template.yml为 IoT SiteWise 示例创建角色s3_express_basicss3_express_template.yml为 S3 Express 示例创建用户与权限。以 s3_express_basics/s3_express_template.yml 为例模板创建两个 IAM 用户RegularUser、ExpressUser并为ExpressUser挂载名为AllowExpressOperations的策略仅授予s3express:CreateBucket与s3express:CreateSession两个动作最后通过Outputs暴露两个用户名。这是一个典型的最小权限、按示例场景隔离的模板设计。四、clients 子目录供前端演示使用的 React 客户端resources/clients 收录了运行跨服务示例所需的前端客户端当前包括三套 React 应用item-tracker工作项追踪前端含App.js、RestService.js、WorkItem.js、WorkItems.js及 Jest 单元测试其config.json用于配置后端服务地址elrosresources/clients/react/elros基于 Vite TypeScript 的工程模板内含可插拔插件体系src/plugins、src/plugin-creator并预置了 item-tracker 与 sqs-message 两个示例插件elros-pamPhoto Asset Manager 示例的 React 客户端src下包含文件上传、下载、登录导航等组件并自带运行截图。从源码结构看elwing中的item-tracker插件以WorkItemService含 Mock 测试封装后端调用、以RestService.ts处理 HTTP 通信并与后端示例中的表结构iditem分区键一一对应体现了前端客户端与cdk中资源定义之间的强耦合关系。五、sample_files 子目录跨语言共享的样例数据resources/sample_files/README.md 将这里定义为供仓库内各类示例共享的样例数据文件当前包括文件用途movies.json使用通用电影数据模型的示例数据集chat_sfn_state_machine.json简易聊天模拟的 Step Functions 状态机定义sample_saml_metadata.xml创建 SAML 提供商用的样例 SAML 元数据以 chat_sfn_state_machine.json 为例它定义了一个非 AI 的简易聊天模拟器状态机从GreetingPass 状态用States.Format拼接问候语进入GetInputTask 状态通过占位符{{DOC_EXAMPLE_ACTIVITY_ARN}}引用外部活动超时 300 秒再经Choice状态按song/poem/story等动作分流。文件中的{{DOC_EXAMPLE_ACTIVITY_ARN}}占位符说明了样例文件的典型用法由示例代码在部署时替换为真实资源 ARN。六、CDK 应用的三种运行方式resources/cdk/README.md 给出了任意 CDK 应用通用的运行步骤核心输入变量为CLOUDFORMATION_TEMPLATE_NAME合成出的 CloudFormation 模板文件名例如setup.yamlSTACK_NAMECloudFormation 栈名例如myDynamoDBStack。方式一直接使用 AWS CDK CLI在应用目录含package.json与cdk.json的目录执行npm install cdk synth cdk deployCDK 会在输出中显示其创建的资源名。使用完毕如需清理执行cdk destroy方式二使用 AWS CLI先合成模板再用aws cloudformation创建栈npm install cdk synth CLOUDFORMATION_TEMPLATE_NAME aws cloudformation create-stack --template-body file: CLOUDFORMATION_TEMPLATE_NAME --stack-name STACK_NAME查看栈输出生成资源可能不会立即就绪可反复执行直至看到资源名aws cloudformation describe-stacks --stack-name STACK_NAME --query Stacks[0].Outputs --output text清理资源aws cloudformation delete-stack --stack-name STACK_NAME方式三使用 AWS CloudFormation 控制台先合成模板npm install cdk synth CLOUDFORMATION_TEMPLATE_NAME登录 CloudFormation 控制台选择Create stack按页面指引上传模板并创建栈栈状态变为CREATE_COMPLETE后在栈的Outputs选项卡中查看生成的资源名清理时在控制台选中该栈并选择Delete。使用注意在部分情况下 CDK 无法销毁资源——例如 S3 存储桶非空时需要先手动清空桶内对象再执行销毁操作。赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐Terraform AWS Provider 官方示例仓库全解析从 examples 目录快速上手 AWS 资源编排Terraform AWS Provider 官方示例仓库全解析从 examples 目录快速上手 AWS 资源编排 examples/ 是 terraforIaC云原生基础设施BAML playground-serverIDE Playground 的共享服务基础设施BAML playground serverIDE Playground 的共享服务基础设施 本篇基于 engine/playground server/RE编程语言AI Agent编译器CLI人工智能ExoPlayer database 模块解析媒体组件共享 SQLite 数据库基础设施ExoPlayer database 模块解析媒体组件共享 SQLite 数据库基础设施 导读 本文围绕 ExoPlayer 仓库中 library/data音视频移动开发上一篇SpaceX-API数据库连接池优化大小与超时设置下一篇yuzu模拟器帧率优化策略突破60fps限制的技术方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考