gpt4 book ai didi

amazon-ec2 - Terraform - 使用实例配置文件启动 EC2 实例时出现计时问题

转载 作者:行者123 更新时间:2023-12-02 03:16:21 25 4
gpt4 key购买 nike

我正在使用 Terraform 创建我的 AWS 基础设施。

我有一个模块可以创建“aws_iam_role”、“aws_iam_role_policy”和“aws_iam_instance_profile”,然后使用该 aws_iam_instance_profile 启动 EC2 实例。

“terraform plan”按预期工作,但使用“terraform apply”时我一直收到此错误:

* aws_instance.this: Error launching source instance: InvalidParameterValue:   IAM Instance Profile "arn:aws:iam::<deleted>:instance-profile/<deleted>" has no associated IAM Roles

如果我立即重新运行“terraform apply”,它会毫无问题地启动 EC2 实例。如果我运行“terraform graph”,它会显示该实例依赖于配置文件。

由于第二次“应用”成功,这意味着 instance_policy 及其所需的所有内容都已正确创建,不是吗?

我已经尝试添加一个“depends_on”但它没有帮助,但由于图表已经显示了依赖关系,我不确定无论如何这是要走的路。

有人遇到过这个问题吗?

最佳答案

竞争条件在服务之间很常见——其中状态只是由于规模而最终保持一致。对于 IAM 尤其如此,您通常会创建一个角色并为 EC2 等服务提供信任关系以将角色用于 EC2 实例,但由于 IAM 在整个 AWS 中传播,该角色将无法用于 EC2创建后几秒钟的服务。

我使用的解决方案(不是很好但可以完成工作)是将以下供应商放在每个 IAM 角色或策略附件上,以便为更改传播提供时间:

resource "aws_iam_role" "some_role" {
...
provisioner "local-exec" {
command = "sleep 10"
}

关于amazon-ec2 - Terraform - 使用实例配置文件启动 EC2 实例时出现计时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36802681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com