问题标签 [terraform-aws-modules]

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 回答
577 浏览

json - 如何将 AWS Aurora 集群(包括实例)导入 terraform

我需要将现有的 Aurora 集群导入到 terraform。我试过terraform import aws_rds_cluster.sample_cluster cluster声明。我也准备好了状态文件,我也可以这样做Terraform show但是,当我尝试销毁集群时,Terraform 尝试删除没有其下实例的集群 - 所以销毁命令失败。

有没有办法可以导入包含实例的整个集群?我需要一个可用于管理整个集群(包括底层实例)的状态文件。这是用于调用导入的 main.tf -

0 投票
1 回答
188 浏览

amazon-web-services - Terraform 从非对称 KMS 密钥对获取公钥

您可以在 AWS KMS 中创建非对称密钥对(加密/解密)。当前的 AWS CLI 允许访问公钥 ( https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-public-key.html )

我无法在 Terraform 的 KMS 资源中看到此功能。我是否遗漏了什么,或者这在最新版本中还没有,

0 投票
2 回答
120 浏览

amazon-web-services - 如何引用来自不同模块的值?

我想使用来自 AWS Secrets Manager 的密钥将 RDS 数据库部署到 AWS。我有:

myenv/main.tf我定义了一个模块,该模块mydb具有modules/db/main.tf定义source资源数据库的位置。保存密码,一切正常,我指定块中myenv的值和“涓滴”值。但是对于凭证,我当然不想硬编码它们myenv。相反,在 modules/secrets我定义

和另一个块:

我解码了这些秘密,现在我想引用它们,例如local.decoded_secrets.usernamemyenv/main. 这是我对教程的解释。但它不起作用:如果我把locals块放在myenv里面就不能引用data,当我把它放进去时,modules/secretsmyenv不能引用locals。如何将这两个模块的值组合在我的myenv/main?

0 投票
1 回答
32 浏览

terraform - 如何将多个 aws 提供程序传递给一个模块?

我有一个模块,它结合了两种资源,一个 rds 实例和一个秘密,每个资源都需要自己的提供者。

modules/db/main.tf

modules/db/secrets

两个提供者都在environments/myenv/main.tf

到目前为止,秘密已经在他们自己的模块中定义

所以我这样分配提供者:

但是现在我搬进secretsdb,不知何故我需要在一个提供程序块中传递两者。
我相信这两种资源都希望他们的提供者被称为“aws”,所以我猜我只需要以不同的名称传递它们,比如

但是,我该如何配置要使用的模块aws{1,2}而不是aws?

0 投票
4 回答
390 浏览

amazon-web-services - 在 terragrunt 配置中使用变量

我们可以在 terragrunt 配置中使用 terraform 变量吗?

下面是我的 terragrunt 配置。

在 root.yaml 文件中,我传递了变量 bucket_name 和 key 的输入值。这些变量在 terraform 模块中定义。

这不起作用,terragrunt 抱怨未定义变量。如果不创建用于 terragrunt 的新变量,我们不能在 terragrunt 配置中使用 terraform 变量吗?

0 投票
1 回答
4655 浏览

terraform - Terraform 计划“应用后已知” - 如何知道我的插值是否成功?

这是我成功的摘录terraform plan

以上是aws_instance作为内部模块导入的资源的一部分。我打算通过变量传递安全组 ID 列表,security_groups以便在资源创建期间将其映射到vpc_security_group_ids. 但是,按照上述计划,我看不到它是如何成功映射的。

我的问题是 - 我怎么知道这apply会起作用?Known after apply在这种情况下是50-50吗?此外,没有设法在 TF 文档中发现任何内容,所以如果有什么东西,如果有人能指出我的方向,我将不胜感激。

谢谢,

0 投票
0 回答
37 浏览

gitlab - 在 Terraform 中,如何使用 GitLab CI 在不同的 AWS 账户上运行相同的脚本

我有几个 Terraform 脚本应该在 AWS 账户中创建不同的角色。这些脚本位于单个 GitLab 存储库中。我发现很难使用 GitLab CI 来挑选这些脚本并将角色应用于不同的 AWS 账户。

我们有一个中央 AWS 账户,其中有 GitLab 运行者可以访问其他 AWS 账户。对我来说,困难的部分是弄清楚单个 repo 如何控制或将 TF 脚本应用到不同的 AWS 账户。我有一个实用程序存储库,它基本上是 Terraform 阶段的工具,我在我的主存储库中调用了带有“include”指令的实用程序,这些 Terraform 脚本存在于其中。

0 投票
0 回答
155 浏览

shell - 使用相同矩阵配置运行的 Github Actions 作业

我是 Github Actions 的新手,并尝试通过 github 操作在 AWS 多区域上部署代码。为此,我创建了一个具有此矩阵的脚本并将输出导出到工作流。

我的工作流程代码:

我通过使用访问矩阵值${{ matrix.variable_names}}

但是当我看到我的工作时,正在创建 2 个工作,但配置相同(它需要 us-east 1)。不知道可能出了什么问题。以前我尝试使用策略矩阵GithubActions 策略矩阵我转移到 shell 脚本,因为我有多个 if 检查,这让我的工作流程看起来很笨拙。任何线索将不胜感激:)

0 投票
1 回答
279 浏览

terraform - 如何使用 terraform aws-lambda 模块引用本地打包的源文件

我正在尝试引用我使用 npm pack 创建并为 lambda 模块构建的现有源文件。当我尝试使用local_existing_package时,我收到来自 lambda 模块的错误,就好像它试图从 s3 容器与本地查找 source.zip 文件一样。这个错误是由 lambda 模块本身产生的

错误:

生成的 lambda 模块中的代码:

我引用 ^^ 的模块定义为:

我在这个模块上查看了来自 github 的示例,它看起来与推荐的内容相匹配。

谁能提供一个如何链接源文件的例子或指出我缺少什么?这是使用 terraform 0.13.4 构建的

0 投票
0 回答
358 浏览

terraform - 标记由 EKS 创建的自动缩放组

我使用terraform-aws-eks 模块创建了一个 AWS EKS 集群。Terraform 版本是 1.0.6,aws 提供者版本是 3.60.0。有了这些版本,我应该能够使用aws_autoscaling_group_tag资源来标记由 EKS 创建的 ASG。

我的问题是模块中的节点组是地图的映射(在此处描述),我不知道如何遍历我的节点组以标记其中的所有 ASG。以下是 terraform 的示例:

在这种情况下,有一个特定的节点组。但就我而言,有 3 个节点组,我希望标记所有 ASG。到目前为止,我还没有在 terraform 中使用太多循环,我什至不确定它是否会起作用。我很感激任何帮助!