Я пытаюсь создать S3 Bucket
и соответствующий Resource Policy
в одном и том же serverless.yml
, чтобы оба были установлены при формировании нового стека.
Однако я столкнулся с ошибкой on build:
Unresolved resource dependencies [CUSTOM-BUCKETNAME] in the Resources block of the template
Есть ли способ синхронно создать политику, чтобы она сначала ожидала создания корзины? Я настраиваю это в секции resources
моего yml
resources:
Resources:
Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: CUSTOM-BUCKETNAME
BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket:
Ref: CUSTOM-BUCKETNAME
PolicyDocument:
Statement:
- Principal:
Service: "ses.amazonaws.com"
Action:
- s3:PutObject
Effect: Allow
Sid: "AllowSESPuts"
Resource:
Fn::Join: ['', ['arn:aws:s3:::', Ref: "CUSTOM-BUCKETNAME", '/*'] ]
Выше приведен небольшой фрагмент моей конфигурации yml.
После использования DependsOn я все еще получаю та же ошибка. Стоит отметить, что зависимость от ресурса относится к динамическому c имени (CUSTOM-BUCKETNAME) корзины.
resources:
Resources:
Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: CUSTOM-BUCKETNAME
BucketPolicy:
Type: AWS::S3::BucketPolicy
DependsOn: Bucket
Properties:
Bucket:
Ref: CUSTOM-BUCKETNAME
PolicyDocument:
Statement:
- Principal:
Service: "ses.amazonaws.com"
Action:
- s3:PutObject
Effect: Allow
Sid: "AllowSESPuts"
Resource:
Fn::Join: ['', ['arn:aws:s3:::', Ref: "CUSTOM-BUCKETNAME", '/*'] ]
CUSTOM-BUCKETNAME никогда не является явным образом прописанным в самом yml явным образом, его динамически генерируемое имя с использованием литералы шаблона.