AWS nodejs和dynmodb在Elasticbeanstall中的连接

AWS nodejs and dynmodb connection in Elasticbeanstalk

本文关键字:连接 Elasticbeanstall nodejs dynmodb AWS      更新时间:2023-11-27

我在从AWS Elasticbeanstall连接到DynamoDB数据库时遇到问题。我刚刚使用最新的amazon-linux-ami和node-js配置在elasticbeanstall中创建了一个新项目。然后我在同一地区创建了一个新的发电机表。我知道我希望为我创建的实例能够连接到我刚刚创建的dynamodb实例(我有一个基本的插件,并用javascript编写代码来测试连接)。到目前为止,所有这些设置都是通过控制台进行的。然后我开始阅读这个文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-environment-resources-dynamodb.html它展示了如何将弹性豆茎和dynamodb连接在一起(这个例子展示了php),但它不是很彻底。在我看来,第一步是创建我拥有的代码,第二步是创建一个我拥有的表,但我还是用控制台来做这件事。然后他们声明需要.eextensions/options.config,但没有说明如何或在哪里放置。同样,我不需要在某个地方输入我的凭据吗?有人把松紧柄和发电机连接在一起,可以一步一步地提供"防白痴"的指导吗?

干杯

首先,您需要将AWS凭据设置为环境变量。您可以通过多种方式做到这一点,但使用应用程序根目录中.ebextensions文件夹中的配置文件非常容易。配置文件是按字母顺序解析的,所以将配置文件称为01_env-vars.config:

option_settings:
  - option_name: AWS_ACCESS_KEY_ID
    value: [MYACCESSKEY]
  - option_name: AWS_SECRET_ACCESS_KEY
    value: [MYACCESSSECRET]

然后,您可以在使用aws-sdk还是在顶部使用模型抽象之间进行选择。我目前的首选是使用vogels模块。这隐藏了与dynamicdb对话所需的时髦类型的api。vogels文档非常好,但这里有一个关于如何创建模型的基本示例:

var BlogPost = vogels.define('BlogPost', {
  hashKey : 'email',
  rangeKey : ‘title’,
  schema : {
    email   : Joi.string().email(),
    title   : Joi.string(),
    content : Joi.binary(),
    tags   : vogels.types.stringSet(),
  }
});

然后你可以保存这样的模型:

BlogPost.create({
  email: 'werner@example.com', 
  title: 'Expanding the Cloud', 
  content: 'Today, we are excited to announce the limited preview...'
}, function (err, post) {
  console.log('created blog post', post.get('title'));
});