Как определить, работает ли Lambda локально или под AWS при настройке Java Server безаварийной инфраструктуры - PullRequest
0 голосов
/ 20 сентября 2018

Я играю с Java-сервером AWS SAM.Я использую безсерверный плагин eclipse AWS для создания простого приложения CRUD на базе Dynamo DB.Приложение принимает запрос http и в зависимости от метода HTTP пытается выполнить соответствующую операцию CRUD на DynamoDB.

Так что все работает хорошо, за исключением того, что я не могу понять, как передать переменную среды или файл свойств вмой лямбда-код Java, чтобы определить, работает ли лямбда локально или в среде AWS.В зависимости от этого я хочу использовать локальный клиент DB Dynamo или клиент 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 для локального запуска / отладки я не вижу никакой возможности сделать это.

1 Ответ

0 голосов
/ 20 сентября 2018

Вы должны быть в состоянии положиться на AWS_SAM_LOCAL=true за этот коммит .

...