我使用 Api Gateway、AWS Lambda 和 AWS RDS 来构建 API。我的 Lambda 函数代码是 Java。目前我正在使用 AWS Systems Manager Parameter Store 成功连接到我的数据库。因此,我创建了一个名为“connection”的参数,它的类型为 String,并保存我的完整连接 url。在 Lambda 函数中,我可以通过以下方式成功访问此参数:
GetParameterRequest parameterRequest = new GetParameterRequest().withName("connection").withWithDecryption(false);
AWSSimpleSystemsManagement ssmclient = AWSSimpleSystemsManagementClientBuilder.defaultClient();
GetParameterResult parameterResult = ssmclient.getParameter(parameterRequest);
String url = parameterResult.getParameter().getValue();
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:在其他 lambda 函数中我想发送邮件。因此,我想保存SMTP 服务器、用户名、密码以及默认发件人邮件等。
是否可以像键/值对(地图)一样将此信息保存为 StringList 类型?像这样的事情是可能的:
//Get StringList
GetParameterRequest parameterRequest = new GetParameterRequest().withName("mailInfo").withWithDecryption(false);
AWSSimpleSystemsManagement ssmclient = AWSSimpleSystemsManagementClientBuilder.defaultClient();
GetParameterResult parameterResult = ssmclient.getParameter(parameterRequest);
//Get values from the list
String smtp_server = parameterResult.getParameter("smtp").getValue();
String to_mail …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 terraform 创建一个 AWS 参数存储,它也可以使用 JSON 格式传递默认值。这是代码示例。
resource "aws_ssm_parameter" "secret" {
name = "/something/env"
description = "This is a something values"
type = "SecureString"
value = "test"
tags = {
environment = "production"
}
}
Run Code Online (Sandbox Code Playgroud)
我如何将 json one 传递到值一内,而不是将单个值作为值的“测试”传递。
这样AWS参数存储值就会像
{
"key": "value"
}
Run Code Online (Sandbox Code Playgroud)