AWS中的多个资源(S3,lambda等)由不同的团队通过Terraform脚本创建;
我已经开发了用于监视CloudWatch的Terraform脚本,它们需要AWS ARN作为输入;
是否可以由每个团队使用我的监视Terraform脚本而无需将其复制到其回购协议中?
答案 0 :(得分:1)
是的,您可以通过将每个Terraform脚本创建为模块来利用它们。然后,团队可以使用module configuration section将它们加载到自己的脚本中。如果您不使用git,或者您在一个存储库中拥有所有地形,那么还有其他ways to load a module
这就是我们制作和使用大量模块以在所有团队中保持一致设置的方式。我们为每个模块(如(module_cloudwatch_monitoring))都有一个git存储库。定义模块没有什么特别的,您只需要定义变量和输出即可。
当团队要使用该模块时,可以使用以下模块语法:
module "cloudwatch_monitoring" {
source = "git::http://your-git-repository-url.git?ref=latest"
resource_arn = "${aws_s3_bucket.my_bucket.id}"
}
如果模块位于同一存储库中的本地路径中,则可以执行以下操作:
module "cloudwatch_monitoring" {
source = "../../modules/cloudwatch_monitoring"
resource_arn = "${aws_s3_bucket.my_bucket.id}"
}