aws-lambda - 在无服务器框架中的多个 lambda 函数之间共享一些数据(如 dynamodb 表的文件名)的最佳方式是什么?
问题描述
我想要一个地方存放多个 lambda 函数需要的所有数据。这样我就可以自由地修改/更改/添加数据而没有任何副作用。在使用无服务器框架构建无服务器应用程序时,如何实现此要求?
解决方案
“最佳”是一个相对术语,但一种方法是使用系统管理器参数存储。您没有指定您的编程语言,但我在 Java 中的一些代码看起来像:
AWSSimpleSystemsManagement ssmClient = AWSSimpleSystemsManagementClientBuilder.standard().build();
GetParameterRequest getParameterRequest = new GetParameterRequest()
.withName("/path/to/creds/cred1")
.withWithDecryption(Boolean.TRUE);
String parameterValue = getParameterRequest.getParameter().getValue();
省略了空检查之类的东西。
这有两件事。首先,它创建了一个地方来存储诸如凭据(或表名)之类的通用内容,这样您就不需要将它们存储在其他地方。其次,它允许您创建参数层次结构,例如,您可以在一个地方为您的开发、登台和生产环境提供参数。此外,您可以为每个环境授予参数权限,例如,开发 IAM 角色无法看到生产参数。
我用加密的字符串显示它——如果你不想要,那就不需要了。
其他方式可能是 DynamoDB 或其他持久性存储,如 RDS。
推荐阅读
- android - 如何在 Android 的内置图像选择查看器中添加“按钮”以实现“多图像选择功能”
- python - 使用 Python 编辑 Parquet 文件会导致日期时间格式错误
- express - Https 代码:html 文件在哪里提供?
- java - java.sql.SQLException:用户“root”@“localhost”的访问被拒绝。无法创建与数据库服务器的连接
- vba - 从 VBA 代码运行 excel 文件后返回 Access 表单
- css - 在 ReactJS 中使用网格模板列,内联样式
- swift - 在 SwiftUI 中点击更改按钮背景颜色
- syslog - RSyslog 未知优先级名称
- cluster-analysis - DBSCAN 的 ELKI 实现中的 sample_weight 选项
- java - Mockito 返回 null:需要模拟的多个外部依赖项