2017-07-03 72 views
2

我试图在创建任何API调用时创建规则触发器,但我没有取得任何成功。AWS Cloudwatch不会触发API调用

我有另一个规则触发每当和ec2实例正在运行的工作,但这条规则不会触发RunInstances,虽然我看到API日志中的RunInstances的云轨日志。

我已经从云轨中创建了一个CloudWatch日志,并查看应触发它的事件,但它们没有。有没有我失踪的一步? CloudWatch在API调用中正确触发的必要组件是什么?

提到的规则:

{ 
     "source": [ 
     "aws.cloudtrail" 
     ], 
     "detail-type": [ 
     "AWS API Call via CloudTrail" 
     ], 
     "detail": { 
     "eventSource": [ 
      "cloudtrail.amazonaws.com" 
     ], 
     "eventName": [ 
      "CreateUserPool", 
      "CreateImage", 
      "CreateCacheCluster", 
      "RunInstances", 
      "CreateActivation", 
      "RunJobFlow ", 
      "CreateVault", 
      "CreateDeliveryStream", 
      "CreateStream", 
      "CreateCluster", 
      "CreateDBInstance", 
      "CreateHostedZone", 
      "CreateBucket", 
      "CreateLaunchConfiguration", 
      "CreateStack", 
      "CreateEnvironment", 
      "CreateWorkspaces" 
     ] 
     } 
    } 

在这里添加更多的细节是我用来测试的CloudWatch

{ 
    "source": [ 
    "aws.ec2" 
    ], 
    "detail-type": [ 
    "EC2 Instance State-change Notification" 
    ], 
    "detail": { 
    "state": [ 
     "running" 
    ] 
    } 
} 

这是startInstances和下面的lambda函数运行的日志中的其他规则。 enter image description here

具体功能正常的lambda函数的云轨迹。

Lambda function log

这里是API调用也应该按照规则发起,但它没有。 enter image description here

希望这些图像能够让我更清楚自己遇到的问题。

P.S.我不知道我应该考虑保密多少信息,所以我通过审查

+0

我在看CloudTrail时误解了AWS API从Cloudtrail调用的意思。我现在认为在这种情况下,只有与该服务相关的命令cloudtrail,根本没有RunInstances。我正在测试其他选项以获得我想要的结果。 – user3651225

+0

如果任何人仍然有兴趣这样做,可以在规则中有多个事件。它们必须明确说明,例如ec2,s3等。没有通配符功能。另外,JSON格式在不同资源的事件之间会有所不同,因此检索特定参数将需要硬编码。 – user3651225

回答

0

我误解了我创建的规则。当使用Cloudtrail Service时,我认为“Cloudtrail的AWS API调用”意味着存储在Cloudtrail中的所有信息。这似乎并非如此。

正如我在我的评论中提到的,我正在为我的问题寻找其他解决方案,但我会为此提出一个单独的问题。谢谢!

相关问题