打开 AWS Lambda 控制台,网址为
https://console.aws.amazon.com/lambda/
。
如果您是首次使用 Lambda,请在欢迎页面上选择
Get Started Now
(立即开始使用);否则,选择
Create function
(创建函数)。
在
Create function
(创建函数)页面中,选择
Use a blueprint
(使用蓝图)。
从
Blueprints (蓝图)
搜索框中,为筛选条件输入
hello
,然后选择
hello-world
蓝图。
选择
配置
。
在
Basic information (基本信息)
页面上,执行以下操作:
对于 Lambda 函数名称,在
Name (名称)
文本框中输入
LogOrganizationEvents
。
对于
Role (角色)
,选择
Create a new role with basic Lambda permissions (创建具有基本 Lambda 权限的新角色)
。此角色授予您的 Lambda 函数访问所需数据的权限和写入输出日志的权限。
编辑 Lambda 函数的代码,如以下示例所示。
console.log('Loading function');
exports.handler = async (event, context) => {
console.log('LogOrganizationsEvents');
console.log('Received event:', JSON.stringify(event, null, 2));
return event.key1; // Echo back the first key value
// throw new Error('Something went wrong');
该示例代码使用 LogOrganizationEvents
标记字符串记录事件,后跟组成事件的 JSON 字符串。
选择 Create function (创建函数)。
步骤 3:创建 Amazon SNS 主题,向订阅者发送电子邮件
在此步骤中,您将创建 Amazon SNS 主题,向订阅者发送电子邮件信息。您将此主题作为稍后创建的 Amazon EventBridge 规则的目标。
创建 Amazon SNS 主题,向订阅者发送电子邮件
-
从 https://console.aws.amazon.com/sns/v3/ 打开 Amazon SNS 控制台。
在导航窗格中,选择 Topics(主题)。
选择 创建新主题。
对于 Topic name (主题名称),输入 OrganizationsCloudWatchTopic
。
对于 Display name (显示名称),输入 OrgsCWEvnt
。
选择创建主题。
现在,您可以创建该主题的订阅。选择您刚刚创建的主题的 ARN。
选择创建订阅。
在 Create subscription (创建订阅) 页面上,为 Protocol (协议) 选择 Email (电子邮件)。
对于 Endpoint (终端节点),输入您的电子邮件地址。
选择创建订阅。 AWS 向您在上一步中指定的电子邮件地址发送一封电子邮件。收到这封电子邮件后,选择电子邮件中的 Confirm subscription (确认订阅) 链接,验证您已成功接收到这封电子邮件。
返回控制台并刷新页面。Pending confirmation 消息消失,现已替换为有效的订阅 ID。
步骤 4:创建亚马逊 EventBridge 规则
既然您的账户中已存在所需的 Lambda 函数,那么您可以创建一个 Amazon EventBridge 规则,当满足规则中的条件时,该规则就会调用该规则。
第 5 步:测试您的亚马逊 EventBridge 规则
在此步骤中,您将创建组织单位 (OU) 并遵守 Amazon EventBridge 规则,生成日志条目,并向自己发送一封包含活动详细信息的电子邮件。
- AWS Management Console
-
创建 OU
-
打开该AWS 账户页面的 AWS Organizations 控制台。
选择复选框
Root OU,选择 Actions (操作),然后在 Organizational unit (组织部门) 下选择 Create new (新建)。
对于 OU 的名称,输入 TestCWEOU
,然后选择 Create organizational unit (创建组织部门)。
查看 EventBridge 日志条目
-
打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/。
在导航窗格中,选择 Logs (日志)。
在日志组下,选择与您的 Lambda 函数关联的组:/。aws/lambda/LogOrganizationEvents
每个组包含一个或多个流,应该有一个今天的组。选择该存储桶。
查看日志。您应该可以看到与以下内容类似的行:
选择条目中间的行,查看收到事件的完整 JSON 文本。您可以在输出的 requestParameters
和 responseElements
部分查看 API 请求的所有详细信息。
2017-03-09T22:45:05.101Z 0999eb20-051a-11e7-a426-cddb46425f16 Received event:
"version": "0",
"id": "123456-EXAMPLE-GUID-123456",
"detail-type": "AWS API Call via CloudTrail",
"source": "aws.organizations",
"account": "123456789012",
"time": "2017-03-09T22:44:26Z",
"region": "us-east-1",
"resources": [],
"detail": {
"eventVersion": "1.04",
"userIdentity": {
"eventTime": "2017-03-09T22:44:26Z",
"eventSource": "organizations.amazonaws.com",
"eventName": "CreateOrganizationalUnit",
"awsRegion": "us-east-1",
"sourceIPAddress": "192.168.0.1",
"userAgent": "AWS Organizations Console, aws-internal/3",
"requestParameters": {
"parentId": "r-exampleRootId",
"name": "TestCWEOU"
"responseElements": {
"organizationalUnit": {
"name": "TestCWEOU",
"id": "ou-exampleRootId-exampleOUId",
"arn": "arn:aws:organizations::1234567789012:ou/o-exampleOrgId/ou-exampleRootId-exampeOUId"
"requestID": "123456-EXAMPLE-GUID-123456",
"eventID": "123456-EXAMPLE-GUID-123456",
"eventType": "AwsApiCall"
检查您的电子邮件账户中是否有来自组织的一封邮件CWEvnt(Amazon SNS 主题的显示名称)。电子邮件正文中包含与上一步所示的日志条目相同的 JSON 文本输出。
清理:删除您不再需要的资源
为避免产生费用,您应删除在本教程中创建的所有不想保留的 AWS 资源。