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
是下列出的唯一资源类型,此资源下没有列出任何属性