У меня проблемы с AWS CloudWatch Events.
Я создаю конвейер CI CodePipeline с репозиторием CodeCommit в качестве источника, проект CodeBuild в качестве фазы сборки / тестирования (затем он развертывается в Lambda, но проблема не существует).
У нас есть несколько проектов, и мы собираемся продвинуть несколько других проектов. Итак, я создал сценарий, который управляет содержимым AWS CI (т.е. создает конвейер, проект CodeBuild, ... И правило событий CloudWatch, связанное с конвейером).
Первый раз, когда я нажимаю свой код, он работает. Но затем процесс перестает вызываться нажатием на CodeCommit.
Я нашел решение (но НЕ то, которое мне нужно): мне просто нужно изменить конвейер, изменить сцену (Source), ничего не трогать и сохранить нулевую модификацию: и это работает (перед сохранением спрашивает авторизация для создания правила CloudWatch Events, связанного с этим конвейером).
Кто-нибудь сталкивался с этой проблемой? Что вы сделали, чтобы обойти это?
Я действительно хочу сделать 100% автоматизированный CI, я не хочу посещать Консоль AWS каждый раз, когда моя команда создает новый репозиторий или помещает новую ветку в существующий репозиторий.
РЕДАКТИРОВАТЬ:
Вот JSON моего правила CloudWatch Events:
{
"Name": "company-ci_codepipeline_project-stage",
"EventPattern": "cf. second JSON",
"State": "ENABLED",
"Arn": "arn:aws:events:region:xxx:rule/company-ci_codepipeline_project-stage",
"Description": "CloudWatch Events rule to automatically trigger the needed pipeline from every push to project repository, on the stage branch on CodeCommit."
}
А вот и EventPattern
JSON:
{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit repository state change"
],
"resources": [
"arn:aws:codecommit:region:xxx:project"
],
"detail": {
"event": [
"referenceCreated",
"referenceUpdated"
],
"referenceType": [
"branch"
],
"referenceName": [
"stage"
]
}
}