Удалите переменные среды, настроенные для лямбды через C # - PullRequest
1 голос
/ 21 ноября 2019

Я хочу удалить все переменные окружения из лямбда-версии "$ latest" с помощью нашего инструмента C # .NET. Для этого я использую этот код:

using (var lambdaClient = new AmazonLambdaClient(awsCredentials, RegionEndpoint.EUCentral1))
{
    // Get the lambda config.
    var lambdaConfig = lambdaClient.GetFunctionConfigurationAsync(lambdaName).Result;

    var request = new UpdateFunctionConfigurationRequest()
    {
        FunctionName = lambdaName,
        Environment = new Amazon.Lambda.Model.Environment()
        {
            // Remove all environment variables.
            Variables = new Dictionary<string, string>(),
        }
    };

    var response = lambdaClient.UpdateFunctionConfigurationAsync(request).Result;

    // This is currently hit every time, as the environment variables are not deleted.
    if (response.Environment.Variables != null && response.Environment.Variables.Any())
        Debug.LogError("Could not delete lambda environment variables!");
}

Я знаю, что могу сделать это вручную через веб-консоль AWS, но я хочу, чтобы это было автоматизировано для каждого нового лямбда-развертывания, так что только требуемая средапеременные настроены в лямбда-выражении.

Я хочу удалить переменные из «последней версии», а не из опубликованных, так как я знаю, что в опубликованных версиях не могут быть изменены их переменные среды, только '$ latest 'one.

Я использую пакет NuGet AWSSDK.Lambda для .NET Core, версия 3.3.103.25.

1 Ответ

1 голос
/ 21 ноября 2019

Так что, очевидно, это работает на других языках, но не в C #. Поддержка AWS подтвердила, что это ошибка. С тех пор сервисная команда выпустила новую версию, AWSSDK.Lambda версии 3.3.104.1, и я могу подтвердить, что это работает сейчас.

Они добавили новое свойство 'IsVariablesSet', которое должно быть установлено в 'true', если вы хотите изменить переменные окружения в лямбда-выражении. Следующий запрос теперь удаляет все переменные окружения из выбранной лямбды:

var request = new UpdateFunctionConfigurationRequest()
{
    FunctionName = lambdaName,
    Environment = new Amazon.Lambda.Model.Environment()
    {
        Variables = new Dictionary<string, string>(),
        IsVariablesSet = true,
    }
};
...