Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 具有相同监视设置的地形多个资源_Terraform - Fatal编程技术网

Terraform 具有相同监视设置的地形多个资源

Terraform 具有相同监视设置的地形多个资源,terraform,Terraform,AWS中的多个资源(S3、lambda等)由不同的团队通过Terraform脚本创建 我已经为CloudWatch监控开发了Terraform脚本,它们需要AWS ARN作为输入 每个团队是否可以使用我的监测地形脚本而不将它们复制到他们的回购协议中?是的,您可以通过将它们创建为一个模块,让每个团队使用您的地形脚本。然后,团队可以使用将它们加载到自己的脚本中。如果您不使用git,或者您在一个存储库中拥有所有terraform,那么还有其他存储库 这就是我们制作和使用大量模块的方式,以便在所有团队中

AWS中的多个资源(S3、lambda等)由不同的团队通过Terraform脚本创建

我已经为CloudWatch监控开发了Terraform脚本,它们需要AWS ARN作为输入


每个团队是否可以使用我的监测地形脚本而不将它们复制到他们的回购协议中?

是的,您可以通过将它们创建为一个模块,让每个团队使用您的地形脚本。然后,团队可以使用将它们加载到自己的脚本中。如果您不使用git,或者您在一个存储库中拥有所有terraform,那么还有其他存储库

这就是我们制作和使用大量模块的方式,以便在所有团队中具有一致的设置。我们为每个模块都提供了一个git存储库,比如(模块\u cloudwatch\u监控)。定义模块没有什么特别之处,您只需要定义变量和输出

当团队想要使用该模块时,他们可以使用如下模块语法:

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}"
}

如果您能展示一个代码示例,这将非常有用,包括团队使用Terraform部署的资源和您的监控脚本。