Как создать ветку CodeCommit вместе с репозиторием CodeCommit в шаблоне AWS Cloudformation? - PullRequest
0 голосов
/ 24 июня 2019

Я создал репо, как показано ниже, но я хочу добавить ветку с определенным именем во время создания.

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

1 Ответ

1 голос
/ 24 июня 2019

Ответ:

Невозможно создать ветку CodeCommit непосредственно в шаблоне CloudFormation, используя ресурс AWS::CodeCommit::Repository И нет другого доступного ресурса для этого.

Почему

ИМХО: потому что CloudFormation является сервисом инфраструктуры как код. Поэтому работа с деталями того, что будет работать внутри инфраструктуры (или над ней), не должна быть частью самого кода инфраструктуры. Но это только моя точка зрения.

Возможная альтернатива: Напишите лямбда-функцию в шаблоне облачной информации, она должна зависеть от ресурса репозитория AWS::CodeCommit::Repository, чтобы вы могли использовать DependsOn при определении вашей лямбда-функции и установить для нее CodeCommitRepository, как показано ниже:

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

    LambdaForBranchCreation:
        Type: AWS::Lambda::Function
        DependsOn: CodeCommitRepository
        Properties: 
            Code:

А затем используйте boto3 для создания ветки, используя этот вызов API. Надеюсь, это поможет!

Справка:

Справочник шаблонов CloudFormation перечисляет справочные шаблоны для всех возможных типов ресурсов и их свойства. Ресурс: AWS::CodeCommit::Repository - это единственный тип ресурса, указанный в справочнике по типу ресурса CodeCommit 1034 *, и под этим ресурсом нет свойства

...