#amazon-web-services #amazon-s3 #aws-lambda #amazon-cloudwatch
#amazon-веб-сервисы #amazon-s3 #aws-lambda #amazon-cloudwatch
Вопрос:
Я пытаюсь настроить лямбда-функцию, которая сканирует политику жизненного цикла в каждом новом создаваемом сегменте S3. Если функция обнаружит, что политика жизненного цикла не установлена, она добавит политику по умолчанию, которую я определил в функции. Цель состоит в том, чтобы использовать createbucket
событие CloudWatch S3 в качестве триггера.
Я могу успешно запускать тесты, но когда я создаю новые сегменты S3, он не устанавливает политику жизненного цикла по умолчанию в сегменте, как указано в аннотации к функции. Я добавил полный доступ администратора к роли IAM функции Lambda, надеясь устранить любые проблемы с разрешениями (в качестве теста). Но когда я создаю новые сегменты S3, событие CloudWatch не запускает функцию.
Похоже, я упускаю что-то маленькое, какие-либо предложения? Спасибо!
Комментарии:
1. Вы хотите сказать, что функция Lambda никогда не запускается событиями CloudWatch? Где вы хотите это проверить? Назначена ли лямбда-функции
AWSLambdaBasicExecutionRole
политика разрешений, чтобы она могла записывать в журналы CloudWatch?2. Можете ли вы показать скриншот того, как вы настроили Lambda через CW? Можете ли вы подтвердить «успешное выполнение тестов»? Это использование localstack или что вы имеете в виду, что они выполняются успешно (они прикрепляют политику жизненного цикла), но его CW, вызывающий лямбду, который не работает?
3. Помимо приведенных выше вопросов, как вы можете «успешно запускать тесты»? Какие тесты вы провели?
Ответ №1:
Проблема заключалась в том, что API CloudTrail не был настроен для ведения журнала. Мне пришлось использовать свою учетную запись root для создания маршрута для S3. После настройки CloudTrail CloudWatch смог отправлять зарегистрированные события S3 в Lambda в качестве триггера.