问题标签 [terraform-provider-aws]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
701 浏览

amazon-web-services - 我可以使用 terraform 在 aws ec2 实例配置文件中承担角色吗?

我遇到了一种情况,我试图v0.11.7在 ec2 实例中的 kubernetes (k8s) 内的 jenkins 内运行 terraform () 脚本。

  • k8s 工作线程在具有特定 aws 实例配置文件的 ec2 实例上运行
  • terraform 脚本通过各种环境变量、凭据和配置文件进行配置,以便能够为其承担特定角色

该设置在我的 macbook 上运行良好,但遗憾的是,在 jenkins/k8s/ec2 中,ec2 实例配置文件占主导地位并且 terraform 脚本失败,因为它需要特定的假设角色才能完成其操作。

它实际上在terraform plan步骤中失败,TF_LOG输出显示该角色是从实例配置文件派生的。

想知道是否有人遇到过这种情况并有任何相关指导?

0 投票
0 回答
381 浏览

amazon-ec2 - Terraform 和 AWS 点实例

https://github.com/hashicorp/terraform/issues/17429中所述, 7 天后,现场请求被取消,实例仍在运行。因此,当我运行“terraform apply”时,它会尝试创建一个新位置。AWS 提供商 >=1.13.0 会发生这种情况。

我正在使用 AWS 提供商 1.32.0,有人知道解决此问题的方法吗?在未来的安装中,我将使用 valid_until 标志来延长请求的生命周期,但是已经安装的点呢?

谢谢

0 投票
2 回答
1383 浏览

terraform-provider-aws - Terraform:如何支持不同的提供者

我在名为 myproject 的目录中有一组 terraform 代码:

provider.tf 显示:

因此,如果我在 myproject 文件夹中应用 terraform,则会在我的帐户下的 us-west-1 中启动一组 aws 资源。

现在我想介绍一个 AWS Glue 资源,它仅在不同的区域 us-west-2 中可用。那么我该如何布局glue.tf 文件呢?

目前我将它存储在 myproject 下的子目录中并在该子目录中运行 terraform apply 即

another_provider.tf 是:

它是在不同区域存储文件启动资源的唯一方法吗?有更好的方法吗?

如果没有更好的办法,那么我还需要在glue子文件夹中再有一个后端文件,此外,myproject目录中的一些公共变量不能共享。

--------- 更新:我点击了 Phuong Nguyen 发布的链接,

但我看到了:

0 投票
1 回答
600 浏览

amazon-web-services - 资源 'data.template_file.user_data' 没有属性 'rendered'

地形版本:v0.11.8

用例

尝试使用 terraform 终止资源,运行输出命令时出错。

代码:

调试输出

module.test.output.test_rendered:资源“data.template_file.user_data”没有变量“data.template_file.user_data.rendered”的属性“rendered”

预期行为

没有任何错误的终止。

附加上下文

这个问题是在我将 terraform 从 v0.11.4 升级到 v0.11.8 并且我还将 aws 提供程序更新到最新的 1.33.0 之后出现的

有什么帮助吗?

谢谢!

0 投票
1 回答
4330 浏览

terraform - 从 Terraform Map 获取列表的长度

我目前在 test.tfvars 文件中有这张地图:

我想做的是以下几点:

但我希望计数不是基于我的 ssm 地图中名称列表的长度,而不是 count=3。我试过这个:

但我得到了错误:

谁能指出我解决此错误的正确方向?我不太确定我做错了什么。

0 投票
2 回答
17042 浏览

amazon-web-services - 如何使用从一个 Terraform 计划创建到另一个 Terraform 计划的 VPC id 和子网 id 值

我在一个 Terraform 计划中创建了 VPC、子网和安全组(我们称之为Plan A)。它执行得很好,状态也存储在远程 S3 后端。

现在我有一个新的 Terraform 计划(我们称之为Plan B),我需要在其中启动一个 EC2 实例。为此,我需要从Plan ATerraform 输出中获取 VPC、子网 ID。

有推荐的方法吗?

0 投票
1 回答
6616 浏览

continuous-integration - Terraform:使用模块创建安全组时如何不重复安全组?

更新

我不明白,但我重新运行terraform apply它并没有尝试复制资源(没有错误)。现在它正确地检查资源。一种意外的事件结束。


我正在学习 Terraform,并创建了模块以允许创建一些基本的安全组。它第一次运行良好并按预期创建资源。但是,如果我terraform apply第二次运行,它会尝试再次创建相同的组,然后出现重复错误,因为这样的安全组已经存在。

如果我在没有 的情况下直接创建安全组module,Terraform 会识别它并且不会尝试重新创建现有资源。

我可能在这里做错了什么。

这是我的模块以及我如何尝试使用它:

我的项目结构是这样的

现在我的 security_group_ec2 内容:

主文件:

变量.tf:

输出:

这是我调用模块来创建两个安全组的文件。

安全组.tf:

这是运行时的错误输出terraform apply

PS我可能需要以某种方式表明调用模块时创建了资源?

0 投票
0 回答
677 浏览

terraform - 当它依赖于 AWS SSM 参数数据源时,“无法计算计数值”

我有一个 Terraform 项目,我一直在使用AWS Systems Manager Parameters进行配置。想象一下具有以下内容的 Terraform 项目variables.tf

terraform.tfvars可能看起来像这样:

相反,想象一下variables.tf包含了这个:

现在,只要我为 SSM 参数设置了正确的名称,我就可以在项目${local.vpc_cidr_block}中的任何地方使用它。${var.vpc_cidr_block}

只要我使用现有资源和现有状态文件,这就会完美地工作。也就是说,如果我使用第一个变量/tfvars 文件创建资源,然后切换到 SSM 数据源。但是,如果我从头开始使用 SSM 版本,我会value of 'count' cannot be computed从依赖于${length(local.subnet_config_private_subnets)}and的资源中得到一个错误${length(local.subnet_config_public_subnets)}

我无法弄清楚为什么会发生这种情况,尤其是当这些值不会对运行 , 或针对现有资源造成任何refresh问题planapply

非常感谢您提供有关如何解决此问题的帮助和/或建议。

0 投票
2 回答
1693 浏览

terraform - 如何销毁 Terraform 托管的默认安全组中的规则?

当 Terraform 采用 VPC 中默认安全组的所有权时,它将删除所有当前规则并添加default_security_group资源中指定的任何规则。但是,当您“销毁”资源时,它不会删除它添加到默认安全组的规则。我知道它不会删除默认安全组,但我希望它会删除它添加的规则。有没有直接删除这些规则的方法?

我目前的解决方法是拥有一个包含空default_security_group资源的单独模块。我在运行销毁之前构建了它,并且该构建删除了规则。有没有更好的办法?

0 投票
1 回答
487 浏览

amazon-web-services - AWS 无效策略 - terraform

我正在为 API 网关创建一个策略和角色,以使用以下 terraform 配置访问 dynamodb api 端点。我错过了什么?我收到无效的政策错误terraform plan

我究竟做错了什么?我收到无效的政策错误。