java - 如何在 Java AWS 无服务器框架设置下确定 Lambda 是在本地运行还是在 AWS 下运行

标签 java amazon-web-services serverless-framework

我正在玩 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/

相关文章:

java - tomcat不支持major.minor版本52.0

java - 如何强制客户端使用 Spring Data Rest 发送 etag/版本?

amazon-web-services - 如何在单个 CloudFormation 堆栈上创建 2 个 AWS lambda?

go - 云功能CPUMilliSeconds配额已超出

java - AppEngine Memcache 原子获取和删除

ubuntu - 使用 s3cmd 在 2 个 s3 存储桶之间同步不起作用

curl (35) 安全卡或 token 不存在

go - 如何使用无服务器框架处理手动调用的 AWS lambda

mysql - RDBMS 与 DynamoDB 以及无服务器与非无服务器

java - 按下后退按钮后立即调用方法 (Android)