问题标签 [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 投票
4 回答
20929 浏览

terraform - 模块中的 Terraform 提供程序/变量共享

有没有办法为项目中定义的所有模块抽象提供者。

例如,我有这个项目

它工作正常......问题在于模块的定义

这两个模块中的提供者完全相同

并且每个模块中的变量都是不同的,但它们都有region变量。

有没有办法在模块级别定义这些信息,以便我最终得到大致这样的东西

最后一件事,模块定义大部分时间都具有资源属性(从 terraform 注册表中提取模块......因此我不知道从注册表和基本模块继承源是否可行)

0 投票
1 回答
1934 浏览

bash - aws_launch_configuration: timeout - last error: dial tcp :22: connectex: No connection could be made because the target machine主动拒绝它

我有以下自动缩放组的启动配置:

错误:应用计划时出错:

发生 1 个错误:

  • aws_launch_configuration.ASG-launch-config: timeout - last error: dial tcp :22: connectex: 无法建立连接,因为目标机器主动拒绝了它。

我想运行一个 bash 脚本来基本上在创建的实例上安装 WordPress。该脚本在资源类型“aws_instance”“示例”中运行良好

如何解决这个问题?

0 投票
1 回答
1965 浏览

terraform - Terraform(提供者 AWS)- Auto Scaling 组不会在启动模板更改时生效

在使用启动模板时无法使启动模板与 ASG 一起使用,它使用一个小技巧与启动配置一起使用,即通过在 ASG 资源中插入启动配置名称,但它不适用于启动模板。
ASG 使用最新版本来启动新实例,但不会对预运行实例进行任何更改,尽管启动模板发生了变化。

我知道这是意料之中的,但我们是否有任何解决方法可以使启动模板与 ASG 一起使用,或者我们需要坚持启动配置本身?

TF 代码片段 -

0 投票
1 回答
2009 浏览

amazon-web-services - Terraform AWS role policy fails when adding permissions

I need to create some role policy for AWS using Terraform, the basic role works fine, but when I add S3 and logs, I get a malformed error:

aws_iam_role.lambda_exec_role_s3: Error creating IAM Role lambda_exec_role_s3: MalformedPolicyDocument: Has prohibited field Resource status code: 400

This is the role policy that is failing:

Here the working role policy:

0 投票
1 回答
404 浏览

terraform - 未使用 terraform 创建的 ecs 实例

所以我试图通过 terraform 将一个公共托管的 docker 容器启动到我的 ECS 中。计划完成没有任何错误,并启动服务但ECS实例为空,服务仅抱怨没有分配给集群的ECS实例。

作为我的基础设施的一部分,我定义了:

  • 专有网络
  • 安全组
  • 我的角色
  • ecs集群
  • 带有 ALB 的 ecs 服务

鉴于其他一切都启动并且我可以 ssh 到 ecs(甚至手动拉取并运行 docker 映像),我很确定所有网络都正常,这让我认为这可能是 ECS 服务和 ALB 之间的连接?

ECS服务:

ALB:

0 投票
1 回答
953 浏览

terraform - 使用 Terraform 和 aws_ami_ids 数据源将 AMI 共享给子账户

我希望使用 Terraform 在 AWS 中的账户之间共享 AMI。我有以下模块;

问题是数据源以创建日期降序aws_ami_ids返回列表。ami_id

因此,如果您添加了一个新的 AMI,它似乎正在修改已经创建aws_ami_launch_permissions的新 AMI,因为新的 AMI 被插入到列表的开头,从而改变了顺序。

如果资源更新时子账户可能无法访问 AMI,这可能会导致可能的竞争条件。

似乎没有一种方法可以指定数据源的排序顺序,以便始终在最后添加新的 AMI,这意味着只会创建新资源。

关于如何解决这个问题的任何想法?

0 投票
1 回答
5971 浏览

amazon-s3 - 来自 Terraform 的畸形 S3 策略

看起来我在 Terraform 部署中得到了一个格式错误的策略,并且在查看它时没有看到任何问题,所有这些Principals似乎都到位并且没有任何异常。有人能找出为什么这个政策被认为是畸形的吗?

这是抛出的 TF 输出

(非详细)错误:

这是它包含的内容的漂亮打印

更新

很明显,这与该Principal领域有关,在通过 AWS 控制台运行它后,我得到了错误

0 投票
2 回答
7177 浏览

dns - 如何减少刷新 Terraform 状态的时间?

我工作的公司的大部分 AWS 基础设施都是使用 Terraform 描述和管理的。

我们有几种不同的服务,包括容器化后端和 CDN 化前端。

从 Route53 域和命名空间到 ELB、ECS 和 CloudFront,有很多事情要做。

现在发生的问题之一是,主要是因为 Route53 DNS,检查、刷新和验证 terraform 状态需要很长时间。

这就是我们要解决的问题:

如何大幅减少刷新/检查 tf 状态所需的时间?

将其移至单独的存储库显然不是一个好主意,因为这会使所有与 Route53 相关的变量都无法访问,或者可能已经过时。

0 投票
1 回答
1552 浏览

terraform - 如何即时修改地图?

我需要在特定的 HCL Map 键/值对上迭代更多次,这些键/值对需要基于特定变量的值。

我想到了修改当前映射的想法——这样某些键/值将被迭代更多次。

如果我们有这张地图 - 让我们称之为“map_domains”:

我们已经设置了这些变量:

我们如何将地图“map_domains”修改为:

我正在尝试通过 DNS 验证选项验证几个 AWS ACM 证书 - 每个域都有几个域备用名称,它们还需要在 Route53 中创建 DNS 记录,以便正确验证域证书。

这是用于实现总体目标的代码 - 问题在于 Zone ID 需要在前几次迭代中相同,然后在其余迭代中需要另一个。

这一行:

整个代码:

0 投票
2 回答
3376 浏览

amazon-s3 - 在 Terraform 中将多个 AWS 账户作为环境处理的最佳方式是什么?

我们希望将我们的每个 terraform 环境都放在一个单独的 AWS 账户中,以防止意外部署到生产环境。这如何最好地完成?