CloudFormation - CREATE_FAILED при использовании существующей корзины s3 без разрешения `iam: CreateRole` - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь развернуть лямбда-функцию, которая запускается при записи файла AVRO в существующую корзину s3.

Моя конфигурация serverless.yml выглядит следующим образом:

service: braze-lambdas

provider:
  name: aws
  runtime: python3.7
  region: us-west-1
  role: arn:aws:iam::<account_id>:role/<role_name>
  stage: dev
  deploymentBucket:
    name: serverless-framework-dev-us-west-1
    serverSideEncryption: AES256

functions:
  hello:
    handler: handler.hello
    events:
      - s3:
          bucket: <company>-dev-ec2-us-west-2
          existing: true
          events: s3:ObjectCreated:*
          rules:
            - prefix: gaurav/lambdas/123/
            - suffix: .avro

Когда я запускаю serverless deploy, я получаю следующую ошибку:

ServerlessError: An error occurred: IamRoleCustomResourcesLambdaExecution - API: iam:CreateRole User: arn:aws:sts::<account_id>:assumed-role/serverless-framework-dev/jenkins_braze_lambdas_deploy is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::<account_id>:role/braze-lambdas-dev-IamRoleCustomResourcesLambdaExec-1M5QQI6P2ZYUH. 

Я вижу некоторые упоминания о том, что без сервера требуется iam:CreateRole из-за того, как работает CloudFormation, но кто-нибудь может подтвердить, что это единственное решение, если я хочуиспользовать existing: true? Есть ли другой способ обойти это, кроме использования старого безсерверного плагина, который использовался до того, как фреймворк добавил поддержку конфигурации existing: true?

Кроме того, что такое 1M5QQI6P2ZYUH в arn:aws:iam::<account_id>:role/braze-lambdas-dev-IamRoleCustomResourcesLambdaExec-1M5QQI6P2ZYUH? Это случайный идентификатор? Означает ли это, что сервер не будет пытаться создать новую роль каждый раз, когда я пытаюсь развернуть функцию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...