繁体   English   中英

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

[英]How to determine whether Lambda is running locally or under AWS under Java AWS serverless framework setup

我正在使用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);

试图弄清楚如何通过这个环境变量“ profile”。 在SAM本地运行/调试配置中,我看不到任何选项可以执行此操作。

您应该能够在每次提交时依赖AWS_SAM_LOCAL=true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM