在使用 AWS CloudWatch 和 ECS 进行集成时,需要为 ECS 服务和 CloudWatch 创建一些 IAM 角色和权限。
- 创建 IAM 角色:
首先,需要创建一个 IAM 角色,用于将 ECS 服务与 CloudWatch 进行集成。可以按照以下步骤创建一个 IAM 角色:
- 登录到 AWS 管理控制台并转到 IAM 服务。
- 在左侧导航栏中,选择 "角色",然后点击 "创建角色"。
- 在 "选择使用案例" 中,选择 "Elastic Container Service"。
- 在 "筛选器" 中选择 "Elastic Container Service"。
- 选择 "AWS Elastic Container Service Task",然后点击 "下一步:权限"。
- 在 "权限" 页面上,选择所需的权限,例如 CloudWatchLogsFullAccess 和 CloudWatchEventsFullAccess。
- 点击 "下一步:标记",可选地为角色添加标签。
- 点击 "下一步:审查",然后给角色命名并添加描述。
- 最后,点击 "创建角色"。
- 创建 CloudWatch 日志组:
在 ECS 服务中,需要为每个任务(task)创建一个 CloudWatch 日志组。可以按照以下步骤创建一个 CloudWatch 日志组:
- 登录到 AWS 管理控制台并转到 CloudWatch 服务。
- 在左侧导航栏中,选择 "日志组",然后点击 "创建日志组"。
- 输入日志组的名称和描述。
- 点击 "创建日志组"。
- 更新任务定义:
在 ECS 任务定义中,需要添加以下内容来将任务的日志发送到 CloudWatch 日志组。例如,使用 JSON 格式的任务定义来添加日志配置:
{
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "your-log-group-name",
"awslogs-region": "your-aws-region",
"awslogs-stream-prefix": "your-log-stream-prefix"
}
}
}
其中,"your-log-group-name" 是你在步骤 2 中创建的 CloudWatch 日志组的名称;"your-aws-region" 是你的 AWS 区域;"your-log-stream-prefix" 是用于识别日志流的前缀。
- 运行任务:
为了让 ECS 任务能够将日志发送到 CloudWatch,需要确保任务的执行角色具有适当的权限。可以按照以下步骤为执行角色添加权限:
- 登录到 AWS 管理控制台并转到 IAM 服务。
- 在左侧导航栏中,选择 "角色",然后找到任务执行角色。
- 点击任务执行角色的名称,然后选择 "权限" 选项卡。
- 点击 "添加权限"。
- 在 "选择策略" 页面上,搜索并选择 "CloudWatchLogsFullAccess" 和 "CloudWatchEventsFullAccess" 策略。
- 点击 "下一步:标记",可选地为策略添加标签。
- 点击 "下一步:审查",然后点击 "添加权限"。
通过以上步骤,你已经完成了设置 AWS CloudWatch 和 ECS 所需的权限。现在,你的 ECS 任务应该能够将日志发送到 CloudWatch 日志组中。