use*_*033 5 amazon-ec2 amazon-web-services terraform aws-elb
我有用于多个 EC2 实例的 AWS ALB。在 Terraform 中,我有 alb 模块,它已经为该 EC2 实例创建了负载均衡器和侦听器、目标组。
我想将 ec2 实例附加到目标组。我在 EC2 实例模块中执行此操作,该模块从负载均衡器模块输出获取 ALB 实例 id。
当我在 ec2 实例模块中执行 terraform apply 命令时,terraform 想要创建新的 ALB,但它已经创建并使用。ec2 模块中的 Terraform 状态不了解 ALB,但希望执行此模块中的代码以获取输出
如何使用通用 ALB 为多个 EC2 实例组织模块,而无需为每个新 EC2 实例重新创建 ALB?
您应该执行以下操作:
output.tf 输出中显示您希望 Ec2 实例使用的目标组main.tfALB 模块创建负载均衡器,然后为要使用的每个实例调用 EC2 模块,对于目标组参数,请参考目标组的 ALB 模块名称及其输出变量。main.tf仅包含相关部分的示例
module "my_alb_module" {
.....
}
module "my_ec2_module" {
target_group_arn = module.my_alb_module.target_group
}
Run Code Online (Sandbox Code Playgroud)
作为最佳实践的一点,如果您有负载均衡器和 ec2 等组件,并且希望支持资源之间的可重用性,请尝试将它们保留在单独的模块中。
虽然不是直接查看此 GitHub 存储库中的代码的示例,但它说明了如何在模块之间导出值。
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |