Лямбда не запускается событиями, а созданное событие не появляется в Lambda GUI, хотя триггеры SNS и SQS делают.
Вот serverless.yml
(примечание: я удалил свойARN, потому что я параноик):
service: my-service
provider:
name: aws
runtime: python3.7
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:PutObject"
Resource:
Fn::Join:
- ""
- - "bucket-arn or *"
plugins:
- serverless-plugin-existing-s3
layers:
boto3_downgrade_layer:
package:
artifact: boto3_downgrade_layer.zip
allowedAccounts:
- '*'
functions:
call_textract:
handler: src/call_textract.lambda_handler
description: "Kicks off the Textract process."
events:
- existings3:
bucket: startrac-files
event: s3:ObjectCreated:*
rules:
- prefix: input2/
- suffix: .pdf
- existings3:
bucket: startrac-files
event: s3:ObjectCreated:*
rules:
- prefix: input1/
- suffix: .pdf
layers:
- arn
get_textract_output:
handler: src/get_textract_output.lambda_handler
description: "Retrieves the Textracted data and writes it to a file to S3."
events:
- sqs: arn
layers:
- arn
parse_textract_output:
handler: src/parse_textract_output.lambda_handler
description: "Parses the Textracted output and performs file ops in S3 based on the results."
events:
- sns: arn
layers:
- arn
Чтобы развернуть, я запускаю sls deploy -v
, а затем sls s3deploy
согласно документации (без ошибок), но не люблю.Я должен видеть триггер события S3 в разделе «Конфигурация Lambda» пользовательского интерфейса (как я вижу там триггеры SQS / SNS), но я не вижу.
Я вполне мог бы использовать здесь неправильное использование сервера, как я только что обнаружил сегодня.
Редактировать 1: Просто хотел указать, что моя функция с именем call_textract
должна запускаться Событие S3 , событие не инициируется.
Редактировать 2: Я обновил свой код, как было предложено.Триггер события появился в моем графическом интерфейсе, за исключением того, что он справа (вызван), а не слева от функции, где мне это нужно.Похоже, я здесь неправильно использую лямбду.