Я застрял, пытаясь назначить разрешения для корзины S3 для моей лямбды при использовании Serverless Framework.
У меня есть одна функция lamba, которая в конечном итоге записывает файл конфигурации JSON в корзину S3, которую я бынравится подавать через Интернет в приложение.Сначала я настроил корзину S3 отдельно (не в serverless.yml
), и моя lamba успешно создает файл в правильной корзине S3, но при развертывании его в AWS я получаю «внутреннюю ошибку сервера».Я предполагаю, что это потому, что разрешения, установленные при развертывании, не предоставляют ему права на запись в корзину.
Я немного не согласен, как это сделать.Я прочитал эту ветку например, и попытался дополнить мой serverless.yml
этим:
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: eu-west-1
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:PutObject"
Resource:
Fn::Join:
- ""
- - "arn:aws:s3:::"
- Ref: arn:aws:s3:::com.joostschuur.quizdata
В этом случае arn:aws:s3:::com.joostschuur.quizdata
- это созданное вручную ведро S3, которое я настроил ихотел бы, чтобы моя развернутая лямбда имела доступ к записи.Однако это приводит к ошибке при развертывании:
Шаблон CloudFormation недопустим: Ошибка формата шаблона: неразрешенные зависимости ресурса [arn: aws: s3 ::: com.joostschuur.quizdata] в ресурсахблок шаблона
Если есть способ поместить все настройки S3 в serverless.yml (т. е. указать корзину, указать, что файлы в ней должны быть доступны через Интернет и т. д.), я 'Я тоже так счастлив.
Предложения?