我正在玩 AWS SAM Java 无服务器应用程序。我正在使用 eclipse AWS 无服务器插件来创建简单的基于 Dynamo DB 的 CRUD 应用程序。应用程序接受一个 http 请求,并根据 HTTP 方法尝试在 DynamoDB 上执行相应的 CRUD 操作。
除了我无法弄清楚如何将环境变量或属性文件传递到我的 Lambda java 代码以确定 lambda 是在本地运行还是在 AWS 环境中运行之外,一切都运行良好。根据我想使用本地 Dynamo DB 客户端或 AWS DB 客户端。下面是代码片段:
String environment = System.getenv("profile");
AmazonDynamoDB dynamoDBclient = null;
if("local".equalsIgnoreCase(environment)) {
dynamoDBclient = AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration(
new AwsClientBuilder.EndpointConfiguration("http://172.16.123.1:8000", "local"))
.build();
} else {
dynamoDBclient = AmazonDynamoDBClientBuilder.standard().build();
}
dynamoDBMapper = new DynamoDBMapper(dynamoDBclient);
试图弄清楚如何传递这个环境变量“配置文件”。在 SAM 本地运行/调试配置中,我看不到任何选项。
最佳答案
根据 this commit,您应该能够依赖 AWS_SAM_LOCAL=true
.
关于java - 如何在 Java AWS 无服务器框架设置下确定 Lambda 是在本地运行还是在 AWS 下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416775/