Terraform导入Python Lambda层报错:Import block target does not exist
解决Terraform导入Lambda层时的"Import block target does not exist"错误
错误根源:你写的导入块里,
to指定的目标资源(不管是aws_lambda_function.lambda_function还是aws_lambda_layer_version.test_layer)都没有在Terraform配置中定义对应的资源块,Terraform找不到要绑定导入对象的目标,所以抛出错误。正确配置流程:
- 先定义Lambda层的资源块(导入现有层时无需填写文件名,Terraform会自动从AWS拉取层信息):
resource "aws_lambda_layer_version" "test_layer" { layer_name = "Klayers-p311-requests" compatible_runtimes = ["python3.11"] } - 修正导入块,确保
to指向上面定义的层资源:import { to = aws_lambda_layer_version.test_layer id = "arn:aws:lambda:eu-west-1:770693421928:layer:Klayers-p311-requests:3" } - 执行
terraform plan验证配置,确认无误后运行terraform apply完成导入。
- 先定义Lambda层的资源块(导入现有层时无需填写文件名,Terraform会自动从AWS拉取层信息):
关联层到Lambda函数:导入层后,在你的Lambda函数资源块中添加
layers参数,把层和函数绑定:resource "aws_lambda_function" "lambda_function" { # 此处填写你的Lambda原有配置(函数名、代码包、运行时等) layers = [aws_lambda_layer_version.test_layer.arn] }
内容的提问来源于stack exchange,提问作者Umar
相关产品推荐
相关产品推荐

