在无服务器框架的多个lambda函数之间共享某些数据(例如dynamodb表的文件名)的最佳方法是什么?

时间:2018-07-12 20:09:05

标签: aws-lambda serverless-framework serverless

我想要多个lambda函数需要它们的所有数据放在一个位置。这样我就可以自由地修改/更改/添加数据,而没有任何副作用。使用无服务器框架构建无服务器应用程序时如何达到此要求?

1 个答案:

答案 0 :(得分:1)

“最佳”是一个相对术语,但一种方式是使用https://github.com/Kaggle/kaggle-api/issues/15。您没有指定编程语言,但是我在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。