Terraform AWS CloudWatch 模块使用教程
1. 项目的目录结构及介绍
terraform-aws-cloudwatch/
├── examples/
│ ├── cloudwatch_log_group/
│ ├── cloudwatch_metric_alarm/
│ └── cloudwatch_metric_stream/
├── modules/
│ ├── cloudwatch_log_group/
│ ├── cloudwatch_metric_alarm/
│ └── cloudwatch_metric_stream/
├── .gitignore
├── .pre-commit-config.yaml
├── .terraform-version
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
└── versions.tf
目录结构介绍
- examples/: 包含多个示例目录,每个示例目录展示了如何使用不同的 CloudWatch 功能,如日志组、指标警报和指标流。
- modules/: 包含多个子模块,每个子模块对应一个特定的 CloudWatch 功能,如日志组、指标警报和指标流。
- .gitignore: 指定 Git 忽略的文件和目录。
- .pre-commit-config.yaml: 配置 pre-commit 钩子,用于在提交代码前执行一些检查。
- .terraform-version: 指定 Terraform 的版本。
- CHANGELOG.md: 记录项目的变更日志。
- LICENSE: 项目的开源许可证。
- Makefile: 包含一些常用的命令,如测试、格式化等。
- README.md: 项目的介绍文档。
- versions.tf: 定义 Terraform 和 AWS 提供者的版本。
2. 项目的启动文件介绍
在 examples/
目录下,每个示例目录都包含一个 main.tf
文件,这是 Terraform 的启动文件。以下是一个示例 main.tf
文件的内容:
module "cloudwatch_log_group" {
source = "../../modules/cloudwatch_log_group"
log_group_name = "example-log-group"
retention_in_days = 7
}
启动文件介绍
- module "cloudwatch_log_group": 定义了一个模块实例,使用
cloudwatch_log_group
模块。 - source: 指定模块的源路径。
- log_group_name: 定义日志组的名称。
- retention_in_days: 定义日志的保留天数。
3. 项目的配置文件介绍
在 modules/
目录下,每个子模块都包含一个 variables.tf
文件,用于定义模块的输入变量。以下是一个示例 variables.tf
文件的内容:
variable "log_group_name" {
description = "The name of the CloudWatch Log Group"
type = string
}
variable "retention_in_days" {
description = "Number of days to retain logs"
type = number
default = 30
}
配置文件介绍
- variable "log_group_name": 定义了一个输入变量
log_group_name
,用于指定日志组的名称。 - variable "retention_in_days": 定义了一个输入变量
retention_in_days
,用于指定日志的保留天数,默认值为 30 天。
通过这些配置文件,用户可以自定义模块的行为,如日志组的名称和日志的保留天数。