Я пытаюсь сделать serverless создавать триггер для запуска всякий раз, когда объект останавливается. Но он не создает и не вызывает никаких ошибок.
Мой serverless.yml: я сделал в соответствии с документацией (https://serverless.com/framework/docs/providers/aws/events/sqs/)
service: lambda-messages
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: us-east-1
memorySize: 256
iamRoleStatements:
- Effect: "Allow"
Action:
- sqs:SendMessage
- sqs:ReceiveMessage
- sqs:DeleteMessage
- sqs:GetQueueAttributes
Resource: arn:aws:sqs:us-east-1:074601456889:messages
functions:
addMessages:
timeout: 10
handler: handler.addMessages
events:
- http:
path: v1/chat/addMessages
method: post
receiveMessage:
timeout: 10
handler: handler.receiveMessage
reservedConcurrency: 10
events:
- sqs:
arn: arn:aws:sqs:us-east-1:074601456889:messages
batchSize: 2
Но это не создает
Проблема с отступом в вашем файле YAML, просто добавьте два пробела перед "arn" и "batchSize"
Добавить 2 пробела на кв. Добавил картинку для хорошей меры!
Вы должны создать очередь самостоятельно, как указано в документации.
Поскольку серверный сервер не будет создавать SQS для вас, он может только добавить слушателя в уже существующую очередь.
Вы можете найти, как это сделать здесь.
Serverless не создает SQS для вас, потому что есть два типа очередей, доступных для выбора в соответствии с вашими потребностями. Вам решать выбрать тип очереди, а затем создать его и только после того, как этот серверный сервер найдет вашу очередь и приложит работника.
serverless.yml
, вы пытаетесь прослушивать события sqs. Если вы хотите вызвать функцию по событию, взгляните на события наблюдения за облаком. serverless.com/framework/docs/providers/aws/events/...