如何在AWS Cloudformation模板中创建CodeCommit分支以及CodeCommit存储库?

时间:2019-06-24 10:05:32

标签: amazon-cloudformation aws-codecommit

我创建了如下所示的存储库,但是我想在创建时添加一个具有特定名称的分支。

Resources:
    CodeCommitRepository:
        Type: AWS::CodeCommit::Repository
        Properties:
            RepositoryName: !Ref Message

1 个答案:

答案 0 :(得分:1)

答案:

不可能使用资源AWS::CodeCommit::Repository在CloudFormation模板中直接创建CodeCommit分支,并且也没有其他资源可用于执行此操作。

为什么

恕我直言:因为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通过this api调用创建分支。希望对您有帮助!

参考:

CloudFormation Template Reference列出了所有可能的资源类型及其属性的参考模板。资源:AWS::CodeCommit::RepositoryCodeCommit Resource Type Reference下列出的唯一资源类型,并且该资源下没有列出属性