Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python代码中访问terraform变量?_Python_Amazon Web Services_Terraform - Fatal编程技术网

如何在python代码中访问terraform变量?

如何在python代码中访问terraform变量?,python,amazon-web-services,terraform,Python,Amazon Web Services,Terraform,因此,在我的顶层main.tf文件中,我有以下内容 module "aws_lambda" { ... envs = { bucket_name = "bucket_name" prefix = "prefix" } } 模块main.tf resource "aws_lambda_function" "descriptive_name" { fu

因此,在我的顶层main.tf文件中,我有以下内容

module "aws_lambda" {
   ...
   envs = {
      bucket_name = "bucket_name"
      prefix = "prefix"
   }
}
模块main.tf

resource "aws_lambda_function" "descriptive_name" {
   function_name = "${var.prefix}-name
   handler = "lambda_function.lambda_handler"
   runtime = "python3.8
   filename = "${path.module}/../../package.zip
   role = var.role_arn
   timeout = 300
   tags = local.default_tags
   vpc_config {
      security_group_ids = var.lambda_security_group_ids
      subnet_ids = var.lambda_subnet_ids
   }
}

locals {
   default_tags = {
     Deployment = var.prefix
   }
{
我想访问python代码中的bucket_名称。我该怎么做? 我使用
print(os.environ)
打印,但没有看到值。我还尝试了
print(os.getenv(“bucket\u name”)
,但它没有返回任何结果。我需要访问bucket名称才能向其写入文件


任何帮助都将不胜感激。

您需要将希望在执行过程中从函数代码访问的环境变量映射传递到
aws\u lambda\u函数
资源:

resource "aws_lambda_function" "descriptive_name" {
    function_name = "${var.prefix}-name"
    handler = "lambda_function.lambda_handler"
    runtime = "python3.8"
    filename = "${path.module}/../../package.zip"
    role = var.role_arn
    timeout = 300
    tags = local.default_tags
    vpc_config {
        security_group_ids = var.lambda_security_group_ids
        subnet_ids = var.lambda_subnet_ids
    }
    environment {
        variables = var.envs
    }
}

查看aws_lambda_函数的相关信息

您能否共享具有aws_lambda_函数资源的模块源代码?不知道发生了什么事,否则是不可能的。@ydaetskcoR我已经更新了帖子。如果需要更多,请告诉我。模块在哪里使用
envs
变量?看起来您没有将其传递给
aws\u lambda\u函数
资源,因此它不会看到它。您需要在那里添加块才能对其进行配置。