You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform导入AWS Lambda后函数名显示为ARN的问题解决

解决Terraform导入AWS Lambda后函数名显示为ARN的问题

问题复现

将现有Lambda函数导入Terraform状态后,通过terraform show查看发现function_name被设置为完整ARN,而非AWS实际的短名称my-lambda-function,这与本地配置文件中定义的function_name = "my-lambda-function"产生差异,重复移除并重新导入资源也无法解决该问题。

解决方案

1. 升级Terraform AWS Provider

部分旧版本的AWS Provider存在导入Lambda时将ARN写入function_name的bug,先检查并升级到最新稳定版:
在Terraform配置文件中更新provider版本:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0" # 替换为当前最新稳定版
    }
  }
}

执行以下命令完成升级后重新尝试导入:

terraform init -upgrade

2. 手动修正Terraform状态文件

如果升级后问题依旧,可以直接修改状态文件(操作前务必备份):

  • 先备份状态文件:
    terraform state pull > terraform.tfstate.backup
    
  • 打开terraform.tfstate文件,找到对应aws_lambda_function.my_lambda_function的资源块,将function_name字段的值从完整ARN改为短名称"my-lambda-function"
  • 推送修改后的状态:
    terraform state push terraform.tfstate
    
  • 执行terraform plan验证,此时函数名的差异应该消失。

3. 使用短函数名而非ARN导入

尝试直接用短函数名进行导入,确保Terraform配置的AWS区域与Lambda所在区域(eu-west-3)一致:

terraform import aws_lambda_function.my_lambda_function my-lambda-function

内容的提问来源于stack exchange,提问作者user27008283

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:21:09