Чтобы прокинуть #IAM роль (инстанса) внутрь докера (актуально, например, при запуске тестов в докере на #CodeBuild), нужно использовать переменную AWS_CONTAINER_CREDENTIALS_RELATIVE_URI:
→ https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versions
→ https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
docker-compose run --name MS -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI app bash -c "python manage.py test -v --junit-report=/report.xml"
→ https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versions
→ https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
Amazon
Troubleshooting AWS CodeBuild - AWS CodeBuild
Provides troubleshooting information for AWS CodeBuild.
AWS CodeBuild + Secrets Manager
В CodeBuild завезли родную поддержку секретов:
https://aws.amazon.com/about-aws/whats-new/2019/11/aws-codebuild-adds-support-for-aws-secrets-manager/
Свои секреты можно добавить в раздел env → secrets-manager файла buildspec.yml или через консоль (см. ниже картинку).
#CodeBuild #Secrets
В CodeBuild завезли родную поддержку секретов:
https://aws.amazon.com/about-aws/whats-new/2019/11/aws-codebuild-adds-support-for-aws-secrets-manager/
Свои секреты можно добавить в раздел env → secrets-manager файла buildspec.yml или через консоль (см. ниже картинку).
#CodeBuild #Secrets
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…