C# 通过C删除为lambda配置的环境变量#

C# 通过C删除为lambda配置的环境变量#,c#,aws-lambda,environment-variables,C#,Aws Lambda,Environment Variables,我想通过C#.NET工具从lambdas“$latest”版本中删除所有环境变量。为此,我使用以下代码: using (var lambdaClient = new AmazonLambdaClient(awsCredentials, RegionEndpoint.EUCentral1)) { // Get the lambda config. var lambdaConfig = lambdaClient.GetFunctionConfigurationAsync(lambda

我想通过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!");
}
使用(var lambdClient=new amazonlambdClient(awsCredentials,RegionEndpoint.EUCentral1))
{
//获取lambda配置。
var lambdaConfig=lambdClient.GetFunctionConfigurationAsync(lambdaName).Result;
var request=new UpdateFunctionConfigurationRequest()
{
FunctionName=lambdaName,
Environment=新的Amazon.Lambda.Model.Environment()
{
//删除所有环境变量。
变量=新字典(),
}
};
var response=lambdClient.UpdateFunctionConfigurationAsync(请求).Result;
//由于环境变量未被删除,因此当前每次都会点击此按钮。
if(response.Environment.Variables!=null&&response.Environment.Variables.Any())
LogError(“无法删除lambda环境变量!”);
}
我知道我可以通过AWS web控制台手动完成这项工作,但我希望每个新的lambda部署都能自动完成这项工作,以便在lambda上只配置所需的环境变量

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


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

显然,这在其他语言中有效,但在C#中无效。AWS支持部门确认,这是一个bug。 服务团队自发布以来发布了一个新版本,AWSSDK.Lambda版本3.3.104.1,我可以确认它现在可以工作了

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

var request = new UpdateFunctionConfigurationRequest()
{
    FunctionName = lambdaName,
    Environment = new Amazon.Lambda.Model.Environment()
    {
        Variables = new Dictionary<string, string>(),
        IsVariablesSet = true,
    }
};
var request=new UpdateFunctionConfigurationRequest()
{
FunctionName=lambdaName,
Environment=新的Amazon.Lambda.Model.Environment()
{
变量=新字典(),
IsVariableSet=true,
}
};