帮助我们改进Amazon SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub
这些区域有:Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建Amazon资源
本主题是教程的一部分,该教程演示了如何使用Amazon SDK for JavaScript. 要开始使用本教程,请参阅创建和使用 Lambda 函数。
本教程需要以下资源。
-
具有未经身份验证的用户角色的 Amazon Cognito 身份池。
-
具有 DynamoDB 和 Lambda 权限的 IAM 策略附加到未经身份验证的用户角色。
-
用于托管浏览器 HTML 和脚本页面的 Amazon S3 存储桶以及 Lambda 函数。
您可以手动创建这些资源,但我们建议使用Amazon Cloud Development Kit (CDK)(Amazon CDK) 如本教程中所述。
创建Amazon使用Amazon CloudFormation
Amazon CloudFormation 让您能够以可预测、可重复的方式创建和预置 Amazon 基础设施部署。有关 的更多信息Amazon CloudFormation,请参阅Amazon CloudFormation开发人员指南。.
创建Amazon CloudFormation堆栈:
安装和配置Amazon CLI按照Amazon CLI用户指南.
创建一个名为的文件
describe-stack-resources.js
在项目文件夹的根目录中。创建一个名为的文件
setup.yaml
在项目文件夹的根目录中,复制内容此处GitHub进入它。 注意 这些区域有:Amazon CloudFormation模板是使用Amazon CDK可用此处GitHub
. 有关 Amazon CDK 的更多信息,请参阅 Amazon Cloud Development Kit (CDK) 开发人员指南。 从命令行运行以下命令,同时将
STACK_NAME
使用堆栈的唯一名称。重要 堆栈名称在Amazon地区和Amazonaccount. 最多可以指定 128 个字符,并允许使用数字和连字符。
aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
有关
create-stack
命令参数,请参阅Amazon CLI命令参考指南,以及Amazon CloudFormation用户指南.将以下代码复制并粘贴到
describe-stack-resources.js
.// Load the AWS SDK for Node.js const { CloudFormationClient, DescribeStackResourcesCommand, CreateStackCommand, DescribeStacksCommand } = require("@aws-sdk/client-cloudformation"); // Create S3 service object const cloudformation = new CloudFormationClient(); var params = { StackName: process.argv[2] } const getVariables = async () => { try { const data = await cloudformation.send( new DescribeStacksCommand({StackName: params.StackName})); console.log('Status: ', data.Stacks[0].StackStatus); if (data.Stacks[0].StackStatus == "CREATE_COMPLETE") { const data = await cloudformation.send( new DescribeStackResourcesCommand({StackName: params.StackName}) ); for (var i = 0; i < data.StackResources.length; i++) { var obj = data.StackResources[i].ResourceType; if (obj == "AWS::IAM::Policy") { const IDENTITY_POOL_ID = data.StackResources[i].LogicalResourceId; console.log("IDENTITY_POOL_ID:", IDENTITY_POOL_ID); var identity_pool_id = IDENTITY_POOL_ID; } if (obj == "AWS::S3::Bucket") { const BUCKET_NAME = data.StackResources[i].PhysicalResourceId; console.log("BUCKET_NAME:", BUCKET_NAME); var bucket = BUCKET_NAME; } if (obj == "AWS::IAM::Role") { const IAM_ROLE = data.StackResources[i].StackId; console.log("IAM_ROLE:", IAM_ROLE); var iam_role = IAM_ROLE; } } } else{ console.log('Stack not ready yet. Try again in a few minutes.') } }catch (err) { console.log("Error listing resources", err); } } ; getVariables();
这个代码是可用的此处GitHub
. -
从命令行运行以下命令,同时将
STACK_NAME
使用堆栈的唯一名称。node describe-stack-resources.js STACK_NAME
记下IAM_ROLE、IDENTITY_POOL_ID, 和BUCKET_NAME在命令行中返回,因为你在本教程中需要它们。