Как настроить шаблон 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) и отредактировать его, чтобы получить необходимый пользовательский конвейер любого вида.