【发布时间】:2019-02-24 22:51:57
【问题描述】:
我的应用程序架构有一个弹性负载均衡器和自动扩展组,在 Auto Scaling 组中,我创建了启动配置,以使用 UserData 实例化 EC2 实例,以便在每个实例上运行 nodejs 服务器。 AWS_ACCESS_ID 和 AWS_SECRET_ACCESS_KEY 已使用用户数据添加到 EC2 环境变量中。因此,在我的服务器端(节点)代码中,我没有提供这些凭据。 使用 S3 SDK 时出现错误。 错误提示:“CredentialsError: Missing credentials in config”。
但是,如果我使用相同的用户数据来创建没有任何负载均衡器和 Auto Scaling 组的单个 EC2 实例,它可以正常工作。
而且,如果我在 EC2 实例上手动停止节点服务器(当我有负载均衡器和自动扩展组时)并再次运行它,它就会开始正常工作。
以下是我拥有的 EC2 启动配置的用户数据。
我在 EC2 上使用 Amazon-Linux。
#!/bin/bash
set -e -x
echo AWS_ACCESS_KEY_ID=********** >> /etc/environment
echo AWS_SECRET_ACCESS_KEY=****************************** >> /etc/environment
curl --silent --location https://rpm.nodesource.com/setup_9.x | bash -
sudo yum install -y git nodejs
git clone https://github.com/Vaaceph/BackEndCloud.git && cd BackEndCloud
sudo npm install
DEBUG=express:* node server.js
【问题讨论】:
标签: node.js amazon-web-services amazon-s3 amazon-ec2 aws-sdk