Начало работы Cloudtrail Cloudwatch Events - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь обрабатывать события cloudwatch, в частности, cloudtrail, так как я развертываюсь в us-east-1, но хотел бы получать события из всех регионов.Все развертывается, но события не вызывают лямбду.

Мой cloudtrail настроен для всех регионов и доставлен в группу журнала Cloudwatch.

functions:
ec2_instance_region_watch:
handler: ec2_instance_region_watch.ec2_instance_region_watch
events:
- cloudwatchEvent:
event:
source:
- “ec2.amazonaws.com”
detail-type:
- “AWS API Call via CloudTrail”
detail:
eventName:
- “RunInstances”

Создано мое событие cloudwatch.

{
“detail-type”: [
“AWS API Call via CloudTrail”
],
“source”: [
“ec2.amazonaws.com”
],
“detail”: {
“eventName”: [
“RunInstances”
]
}
}

Я запускаю экземпляр, и в группе журналов cloudwatch я получаю событие, которое содержит то, что я ожидаю.

"eventSource": "ec2.amazonaws.com",
"eventName": "RunInstances",

Но моя лямбда никогда не срабатывает, поэтому она не соответствует событию cloudtrail.

Я пытался что-то обмануть, https://serverless.com/blog/serverless-cloudtrail-cloudwatch-events/

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Источник шаблона события правила CloudWatch неверен.Должно быть - "source": ["aws.ec2"]

{
"source": [
    "aws.ec2"
],
"detail-type": [
    "AWS API Call via CloudTrail"
],
"detail": {
    "eventSource": [
        "ec2.amazonaws.com"
    ],
    "eventName": [
        "RunInstances"
    ]
  }
}

https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Cloud

0 голосов
/ 05 июня 2018

Вместо добавления Lambda в качестве подписчика из консоли событий CloudWatch настройте триггер события cloudwatch из консоли Lambda

При этом будет добавлено разрешение «Lambda: Invoke» для настроенного события CloudWatch.

В качестве альтернативы добавьте разрешение на вызов вручную для событий CW, чтобы выполнить вызов с использованием метода добавления-разрешения Lambda.

Пример CLI

aws lambda add-permission \
--function-name FUNCTION_NAME \
--statement-id STATEMENT_ID \
--action lambda:InvokeFunction \
--principal events.amazonaws.com \
--source-arn "arn:aws:events:<region>:<acct_id>:rule/<rule_name>"
...