Безсерверная платформа: добавление зависимостей для ресурсов AWS - PullRequest
0 голосов
/ 15 октября 2019

Мы используем Serverless Framework для наших развертываний.

Сначала мы хотим создать роль IAM.

Эта роль IAM будет использоваться при создании другого ресурса AWS.

Как мы можем убедиться, что роль Lambda создается перед использованием ее в другом ресурсе?

Вот фрагмент файла serverless.yml

AssumeRolePolicyDocument: 
          Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Principal:
                AWS: arn:aws:iam::${self:custom.accountId}:role/lambdaRole1
                Service:
                  - lambda.amazonaws.com
              Action: sts:AssumeRole

Этот lambdaRol1 необходимо создать до того, каксоздание этого нового ресурса (это еще одна роль IAM)

Мы пытались использовать DependsOn, но получили сообщение об ошибке неподдерживаемого свойства.

Каковы возможные варианты?

  1. есть что-то похожее на DependsOn в безсерверной среде.
  2. Можно ли это сделать с помощью вложенных стеков?

1 Ответ

0 голосов
/ 15 октября 2019

Один из способов решения этих проблем с зависимостями в CloudFormation состоит в том, чтобы просто использовать полный ARN в зависимом ресурсе, а не использовать ссылку на исходный ресурс (из которого ARN будет автоматически выведен). Это работает, когда вы диктует ARN исходного ресурса (например, для сегментов S3, ролей IAM), но не работает, когда ARN ресурса имеет какой-то автоматически сгенерированный компонент, такой как дистрибутивы CloudFront.

Я предполагаю, но не знаю наверняка, что это также будет работать и для Serverless.

...