【发布时间】:2018-10-13 23:27:12
【问题描述】:
以下 AWS CloudFormation 给出循环依赖错误。我的理解是依赖关系是这样流动的:rawUploads -> generatePreview -> previewPipeline -> rawUploads。虽然rawUploads 似乎并不依赖于generatePreview,但我猜CF 需要知道在创建存储桶时要触发什么lambda,即使触发器是在CloudFormation 模板的lambda 部分中定义的。
我在网上找到了一些讨论类似问题的资源,但它似乎不适用于这里。 https://aws.amazon.com/premiumsupport/knowledge-center/unable-validate-circular-dependency-cloudformation/
我有哪些方法可以打破这种循环依赖链?可编写脚本的解决方案是可行的,但手动更改的多个部署不适合我的用例。
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
rawUploads:
Type: 'AWS::S3::Bucket'
previewAudioFiles:
Type: 'AWS::S3::Bucket'
generatePreview:
Type: AWS::Serverless::Function
Properties:
Handler: generatePreview.handler
Runtime: nodejs6.10
CodeUri: .
Environment:
Variables:
PipelineId: !Ref previewPipeline
Events:
BucketrawUploads:
Type: S3
Properties:
Bucket: !Ref rawUploads
Events: 's3:ObjectCreated:*'
previewPipeline:
Type: Custom::ElasticTranscoderPipeline
Version: '1.0'
Properties:
ServiceToken:
Fn::Join:
- ":"
- - arn:aws:lambda
- Ref: AWS::Region
- Ref: AWS::AccountId
- function
- aws-cloudformation-elastic-transcoder-pipeline-1-0-0
Name: transcoderPipeline
InputBucket:
Ref: rawUploads
OutputBucket:
Ref: previewAudioFiles
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-cloudformation serverless-framework serverless