Как настроить шаблон AWS Codestar / Cloudformation для создания конкретного проекта Codebuild?

Как настроить шаблон AWS Codestar / Cloudformation для создания конкретного проекта Codebuild

Ресурсы вроде лямбды в порядке, SAM > Шаблон проекта Codestar работает нормально

Проблема в том, когда я пытаюсь добавить настройки CodeBuild с определенным образом докера (нужно использовать Python 3.7 вместо 2.7 по умолчанию). Использование Yaml для template.yml + buildspec.yml

    AWSTemplateFormatVersion: 2010-09-09
    Transform:
    - AWS::Serverless-2016-10-31
    - AWS::CodeStar

    Parameters:
      ProjectId:
        Type: String
        Description: CodeStar projectId used to associate new resources to team members
    Resources:
      HelloWorld:
        Type: AWS::Serverless::Function
        Properties:
          Handler: index.lambda_handler
          Runtime: python3.7
          Layers:
          - arn:aws:lxxxxxxxxxxxxxxxxxxxxxx:1
          Role:
          - arn:aws:iam::xxxxxxxxxxxxxxxxxxxxxx

      CodeBuildProject:
        Type: AWS::CodeBuild::Project
        Properties:
          Description: Codebuild project Validate Packer Template
          Artifacts:
            Type: CODEPIPELINE
          Environment:
            Type: LINUX_CONTAINER
            ComputeType: BUILD_GENERAL1_SMALL
            Image: aws/codebuild/python:3.7.1
        Source:
          Type: CODEPIPELINE
        TimeoutInMinutes: 1

Лямбда создана успешно, но разделы Codebuild игнорируются и ничего не происходит

РЕДАКТИРОВАТЬ 2 Я смог отредактировать шаблон CF для принудительного создания другого проекта CodeBuild. К сожалению, он функционирует как совершенно отдельный компонент

Из документации видно, что можно изменить ресурсы после создания, предположительно изменить набор изменений CF deploy.

Но как насчет изменений в конвейере через код после использования шаблона по умолчанию (sam + Python)? Есть ли способ перезаписать код enbu (изменить образ докера) в пипилине в CodeStar? Через COnsole, конечно, вы можете изменить и обновить что угодно + перезаписать. Но ничего в документации о том, как это сделать через файлы template.yml / template.json

1 ответ

Решение

Из того, что я обнаружил, есть несколько слоев компонентов. Когда вы создаете проект Codestar через Консоль, вы выбираете шаблон по умолчанию. Это то, что вам нужно отредактировать, чтобы изменить базовый CodePupeline

Я нашел обходной путь: создание проекта через CLI. Таким образом, вы можете использовать toolchain.yml (также возможно редактирование через консоль, что противоречит принципу IAC) и отредактировать его, чтобы получить необходимый пользовательский конвейер любого вида.