猿问

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

我正在使用 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 本地运行/调试配置中,我没有看到任何选项可以做到这一点。


森栏
浏览 175回答 1
1回答

守着星空守着你

您应该能够依靠AWS_SAM_LOCAL=true每这一承诺。
随时随地看视频慕课网APP

相关分类

Java
我要回答