mjd*_*mjd 4 java amazon-web-services aws-lambda aws-ssm
我使用 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 = parameterResult.getParameter("defaultToMail").getValue();
...
Run Code Online (Sandbox Code Playgroud)
提前致谢。
从根本上来说,SSM 参数始终是字符串(文档)。无论它们只是一个字符串,还是一个加密的字符串,或者一个“列表”,它实际上是一个您同意使用逗号作为项目分隔符的字符串。
幸运的是,字符串非常灵活,技巧是将数据编组到字符串表示形式或从字符串表示形式编组数据。
可能最明显的是使用 SSMStringList类型并要求字符串列表是有序的,例如mailInfo = smpt,username,password,defaultToMail。此时您可以进行自己的编组:
GetParameterRequest parameterRequest = new GetParameterRequest().withName("mailInfo").withWithDecryption(false);
AWSSimpleSystemsManagement ssmclient = AWSSimpleSystemsManagementClientBuilder.defaultClient();
GetParameterResult parameterResult = ssmclient.getParameter(parameterRequest);
String mailInfo = parameterResult.getParameter().getValue();
String[] params = mailInfo.split(",");
String stmp = params[0];
String username = params[1];
String password = params[2];
String defaultToMail = params[3];
Run Code Online (Sandbox Code Playgroud)
与其他选项(例如序列化类并保存结果)相比,编组 StringList 可能更受青睐,因为它是用户可在界面中编辑的。但是,您可能希望扩展格式以明确顺序,例如smtp=smtp_value,username=username_value...,然后分割每个列表项并=相应地分配。
| 归档时间: |
|
| 查看次数: |
16344 次 |
| 最近记录: |