【问题标题】:Remove environment variables configured for lambda via C#通过 C# 删除为 lambda 配置的环境变量
【发布时间】:2019-11-21 08:14:50
【问题描述】:

我想通过我们的 C# .NET 工具从 lambdas "$latest" 版本中删除所有环境变量。为此,我使用以下代码:

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 Web 控制台手动执行此操作,但我希望为每个新的 lambda 部署自动执行此操作,以便在 lambda 上仅配置所需的环境变量。

我想从“$latest”版本中删除变量,而不是已发布的,因为我知道已发布的版本不能更改其环境变量,只能更改“$latest”。

我正在使用适用于 .NET Core 的 NuGet 包 AWSSDK.Lambda,版本 3.3.103.25。

【问题讨论】:

    标签: c# aws-lambda environment-variables


    【解决方案1】:

    显然这适用于其他语言,但不适用于 C#。 AWS 支持人员确认这是一个错误。 自 AWSSDK.Lambda 版本 3.3.104.1 以来,服务团队已经发布了一个新版本,我可以确认它现在可以工作。

    他们添加了一个新属性“IsVariablesSet”,如果您想更改 lambda 上的环境变量,则必须将其设置为“true”。以下请求现在会从选定的 lambda 中删除所有环境变量:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多