Amazon web services 使用工作区从aws secret manager检索terraform中的机密
我正在尝试使用以下代码行从AWS secret Manager检索一个秘密:Amazon web services 使用工作区从aws secret manager检索terraform中的机密,amazon-web-services,aws-lambda,terraform,terraform-provider-aws,Amazon Web Services,Aws Lambda,Terraform,Terraform Provider Aws,我正在尝试使用以下代码行从AWS secret Manager检索一个秘密: "${terraform.workspace}.PROJECT_KEY" = "${jsondecode(data.aws_secretsmanager_secret_version.take-sm-store-version.secret_string)["${terraform.workspace}.PROJECT_KEY"]}" 当我运行terra
"${terraform.workspace}.PROJECT_KEY" = "${jsondecode(data.aws_secretsmanager_secret_version.take-sm-store-version.secret_string)["${terraform.workspace}.PROJECT_KEY"]}"
当我运行terraform plan
时,我可以看到环境变量已正确转换:
~ environment {
~ variables = {
"ENVIRONMENT" = "test"
+ "test.PROJECT_KEY" = "example_key_test"
然而,当我运行terraformapply
时,我遇到以下错误:
Error: Error modifying Lambda Function Configuration example-function-test: ValidationException:
status code: 400, request id: ae52d9bc-819e-4a45-ba0d-a5b4e4de9516
我还有别的办法吗?我有三个工作区(dev/acc/prod),所以我希望通过这种方式,我可以有一个资源(Lambda函数),环境变量设置基于当前工作区。环境变量不能包含句点。您可以通过在shell中运行
export foo.bar=baz
在本地进行测试:
bash: export: `foo.bar=baz': not a valid identifier
显示允许的字符为[a-zA-Z]([a-zA-Z0-9))+
理想情况下,这将由aws\u lambda\u函数
资源本身进行验证,因此此错误在计划或验证时显示,但不幸的是,在架构的这一部分缺少ValidateFunc
帮助程序
我已提出添加对计划时间验证的支持。环境变量不能包含句点。您可以通过在shell中运行
export foo.bar=baz
在本地进行测试:
bash: export: `foo.bar=baz': not a valid identifier
显示允许的字符为[a-zA-Z]([a-zA-Z0-9))+
理想情况下,这将由aws\u lambda\u函数
资源本身进行验证,因此此错误在计划或验证时显示,但不幸的是,在架构的这一部分缺少ValidateFunc
帮助程序
我已提出添加对计划时间验证的支持。Ahhh,非常感谢!这确实是问题所在。很高兴知道,不用担心。我还提出支持该参数的计划时间验证。啊,非常感谢!这确实是问题所在。很高兴知道,不用担心。我还提出了支持该参数的计划时间验证。