Notifications в Code* сервисах
В сервисы CodeCommit, CodeBuild, CodeDeploy и CodePipeline были добавлены Notifications, которые шлются через SNS:
https://aws.amazon.com/about-aws/whats-new/2019/11/introducing-notifications-for-aws-codecommit-aws-codebuild-aws-codedeploy-and-asw-codepipeline/
Notifications можно вешать на нужные события — сбилдилось, нет, в процессе и т.п.:
https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#events-ref-repositories
В общем, реально полезное дополнение для организации CI/CD процесса.
#CodeCommit #CodeBuild #CodeDeploy #CodePipeline
В сервисы CodeCommit, CodeBuild, CodeDeploy и CodePipeline были добавлены Notifications, которые шлются через SNS:
https://aws.amazon.com/about-aws/whats-new/2019/11/introducing-notifications-for-aws-codecommit-aws-codebuild-aws-codedeploy-and-asw-codepipeline/
Notifications можно вешать на нужные события — сбилдилось, нет, в процессе и т.п.:
https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#events-ref-repositories
В общем, реально полезное дополнение для организации CI/CD процесса.
#CodeCommit #CodeBuild #CodeDeploy #CodePipeline
Кто активно работает с CodeBuild и кому нужно знать, что входит в состав текущих дефолтных амазоновских образов, то их исходники (
https://github.com/aws/aws-codebuild-docker-images
#CodeBuild
Dockerfile-ы) можно посмотреть здесь:https://github.com/aws/aws-codebuild-docker-images
#CodeBuild
GitHub
GitHub - aws/aws-codebuild-docker-images: Official AWS CodeBuild repository for managed Docker images http://docs.aws.amazon.c…
Official AWS CodeBuild repository for managed Docker images http://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html - aws/aws-codebuild-docker-images
CodeBuild и ECS
Когда из CodeBuild нужно работать с другим аккаунтом, и потребуется переключаться в роль с помощью флажка
Это потому, что вместо обычного:
В секции профиля файла
И всё заработает.
Почему? Получается, видимо, потому, что CodeBuild под капотом использует ECS.
В принципе, логично, хоть и не видел подобного в документации (что тоже логично).
#CodeBuild
Когда из CodeBuild нужно работать с другим аккаунтом, и потребуется переключаться в роль с помощью флажка
--profile, учтите , что обычный вариант не сработает и будет давать ошибку:Error when retrieving credentials from Ec2InstanceMetadata: No credentials found in credential_source referenced in profile ***Это потому, что вместо обычного:
credential_source = Ec2InstanceMetadataВ секции профиля файла
~/.aws/config нужно использовать:credential_source = EcsContainerИ всё заработает.
Почему? Получается, видимо, потому, что CodeBuild под капотом использует ECS.
В принципе, логично, хоть и не видел подобного в документации (что тоже логично).
#CodeBuild
Telegram
aws_notes
Чтобы запустить #aws_cli команду для другого аккаунта, нужно сначала добавить в ~/.aws/config профиль типа:
[profile devops-codecommit]
role_arn = arn:aws:iam::123456789012:role/codecommit-role
credential_source = Ec2InstanceMetadata
Параметры:
devops-codecommit…
[profile devops-codecommit]
role_arn = arn:aws:iam::123456789012:role/codecommit-role
credential_source = Ec2InstanceMetadata
Параметры:
devops-codecommit…
Достаточно простая, но хорошая статейка о том, когда нужно что-то автоматизировать, а переписывать под Лямду не получается (дольше, сложней или просто лень), то нужно помнить про CodeBuild.
В отличие от Лямбды, CodeBuild может просто выполнять длительные процедуры, не в такой мере, однако также экономный, но главное — там можно привычно башить!
https://aws.amazon.com/blogs/devops/using-aws-codebuild-to-execute-administrative-tasks/
Сам использую CodeBuild для всевозможных задач — от разовых до постоянно-периодичных. Крайне удобно, минимальный порог входа, максимальная отдача.
#CodeBuild
В отличие от Лямбды, CodeBuild может просто выполнять длительные процедуры, не в такой мере, однако также экономный, но главное — там можно привычно башить!
https://aws.amazon.com/blogs/devops/using-aws-codebuild-to-execute-administrative-tasks/
Сам использую CodeBuild для всевозможных задач — от разовых до постоянно-периодичных. Крайне удобно, минимальный порог входа, максимальная отдача.
#CodeBuild
Amazon
Using AWS CodeBuild to execute administrative tasks | Amazon Web Services
This article is a guest post from AWS Serverless Hero Gojko Adzic. At MindMup, we started using AWS CodeBuild to quickly lift and shift support tasks to the cloud. MindMup is a collaborative mind-mapping tool, used by millions of teachers and students to…
У CodeBuild есть возможность сохранять результаты тестов — Test Reports:
https://docs.aws.amazon.com/codebuild/latest/userguide/test-reporting.html
В Test Reports есть поддержка JUnit, Cucumber, TestNG и TRX форматов, история хранится 30 дней в самом сервисе, а чтобы больше - нужно закидывать на S3.
Пример конфигурации в блоге:
https://aws.amazon.com/blogs/devops/test-reports-with-aws-codebuild/
#CodeBuild
https://docs.aws.amazon.com/codebuild/latest/userguide/test-reporting.html
В Test Reports есть поддержка JUnit, Cucumber, TestNG и TRX форматов, история хранится 30 дней в самом сервисе, а чтобы больше - нужно закидывать на S3.
Пример конфигурации в блоге:
https://aws.amazon.com/blogs/devops/test-reports-with-aws-codebuild/
#CodeBuild
CodeBuild + SSM
Чтобы отладить что-то в CodeBuild можно использовать SSM Session Manager:
https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html
То есть можно тормознуть процесс сборки CodeBuild с помощью вставки
#CodeBuild #SSM
Чтобы отладить что-то в CodeBuild можно использовать SSM Session Manager:
https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html
То есть можно тормознуть процесс сборки CodeBuild с помощью вставки
codebuild-breakpoint, после приконнектиться через SSM, посмотреть на местности, что не так и после продолжить билд с помощью команды codebuild-resume.#CodeBuild #SSM
Amazon
View a running build in Session Manager - AWS CodeBuild
Use Session Manager to view a running CodeBuild build.
Запустить билды в CodeBuild можно оптом (
https://docs.aws.amazon.com/codebuild/latest/userguide/batch-build.html
Есть варианты запустить последовательно (batch-graph), параллельно (batch-list) и с разными наборами переменных (batch-matrix).
Можно переоределить настройки и переменные для нужного "под-билда" и задать опцию, чтобы, например, все параллельные билды падали, когда какой-то из них уже упал (чтобы длительные операции не ели зря деньги).
Задать нужные настройки и запустить оптом CodeBuild можно из CodePipeline:
https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html
#CodeBuild #CodePipeline
batch):https://docs.aws.amazon.com/codebuild/latest/userguide/batch-build.html
Есть варианты запустить последовательно (batch-graph), параллельно (batch-list) и с разными наборами переменных (batch-matrix).
Можно переоределить настройки и переменные для нужного "под-билда" и задать опцию, чтобы, например, все параллельные билды падали, когда какой-то из них уже упал (чтобы длительные операции не ели зря деньги).
batch: fast-fail: trueЗадать нужные настройки и запустить оптом CodeBuild можно из CodePipeline:
https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html
#CodeBuild #CodePipeline
Обнаружив ошибку
Которая обозначает, что превышен лимит для вытягивания публичных образов из докерхаба, то решить вопрос можно, добавив аутентификацию:
https://aws.amazon.com/blogs/devops/how-to-use-docker-images-from-a-private-registry-in-aws-codebuild-for-your-build-environment/
Для чего потребуется создать секрет, прописав его
https://docs.aws.amazon.com/codebuild/latest/userguide/sample-private-registry.html#private-registry-sample-create-project
#CodeBuild
CannotPullContainerError в логах CodeBuild:Unable to pull customers container image: toomanyrequests. You have reached your pull rate limit.You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit (status code: BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE)Которая обозначает, что превышен лимит для вытягивания публичных образов из докерхаба, то решить вопрос можно, добавив аутентификацию:
https://aws.amazon.com/blogs/devops/how-to-use-docker-images-from-a-private-registry-in-aws-codebuild-for-your-build-environment/
Для чего потребуется создать секрет, прописав его
ARN в CodeBuild. Для получения секрета нужно добавить сервисной роли права на secretsmanager:GetSecretValue:https://docs.aws.amazon.com/codebuild/latest/userguide/sample-private-registry.html#private-registry-sample-create-project
#CodeBuild
Публичный CodeBuild:
https://aws.amazon.com/blogs/devops/introducing-public-builds-for-aws-codebuild/
Давно востребованная возможность делать результаты (артефакты/логи) CodeBuild публибличными.
#CodeBuild
https://aws.amazon.com/blogs/devops/introducing-public-builds-for-aws-codebuild/
Давно востребованная возможность делать результаты (артефакты/логи) CodeBuild публибличными.
#CodeBuild
Amazon
Introducing public builds for AWS CodeBuild | Amazon Web Services
Using AWS CodeBuild, you can now share both the logs and the artifacts produced by CodeBuild projects. This blog post explains how to configure an existing CodeBuild project to enable public builds. AWS CodeBuild is a fully managed continuous integration…
CI/CD: CodeCommit + CodeBuild + CodePipeline + Terraform
https://www.tecracer.com/blog/2023/05/terraform-ci/cd-pipelines-use-aws-codepipeline-to-build-fully-managed-deployment-pipelines-for-terraform..html
Хорошая задумка, мне нравится. Похожую схему использую много лет, лишь вместо CodePipeline у меня Jenkins и KICS в качестве SAST.
#CodeBuild #CodePipeline #Terraform
https://www.tecracer.com/blog/2023/05/terraform-ci/cd-pipelines-use-aws-codepipeline-to-build-fully-managed-deployment-pipelines-for-terraform..html
Хорошая задумка, мне нравится. Похожую схему использую много лет, лишь вместо CodePipeline у меня Jenkins и KICS в качестве SAST.
#CodeBuild #CodePipeline #Terraform
❤8
🆕 CodeBuild + GitHub Actions:
https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html
You can use an action runner to run GitHub Actions within CodeBuild. This can be done by adding
#CodeBuild #GitHub
https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html
You can use an action runner to run GitHub Actions within CodeBuild. This can be done by adding
steps to any phase in your buildspec file.#CodeBuild #GitHub
👍5🎉1
CodeBuild + GitHub Actions self-hosted runners 🎉
https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html
CodeBuild's integration with GitHub Actions webhooks offers all compute platforms, including Lambda, GPU-enhanced and Arm-based instances.
#CodeBuild #GitHub_Actions
https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html
CodeBuild's integration with GitHub Actions webhooks offers all compute platforms, including Lambda, GPU-enhanced and Arm-based instances.
#CodeBuild #GitHub_Actions
👍4
CodeBuild + macOS
https://aws.amazon.com/blogs/aws/add-macos-to-your-continuous-integration-pipelines-with-aws-codebuild/
▫️ Apple M2
▫️ macOS 14 Sonoma
⚠️ $0.02 per minute but 24h minimum (28.8$+) 😐
#CodeBuild
https://aws.amazon.com/blogs/aws/add-macos-to-your-continuous-integration-pipelines-with-aws-codebuild/
▫️ Apple M2
▫️ macOS 14 Sonoma
⚠️ $0.02 per minute but 24h minimum (28.8$+) 😐
#CodeBuild
3😁9🤮4🤡3👍1
CodeBuild Docker Server — building Docker images in seconds!
https://aws.amazon.com/blogs/aws/accelerate-ci-cd-pipelines-with-the-new-aws-codebuild-docker-server-capability/
BUT — you'll be charged like for a regular EC2 instance (around $50/month) unless you explicitly disable the CodeBuild Docker Server feature — even if you don’t run any builds.
So use it with caution.
Or better: modify your project settings before the first build of the day to reduce costs.
Note: The first run takes the usual time, and only subsequent builds benefit from layer caching to speed things up.
#CodeBuild
https://aws.amazon.com/blogs/aws/accelerate-ci-cd-pipelines-with-the-new-aws-codebuild-docker-server-capability/
BUT — you'll be charged like for a regular EC2 instance (around $50/month) unless you explicitly disable the CodeBuild Docker Server feature — even if you don’t run any builds.
So use it with caution.
Or better: modify your project settings before the first build of the day to reduce costs.
Note: The first run takes the usual time, and only subsequent builds benefit from layer caching to speed things up.
#CodeBuild
👍7