如何使用 Elastic Beanstalk 设置 aws-sdk 凭证?
How to set aws-sdk credentials using Elastic Beanstalk?
我是 运行 Elastic Beanstalk 中的一个快速应用程序,在一条路线中,我使用 aws-sdk 向 sns 发布通知。
这在本地 运行 时有效,但在 Elastic Beanstalk 环境中 would/could 我如何设置凭据 'myprofile'?
router.post('/publish', async (req, res) => {
var AWS = require('aws-sdk')
AWS.config.update({region: 'us-east-2'})
// myprofile exists locally, but how do I deal with this in the elastic beanstalk environment?
var credentials = new AWS.SharedIniFileCredentials({profile: 'myprofile'})
AWS.config.credentials = credentials
//...more stuff
})
您可以使用 IAM 实例配置文件为您的 ec2 实例提供权限,这样当您的应用程序加载 SDK 时,传递的凭据将自动加载。
检查此 link https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-roles.html - 您需要的是实例配置文件。为了创建实例配置文件,请转到 IAM 控制台 > 角色,然后选择服务 EC2 作为可以承担此角色的服务。然后附加您的应用程序需要调用的策略(SNS 东西)。
在 beantalk 设置中,在安全性下,您将能够设置刚刚创建的 IAM 实例配置文件 - 因此此环境中的实例应该具有与之关联的角色。
您的代码应该如下所示:
router.post('/publish', async (req, res) => {
var AWS = require('aws-sdk')
AWS.config.update({region: 'us-east-2'})
//...more stuff
})
同时检查您是否可以在控制器之外要求和设置区域 ;)
我是 运行 Elastic Beanstalk 中的一个快速应用程序,在一条路线中,我使用 aws-sdk 向 sns 发布通知。
这在本地 运行 时有效,但在 Elastic Beanstalk 环境中 would/could 我如何设置凭据 'myprofile'?
router.post('/publish', async (req, res) => {
var AWS = require('aws-sdk')
AWS.config.update({region: 'us-east-2'})
// myprofile exists locally, but how do I deal with this in the elastic beanstalk environment?
var credentials = new AWS.SharedIniFileCredentials({profile: 'myprofile'})
AWS.config.credentials = credentials
//...more stuff
})
您可以使用 IAM 实例配置文件为您的 ec2 实例提供权限,这样当您的应用程序加载 SDK 时,传递的凭据将自动加载。
检查此 link https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-roles.html - 您需要的是实例配置文件。为了创建实例配置文件,请转到 IAM 控制台 > 角色,然后选择服务 EC2 作为可以承担此角色的服务。然后附加您的应用程序需要调用的策略(SNS 东西)。
在 beantalk 设置中,在安全性下,您将能够设置刚刚创建的 IAM 实例配置文件 - 因此此环境中的实例应该具有与之关联的角色。
您的代码应该如下所示:
router.post('/publish', async (req, res) => {
var AWS = require('aws-sdk')
AWS.config.update({region: 'us-east-2'})
//...more stuff
})
同时检查您是否可以在控制器之外要求和设置区域 ;)