以下是我的联系方式。在Lambda中有什么方法可以设置不可见的环境变量,理想情况下可以交叉到几个lambdas吗?理想情况下,我可以使用SDK访问另一个AWS服务并在所有AWS服务中使用吗?
var MYSQL = require('mysql');
var AWS = require('aws-sdk');
exports.handler = (event, context, callback) => {
var connection = MYSQL.createConnection({
host : '127.0.0.1',
port : '3306',
user : 'myuser',
password : 'mypass',
database : 'mydb'
});
connection.connect();
答案 0 :(得分:3)
我会将其存储在DynamoDB表或S3存储桶中。您可以将一个IAM角色分配给Lambda以允许访问这些角色 - 也许是只读的。
或者,Lambda现在有像Elastic Beanstalk这样的环境变量,你可以这样设置它。它们可以加密,但也增加了一些复杂性。
答案 1 :(得分:2)
您现在可以使用encrypted environment variables。
在幕后,他们将使用KMS加密值,然后允许您的Lambda函数使用它们,就好像它们是容器上下文中的纯文本一样。
答案 2 :(得分:1)
恐怕之前给出的答案缺乏相关性。 AWS推荐的存储此类数据(例如用于lambda的连接字符串)的方法是Systems Manager Parameter Store:
AWS Systems Manager提供了一个集中式存储来管理您的 配置数据,是否为纯文本数据,例如数据库字符串 或密码之类的机密。这使您可以分开 代码中的机密和配置数据。