

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在启动时强制对 Amazon RDS 数据库执行自动标记
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch"></a>

*Susanne Kangnoh 和 Archit Mathur，Amazon Web Services*

## Summary
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-summary"></a>

Amazon Relational Database Service (Amazon RDS) 是一项 Web 服务，让用户能够在 Amazon Web Services (AWS) 云中更轻松地设置、操作和扩展关系数据库。它为行业标准的关系数据库提供了经济高效、可调整大小的容量，并管理常见的数据库管理任务。

您可使用标签按不同方式对 AWS 资源进行分类。当您的账户中有许多资源并且您希望根据标签快速识别特定资源时，关系数据库标记非常有用。您可使用 Amazon RDS 标签向您的 RDS 数据库实例添加自定义元数据。每个标签都由用户定义的键和值组成。我们建议您创建一组一致的标签以满足您的组织要求。

此模式提供了一个 AWS CloudFormation 模板来帮助您监控和标记 RDS 数据库实例。该模板创建了一个监视 AWS C CloudTrail **re** ate CloudWatch 事件的 Amazon Event DBInstance s 事件。 （将 Amazon RDS 的 API 调用CloudTrail 捕获为事件。） 当它检测到该事件时，它会调用 AWS Lambda 函数，该函数会自动应用您定义的标签键和值。该模板还使用 Amazon Simple Notiﬁcation Service (Amazon SNS) 发出实例已被标记的通知。

## 先决条件和限制
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-prerequisites-and-limitations"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account。
+ 用于上传 Lambda 代码的 Amazon Simple Storage Service （Amazon S3）存储桶。
+ 您希望接收标记通知的电子邮件地址。

**限制**
+ 该解决方案支持 CloudTrail **创建DBInstance**事件。它不会为任何其他事件创建通知。

## 架构
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-architecture"></a>

**工作流程架构**

![\[Workflow diagram showing AWS 服务 interaction for RDS instance creation and notification.\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/5541bc1e-e00f-4b5a-94b7-bb1808b5591a/images/ec0bcf92-f986-4af3-bfe7-d2c5e04051c5.png)


 

**自动化和扩缩**
+ 您可以针对不同的 AWS 区域和账户多次使用 AWS CloudFormation 模板。您只需在每个区域或账户中运行该模板一次。

## 工具
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-tools"></a>

**AWS 服务**
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) — AWS CloudTrail 是一项 AWS 服务，可帮助您对 AWS 账户进行治理、合规以及运营和风险审计。用户、角色或 AWS 服务采取的操作在中记录为事件 CloudTrail。 
+ [Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) Events — Amazon CloudWatch Events 提供近乎实时的系统事件流，这些事件描述了 AWS 资源的变化。 CloudWatch 通过发送消息以响应环境、激活功能、进行更改和捕获状态信息，事件会在操作变化发生时意识到这些变化，并在必要时采取纠正措施。 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda 是一项计算服务，使您无需预置或管理服务器即可运行代码。只有在需要时 Lambda 才运行您的代码，并且能自动扩缩，从每天几个请求扩展到每秒数千个请求。您只需为消耗的计算时间付费 - 代码未运行时不产生费用。
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) – Amazon Simple Storage Service (Amazon S3) 是一项高度可扩展的对象存储服务，可用于各种存储解决方案，包括网站、移动应用程序、备份和数据湖。
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) – Amazon Simple Notiﬁcation Service (Amazon SNS) 是一项 Web 服务，可让应用程序、终端用户和设备即时发送和接收来自云端的通知。 

**代码**

此模式包括一个包含两个文件的附件：
+ `index.zip` 是压缩文件，其中包含此模式的 Lambda 代码。
+ `rds.yaml`是部署 Lambda 代码的 CloudFormation 模板。

有关如何使用这些文件的信息，请参阅*操作说明*部分。

## 操作说明
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-epics"></a>

### 部署 Lambda 代码
<a name="deploy-the-lambda-code"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将代码上传到 S3 存储桶。 | 创建新的 S3 存储桶或使用现有 S3 存储桶上传附加的 `index.zip` 文件（Lambda 代码）。此存储桶必须与要监控的资源 (RDS 数据库实例) 位于同一 AWS 区域中。 | 云架构师 | 
| 部署 CloudFormation 模板。 | 在与 S3 存储桶相同的 AWS 区域中打开 Cloudformation 控制台，然后部署附件中提供的 `rds.yaml` 文件。在下一个操作说明中，提供模板参数的值。 | 云架构师 | 

### 填写 CloudFormation 模板中的参数
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 提供 S3 存储桶名称。 | 输入您在第一篇操作说明中创建或选择的 S3 存储桶的名称。此 S3 存储桶包含 Lambda 代码的.zip 文件，并且必须与模板和要监控的 RDS 数据库实例位于相同的 AWS 区域。 CloudFormation  | 云架构师 | 
| 提供 S3 密钥。 | 提供 Lambda 代码 .zip 文件在 S3 存储桶中的位置，不带前导斜杠（例如，`index.zip` 或 `controls/index.zip`）。 | 云架构师 | 
| 提供电子邮箱地址。 | 提供要接收违规通知的活动电子邮件地址。 | 云架构师 | 
| 指定日志记录级别。 | 指定日志级别和详细程度。`Info` 指定有关应用程序进度的详细信息消息，应仅用于调试。`Error` 指定仍允许应用程序继续运行的错误事件。`Warning` 表示潜在的有害情况。 | 云架构师 | 
| 输入 RDS 数据库实例的标签键和值。 | 输入您想要自动应用于 RDS 实例的所需标签键和值。有关更多信息，请参阅 AWS 文档中的[为 Amazon RDS 资源添加标签](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html)。 | 云架构师 | 

### 确认订阅
<a name="confirm-the-subscription"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 确认电子邮件订阅。 | 成功部署 CloudFormation 模板后，它会向您提供的电子邮件地址发送订阅电子邮件。要在标记实例时接收通知，您必须确认此电子邮件订阅。 | 云架构师 | 

## 相关资源
<a name="enforce-automatic-tagging-of-amazon-rds-databases-at-launch-related-resources"></a>
+ [创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)（Amazon S3 文档）
+ [为 Amazon RDS 资源添加标签](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html)（Amazon Aurora 文档）
+ [上传对象](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html)（Amazon S3 文档）
+ 使用 [AWS 创建在 AWS API 调用时触发 CloudWatch 的事件规则 CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html)（亚马逊 CloudWatch 文档）

## 附件
<a name="attachments-5541bc1e-e00f-4b5a-94b7-bb1808b5591a"></a>

要访问与此文档相关联的其他内容，请解压以下文件：[attachment.zip](samples/p-attach/5541bc1e-e00f-4b5a-94b7-bb1808b5591a/attachments/attachment.zip)