问题标签 [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 回答
1000 浏览

terraform - terraform - 如何为 DNS 创建 Route53?

我正在使用 terraform 创建 AWS 资源。Terraform v0.11.3 provider.aws v1.11.0 provider.template v1.0.0

我想创建 Active Directory,并且能够成功地做到这一点。

现在我正在尝试使用 Route53 而不是 ActiveDirectory DNS。问题是在创建 Route53 区域时,所以我必须在 Route53 中创建 SRV 记录,它应该指向 Active Directory 域控制器。

我的问题是 terraform 只提供了域控制器的 IP 地址,但它没有告诉我域控制器的主机名。而我的 A 记录需要域控制器的主机名。

0 投票
4 回答
12811 浏览

amazon-web-services - Terraform - 尽管在同一个文件中声明了变量,但找不到变量的资源

Terraform 找不到在引用所在的同一文件中声明的资源。

这条线似乎造成了麻烦:role_arn = "${aws_iam_role.newsapi_lambda_codepipeline.arn}". 它找不到newsapi_lambda_codepipeline哪个被声明为resource "aws_iam_role" "newsapi_lambda_codepipeline" { ... }.

这是我的 main.tf:

执行后terraform apply我得到:

我不明白为什么会这样。我已经aws_iam_role.newsapi_lambda_codepipeline声明了,不是吗?

0 投票
3 回答
2298 浏览

amazon-s3 - 配置用于复制加密对象的源 KMS 密钥

我正在尝试将加密对象复制到不同区域的 S3 存储桶。执行此操作时,我需要指定一个或多个 KMS 密钥用于解密对象。

我正在使用以下 Terraform 脚本:

此脚本有效(适用),但在 AWS 控制台中检查时,没有为源对象选择 KMS 密钥。

查看配置,我看不到任何地方可以指定这些键。replica_kms_key_id用于指定用于加密目标存储桶中的对象的KMS 密钥。

0 投票
1 回答
4423 浏览

amazon-web-services - Terraform - 创建 EBS 的快照,然后将快照转换为 EBS 并附加到 EC2

是否可以创建 EBS 卷的快照,获取该快照并将其转换回 EBS 卷并通过 Terraform 将其附加到 EC2?

我目前正在考虑在 AWS 中自动化我们的生产和测试环境,因此它们是相同的,我发现使用 Terraform 非常有用,但我找不到任何关于如何实现这一点的文档。

0 投票
1 回答
6167 浏览

amazon-web-services - 如果 AWS API 请求失败,我该如何调试我需要的权限?

我正在使用 Terraform 在 AWS 上预置一些资源。运行 Terraform 的“计划”步骤失败并出现以下模糊错误(例如):

给定一个请求 ID 和一个主机 ID,是否可以更深入地了解问题所在?

设置 TF_LOG=DEBUG(或其他级别)似乎有帮助,但我很好奇是否有 CLI 命令可以从 CloudTrail 或其他东西获取更多信息。

谢谢!

0 投票
1 回答
1055 浏览

amazon-web-services - Terraform:Cloudwatch 日志流未考虑依赖关系,抛出 400 错误

我正在尝试使用 Terraform 在 AWS 上创建Cloudwatch 日志组和相应的Cloudwatch 日志流。看起来很简单,但是我的代码ResourceNotFoundException: The specified log group does not exist在计划的日志组方面抛出了错误。

我的地形:

现在,人们会假设 Terraform会name根据firehose_log_group. 这没有发生。使用该引用和显式块,此代码在 Plan 上引发错误。好像它无法计算 和 之间的依赖关系。在任何其他情况下,这种依赖关系将由 Terraform 计算。log_group_nameaws_cloudwatch_log_streamdepends_onResourceNotFoundException: The specified log group does not existaws_cloudwatch_log_groupaws_cloudwatch_log_stream

这里发生了什么?我没有看到的代码中是否存在某种错误?在这两者之间是否存在某种 Terraform 无法计算的依赖关系?

更新:事实证明这在 Linux 的 TF 版本 0.11.3 的 Ubuntu 服务器上运行良好,但在 Windows 的版本 0.11.3 上会出现错误。情节变厚了。

此代码基于 TF 文档:https ://www.terraform.io/docs/providers/aws/r/cloudwatch_log_stream.html

编辑:明确包括流名称变量

0 投票
1 回答
960 浏览

amazon-web-services - 无法从 Terraform 中的工件 AWS CodeBuild 获取源代码

我需要创建一个带有 terraform 的构建步骤的管道。我需要从工件中获取源代码,但 Terraform 文档不是很清楚。到目前为止,这是我的代码:

问题是在该步骤的管道执行期间指向文件会导致我出现此错误:

这就是我的管道的样子:

我想我做错了什么,但我似乎无法在某处找到我的案例。Source 需要从 CodePipeline 中的 Source 步骤接收,这一步是可以的。我知道管道是如何工作的,但是 terraform 的实现非常混乱。编辑:我已经检查了 S3 存储桶,并且可以确认 Source 步骤已成功将工件上传到那里。所以问题仍然存在,当我在第二步时,我无法访问源代码。角色是允许对所有资源的所有访问。管道的控制台版本看起来很正常,没有任何内容未填充。角色很好。

0 投票
1 回答
1600 浏览

terraform - 如果 count.index=0 使用 terraform 为 aws_instance 设置 network_interface

我正在使用 terraform 创建 2 个 ec2 实例,并且我想将辅助 IP 地址提供给 terraform 创建的第一个实例。

我正在使用下面的代码块

我尝试在“aws_instance”块中添加以下代码

但是,我看到以下错误 -

如果计数 == 0,如何设置 network_interface 属性?

0 投票
1 回答
379 浏览

terraform - Terraform 刷新不刷新 aws_api_gateway_deployment 部署 ID

当使用 Terraform 部署我们的 AWS 基础设施时,如果我们使用 AWS 控制台重新部署 API Gateway 部署,它会创建一个新的部署 ID。之后再次运行terraform apply时,Terraform 将aws_api_gateway_stage.deployment_id列为就地更新项。运行terraform refresh不会更新状态。它继续将其显示为增量。我错过了什么吗?

0 投票
1 回答
89 浏览

amazon-web-services - 如何减少模块中的样板配置?

所以我有两个完全相同的 terraform 模块......例外是有一个额外的远程执行步骤

模块 A

模块 B - 不同之处是要执行的一个额外脚本

除了这个脚本差异之外,模块具有完全相同的步骤。重复的 terraform 代码量约为 50 行。

我想在 Terraform 中做什么

所以在 Terraform 方面,我想指定要作为列表执行的脚本,所以像

多变的

共同步骤

常见步骤的感知使用

当我运行这个时,我得到

错误:模块“实例”:引用的未知变量:“setup_files_destination”;用“变量”块定义它

在模块内部定义的变量也是如此setup_files_destination,但不在.tf使用模块的文件中定义。它有一个默认值,实际上是远程实例上 shell 脚本目录的位置。

我想保留setup_files_destination在模块中。所以我正在寻找一种将变量的插值推迟到实际使用模块的方法。这在 terraform 中可能吗?