dja*_*ngo 5 amazon-s3 amazon-web-services node.js aws-lambda
我在AWS中有一些lambda函数(node.js),它将连接到postgresql并执行一些查询并返回结果,所以我试图为数据库制作一个配置文件,其中包含用户,密码,数据库名称,端口...那么向所有 lambda 函数共享通用配置文件的最佳方式是什么?
AWS 为此提供了两种服务。
AWS Secrets Manager 是最新的服务,具有版本控制的密钥并自动轮换密钥。
您可以将其存储为单独的密钥,也可以将所有密钥组合起来,将它们存储为一个密钥。
秘密管理器示例:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#getSecretValue-property
var params = {
SecretId: "MyTestDatabaseSecret",
VersionStage: "AWSPREVIOUS"
};
secretsmanager.getSecretValue(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
/*
data = {
ARN: "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3",
CreatedDate: <Date Representation>,
Name: "MyTestDatabaseSecret",
SecretString: "{\n \"username\":\"david\",\n \"password\":\"BnQw&XDWgaEeT9XGTT29\"\n}\n",
VersionId: "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1",
VersionStages: [
"AWSPREVIOUS"
]
}
*/
});
Run Code Online (Sandbox Code Playgroud)
系统管理器参数存储:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SSM.html#getParameter-property
var params = {
Name: 'STRING_VALUE', /* required */
WithDecryption: true || false
};
ssm.getParameter(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Run Code Online (Sandbox Code Playgroud)
编辑1:
对于共享公共存储中的公共文件,现在是不可能的。您可以将文件存储在 s3 中并从那里提取。它将有一个严重的冷启动。
| 归档时间: |
|
| 查看次数: |
3835 次 |
| 最近记录: |