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

Terraform同文件声明资源仍无法找到问题求助

解决Terraform无法找到aws_iam_role资源的问题

嘿,我一眼就揪出问题啦!你代码里声明的IAM角色名称和引用时用的名字根本对不上,这才导致Terraform找不到对应的资源。

咱们仔细看看:

  • 你在main.tf里实际定义的IAM资源是:
    resource "aws_iam_role" "newsapi_lambda_codebuild" { ... }
    
  • 但你引用的时候写的却是:
    role_arn = "${aws_iam_role.newsapi_lambda_codepipeline.arn}"
    

Terraform对资源标识符(就是resource_type后面的那个名称)是严格匹配的,拼写、大小写都不能错,所以它自然找不到名为newsapi_lambda_codepipeline的aws_iam_role资源。

给你两种解决办法,选一种就行:

  1. 修改引用语句,把引用里的名称改成和实际资源一致的newsapi_lambda_codebuild,如果是Terraform 0.12及以上版本,还可以用更简洁的新语法:
    // 旧语法
    role_arn = "${aws_iam_role.newsapi_lambda_codebuild.arn}"
    // 新语法(推荐)
    role_arn = aws_iam_role.newsapi_lambda_codebuild.arn
    
  2. 修改资源定义的名称,如果你本来就想把这个IAM角色命名为newsapi_lambda_codepipeline,那就直接改资源声明的标识符:
    resource "aws_iam_role" "newsapi_lambda_codepipeline" { ... }
    
    这样原来的引用语句就能正常工作了。

以后写配置的时候多留意这种小笔误,很容易犯但也很好改~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:35:24