如何在python代码中访问terraform变量?
因此,在我的顶层main.tf文件中,我有以下内容如何在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
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函数
资源,因此它不会看到它。您需要在那里添加块才能对其进行配置。