问题标签 [terraform]
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.
amazon-web-services - Terraform:将 cloudwatch 日志订阅交付配置为 lambda?
我需要将我的 cloudwatch 日志发送到日志分析服务。
现在我正在尝试使用 Terraform(角色/策略、安全组、cloudwatch 日志组、lambda 以及从日志组触发 lambda)来自动化所有这些。
但我不知道如何使用 TF 来配置 AWS 以从 cloudwatch 日志中触发 lambda。
我可以通过执行以下操作(在 Lambda Web 控制台 UI 中)手动将两个 TF 资源链接在一起:
- 进入 lambda 函数的“触发器”部分
- 点击“添加触发器”
- 从触发器类型列表中选择“cloudwatch logs”
- 选择我要触发 lambda 的日志组
- 输入过滤器名称
- 将过滤器模式留空(意味着在所有日志流上触发)
- 确保选择“启用触发器”
- 点击提交按钮
完成后,lambda 将显示在 cloudwatch 日志控制台的订阅列中 - 显示为“Lambda (cloudwatch-sumologic-lambda)”。
我尝试使用以下 TF 资源创建订阅:
但它失败了:
aws_cloudwatch_log_subscription_filter.cloudwatch-sumologic-lambda-subscription: InvalidParameterException:destinationArn for vendor lambda cannot be used with roleArn
我找到了这个关于为计划事件设置类似事情的答案,但这似乎并不等同于我上面描述的控制台操作(控制台 UI 方法不会创建我可以看到的事件/规则)。
有人可以告诉我我做错了什么吗?
amazon-web-services - terraform:创建安全组时出错:UnauthorizedOperation:您无权执行此操作
我有一个下面的 terraform 脚本,在终端上使用它时可以正常工作。
和变量文件如下所示。
当我使用 terraform apply 通过终端运行时,一切正常。但是当我通过詹金斯运行它时,同样的代码给了我下面的错误。
注意 :: 这是我在其中执行此操作的非默认 vpc。
我将非常感谢任何评论。我没有提到敏感值。
git - 我应该将 .tfstate 文件提交到 Git 吗?
.tfstate
对于是否将文件提交到 Git的问题,我有点困惑。Terraform 文档指出:
terraform.tfstate
默认情况下,Terraform 还会将一些状态放入文件中。这个状态文件非常重要;它将各种资源元数据映射到实际资源 ID,以便 Terraform 知道它正在管理什么。该文件必须保存并分发给可能运行 Terraform 的任何人。我们建议简单地将其放入版本控制中,因为它通常不会太大。
现在,另一方面,关于使用 Terraform 时的最佳实践的已接受和赞成的答案指出:
Terraform 配置可用于在不同的基础设施上配置许多盒子,每个盒子都可以有不同的状态。因为它也可以由多人运行,所以这个状态应该在一个集中的位置(如 S3),而不是git。
(强调的是原作者,不是我)
谁是对的,如果是,为什么?
digital-ocean - 如何使用 Terraform 引导液滴?
使用 Terraform 在 Digital Ocean 上创建液滴时,创建的机器的密码通过邮件发送。如果我获得了有关 Digital Ocean 提供商的文档,您还可以指定要使用的密钥的 SSH ID。
如果我使用 Terraform 引导数据中心,我应该选择哪个选项?
不知何故,为每台机器使用不同的密码感觉不对(不知何故,使用密码本身感觉不对),但如果每台机器都链接到我用户的 SSH 密钥,也会感觉不对。
你是怎样做的?有没有一种方法可以被认为是好的(最好的?)实践?我应该只为此创建一个 SSH 密钥对并将其与 Terraform 文件一起提交到 Git 吗?……?
amazon-web-services - AWS 上的 Kubernetes 多主集群
我们使用 Terraform、用户数据 YAML 文件和 CoreOS AMI 在 AWS 上创建了一个单主三节点工作集群。集群按预期工作,但我们现在需要将主节点从 1 个扩展到 3 个以实现冗余目的。我的问题是:除了使用 etcd 集群和/或 http://kubernetes.io/docs/admin/high-availability/上提供的信息之外,我们是否有任何选择来部署新的或扩展现有集群多主节点?让我知道是否需要更多详细信息来回答这个问题。
azure - Terraform 远程状态 azure
我以前使用过 terraform,其中 terraform 可以将 tfstate 文件放在 S3 中。terraform 是否也支持 azure blob 存储作为后端?将后端设置为 azure blob 存储的命令是什么?
amazon-ec2 - Terraform template_file 和 cloud-init
我开始使用 Terraform 来启动 AWS EC2 机器。我在网上看到一些资源指向template_file 资源的使用,与 cloudinit 相比,我不确定它的真正作用。
据我了解,cloud-init用于引导,您可以在其中将多个脚本从本地计算机加载到/var/lib/instance/scripts
EC2 实例的目录中,然后使用您指定的任何解释器自动运行它们。那么,我们需要渲染template_file
什么?
另外,我的另一个问题是我们是否只允许将 bash 脚本作为 cloud-init 的一部分运行,还是也允许 python 解释器?
terraform - Does Terraform perform interpolation in provider declarations?
I am trying to declare the following Terraform provider:
I get the following error:
It seems that Terraform is not performing interpolation on my endpoint string, yet I don't see anything in the documentation about this -- what gives?
openssl - Terraform 自签名证书 Openssl 验证失败
我正在尝试使用 Terraform 创建一个自签名证书,以便在测试/开发环境中内部使用。
我首先创建一个 CA 私钥,自签名证书。
然后,我为要为其启用 HTTPS 的内部域名创建证书签名请求和私钥。
然后我签署证书。这是我使用的整个 Terraform 清单:
我运行 Terraform 清单。然后我从状态文件中提取生成的证书并将它们保存到文件中。
我尝试使用 openssl 验证最终证书,但出现错误:
任何想法是什么问题?我花了很多时间试图弄清楚这一点。
基本上我想用它来为我的测试/开发环境中的私有 Docker 注册表启用 HTTPS。
amazon-web-services - Terraform,从 null_resource、local-exec 和 AWS CLI 获取输出
我正在使用 Terraform 在 AWS 中自动提供 Cognito 身份池。AWS 提供商还不支持 Cognito,所以我一直在使用 null_resource 和 local-exec 来调用 AWS CLI。
我有以下资源:
给出以下输出:
下一步是将我已经创建的一些角色添加到身份池中:
问题是我无法提取 IdentityPoolId ${null_resource.create-identitypool.IdentityPoolId} 以在第二个资源中使用。我知道 null_resource 没有输出属性,所以我怎样才能从命令行输出中获取这个 JSON 对象。我还想使用 tirggers 并运行 aws cognito-identity list-identity-pools 和可能的 delete-identity-pool 以使这一切都可以重复,我还需要输出。
有任何想法吗?如果我在其他地方错过了这些信息,我们深表歉意。我也在 Terraform 邮件列表上问过这个问题,但我想我会尝试更广泛的受众。
谢谢,蒂姆