我尝试使用updateFunctionConfiguration更新新的环境变量。
有一个代码:
awsLambda.updateFunctionConfiguration(
new UpdateFunctionConfigurationRequest()
.withFunctionName(lambdaContext.getFunctionName())
.withEnvironment(environment)
);
问题是:我必须创建环境对象,而不仅仅是将增量添加到现有对象中。
我本可以重新创建整个环境的地图并添加/更新所需的内容,但是我发现现有的env键值对不能存储到配置中。仅仅是因为它们没有通过验证。
参见此处:https://docs.aws.amazon.com/lambda/latest/dg/API_Environment.html
但是..我放了一个日志来分析它:
在environment.addVariablesEntry(key1, value1);
它失败并显示:
检测到1个验证错误:“ environment.variables”处的值失败 满足约束:映射键必须满足约束:[成员必须 满足正则表达式模式:a-zA-Z +](服务: AWSLambda;状态码:400;错误代码:ValidationException
我进行了此测试code:
System.getenv().forEach( (key1, value1) -> { ...
这是我在其中重新创建环境对象的地方
发现一些键实际上是值。
我给你举个例子:
/var/task -> LAMBDA_TASK_ROOT
/usr/local/bin:/usr/bin/:/bin -> PATH
1024 -> AWS_LAMBDA_FUNCTION_MEMORY_SIZE
因此,乳清尝试使用/ var / task作为密钥-失败。
问题为什么...键和值在某些环境中被翻转?