Amazon ECS 서비스 배포 상태 변경 이벤트

Amazon ECS 서비스 배포 상태 변경 이벤트

Amazon ECS는 detail type이 ECS Deployment State Change인 서비스 배포 변경 상태 이벤트를 전송해요. 다음은 Amazon ECS 서비스 배포 상태 변경 이벤트용 EventBridge 규칙을 만들 때 사용하는 이벤트 패턴입니다.

출처: 문서

본문

EventBridge 규칙을 만드는 방법에 대한 자세한 내용은 Amazon EventBridge 사용자 가이드의 Amazon EventBridge 시작하기(Getting started with Amazon EventBridge)를 참고하세요.

{
    "source": [
        "aws.ecs"
    ],
    "detail-type": [
        "ECS Deployment State Change"
    ]
}

Amazon ECS는 INFO와 ERROR 이벤트 유형으로 이벤트를 전송해요. 자세한 내용은 Amazon ECS 서비스 작업 이벤트(Amazon ECS service action events)를 참고하세요.

다음은 서비스 배포 상태 변경 이벤트들입니다.

  • SERVICE_DEPLOYMENT_IN_PROGRESS — 서비스 배포가 진행 중이에요. 이 이벤트는 초기 배포와 롤백 배포 둘 다에서 전송됩니다.
  • SERVICE_DEPLOYMENT_COMPLETED — 서비스 배포가 완료됐어요. 이 이벤트는 배포 후 서비스가 안정 상태(steady state)에 도달하면 한 번 전송됩니다.
  • SERVICE_DEPLOYMENT_FAILED — 서비스 배포가 실패했어요. 이 이벤트는 배포 서킷 브레이커(deployment circuit breaker) 로직이 켜져 있는 서비스에 대해 전송됩니다.

서비스 배포 진행 중 이벤트 예시

서비스 배포 진행 중 이벤트는 초기 배포와 롤백 배포가 둘 다 시작될 때 전달돼요. 둘의 차이는 reason 필드에 있어요. EventBridge 파라미터에 대한 자세한 내용은 Amazon EventBridge 사용자 가이드의 AWS 서비스 이벤트 메타데이터(AWS service event metadata)를 참고하세요.

다음은 초기 배포가 시작될 때의 예시 출력입니다:

{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3a6EXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "INFO",
        "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment deploymentId in progress."
   }
}

다음은 롤백 배포가 시작될 때의 예시 출력입니다. reason 필드는 서비스가 롤백되는 대상 배포의 ID를 제공해요.

{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "INFO",
        "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment circuit breaker: rolling back to deploymentId deploymentID."
   }
}

서비스 배포 완료 이벤트 예시

서비스 배포 완료 상태 이벤트는 다음 형식으로 전달돼요. 자세한 내용은 태스크 교체로 Amazon ECS 서비스 배포하기(Deploy Amazon ECS services by replacing tasks)를 참고하세요.

{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "INFO",
        "eventName": "SERVICE_DEPLOYMENT_COMPLETED",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment deploymentID completed."
   }
}

서비스 배포 실패 이벤트 예시

서비스 배포 실패 상태 이벤트는 다음 형식으로 전달돼요. 서비스 배포 실패 상태 이벤트는 배포 서킷 브레이커 로직이 켜져 있는 서비스에 대해서만 전송됩니다. 자세한 내용은 태스크 교체로 Amazon ECS 서비스 배포하기를 참고하세요.

{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "ERROR",
        "eventName": "SERVICE_DEPLOYMENT_FAILED",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment circuit breaker: task failed to start."
   }
}