Amazon cloudformation 如何在AWS Cloudformation模板中创建CodeCommit分支和CodeCommit存储库?
我创建了如下所示的回购协议,但我想在创建时添加一个具有特定名称的分支Amazon cloudformation 如何在AWS Cloudformation模板中创建CodeCommit分支和CodeCommit存储库?,amazon-cloudformation,aws-codecommit,Amazon Cloudformation,Aws Codecommit,我创建了如下所示的回购协议,但我想在创建时添加一个具有特定名称的分支 Resources: CodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: !Ref Message 回答: 无法使用资源AWS::CodeCommit::Repository在CloudFormation模板中直接创建CodeCommit分支,而且
Resources:
CodeCommitRepository:
Type: AWS::CodeCommit::Repository
Properties:
RepositoryName: !Ref Message
回答: 无法使用资源AWS::CodeCommit::Repository在CloudFormation模板中直接创建CodeCommit分支,而且也没有其他资源可用于此操作 为什么 IMHO:因为CloudFormation是一个作为代码服务的基础设施。因此,处理基础设施内部(或其上)将要运行的内容的细节不应该成为基础设施代码本身的一部分。但这只是我的观点 可能的备选方案: 在cloudformation模板中编写Lambda函数,它应该取决于存储库资源
AWS::CodeCommit::repository
,因此您可以在定义Lambda函数时使用DependsOn
,并将其设置为CodeCommitRepository
,如下所示:
Resources:
CodeCommitRepository:
Type: AWS::CodeCommit::Repository
Properties:
RepositoryName: !Ref Message
LambdaForBranchCreation:
Type: AWS::Lambda::Function
DependsOn: CodeCommitRepository
Properties:
Code:
然后使用boto3通过api调用创建分支。希望有帮助
参考资料:
列出所有可能的资源类型及其属性的引用模板。资源:
AWS::CodeCommit::Repository
是下列出的唯一资源类型,并且此资源下没有列出任何属性
无法使用资源AWS::CodeCommit::Repository在CloudFormation模板中直接创建CodeCommit分支,而且也没有其他资源可用于此操作
为什么
IMHO:因为CloudFormation是一个作为代码服务的基础设施。因此,处理基础设施内部(或其上)将要运行的内容的细节不应该成为基础设施代码本身的一部分。但这只是我的观点
可能的备选方案:
在cloudformation模板中编写Lambda函数,它应该取决于存储库资源AWS::CodeCommit::repository
,因此您可以在定义Lambda函数时使用DependsOn
,并将其设置为CodeCommitRepository
,如下所示:
Resources:
CodeCommitRepository:
Type: AWS::CodeCommit::Repository
Properties:
RepositoryName: !Ref Message
LambdaForBranchCreation:
Type: AWS::Lambda::Function
DependsOn: CodeCommitRepository
Properties:
Code:
然后使用boto3通过api调用创建分支。希望有帮助
参考资料:
列出所有可能的资源类型及其属性的引用模板。资源:AWS::CodeCommit::Repository
是下列出的唯一资源类型,此资源下没有列出任何属性