이벤트 트리거 생성 CodeDeploy - AWS CodeDeploy

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이벤트 트리거 생성 CodeDeploy

AWS CodeDeploy 배포 또는 인스턴스 이벤트에 대해 Amazon Simple Notification Service(Amazon SNS) 주제를 게시하는 트리거를 생성할 수 있습니다. 그런 다음, 해당 이벤트가 발생하면 연결된 주제의 모든 구독자가 주제에 지정된 엔드포인트(예: SMS 메시지 또는 이메일 메시지)를 통해 알림을 수신합니다. Amazon SNS 주제를 구독하기 위한 다양한 방법을 제공합니다.

트리거를 생성하기 전에 트리거가 가리키도록 Amazon SNS 주제를 설정해야 합니다. 자세한 내용은 주제 만들기를 참조하세요. 주제를 만들면 목적을 식별하는 이름을 Topic-group-us-west-3-deploy-fail 또는 Topic-group-project-2-instance-stop 등의 형식으로 지정하는 것이 좋습니다.

또한 트리거에 대한 알림을 전송하려면 먼저 Amazon SNS 권한을 CodeDeploy 서비스 역할에 부여해야 합니다. 자세한 내용은 CodeDeploy 서비스 역할에 Amazon SNS 권한 부여을 참조하세요.

주제를 만든 후에는 구독자를 추가할 수 있습니다. 주제 생성, 관리 및 구독에 대한 자세한 내용은 Amazon Simple Notification Service란 무엇입니까?을 참조하세요.

CodeDeploy 이벤트에 대한 알림을 보내는 트리거를 생성하십시오 (콘솔).

CodeDeploy 콘솔을 사용하여 CodeDeploy 이벤트에 대한 트리거를 만들 수 있습니다. 설정 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었는지 확인하기 위해 테스트 알림 메시지가 전송됩니다.

이벤트 트리거를 만들려면 CodeDeploy
  1. 에서 AWS Management Console AWS CodeDeploy 콘솔을 엽니다.

  2. https://console.aws.amazon.com/codedeploy 에서 AWS Management Console 로그인하고 CodeDeploy 콘솔을 엽니다.

    참고

    시작하기 CodeDeploy에서 설정한 사용자와 동일한 사용자로 로그인합니다.

  3. 탐색 창에서 배포를 확장하고 애플리케이션을 선택합니다.

  4. 애플리케이션 페이지에서 트리거를 추가할 배포 그룹과 연결된 애플리케이션 이름을 선택합니다.

  5. 애플리케이션 세부 정보 페이지에서 트리거를 추가할 배포 그룹을 선택합니다.

  6. 편집을 선택합니다.

  7. 고급 옵션을 확장합니다.

  8. 트리거 영역에서 트리거 생성을 선택합니다.

  9. 배포 트리거 생성 창에서 다음을 수행합니다.

    1. 트리거 이름에 용도를 쉽게 식별할 수 있도록 트리거 이름을 입력합니다. Trigger-group-us-west-3-deploy-fail 또는 Trigger-group-eu-central-instance-stop 등의 형식이 좋습니다.

    2. 이벤트에서 Amazon SNS 주제가 알림을 전송하도록 트리거할 이벤트 유형을 선택합니다.

    3. Amazon SNS 주제에서 이 트리거에 대한 알림을 전송하기 위해 만든 주제 이름을 선택합니다.

    4. 트리거 생성을 선택합니다. CodeDeploy Amazon SNS 주제 간에 CodeDeploy 액세스를 올바르게 구성했는지 확인하기 위해 테스트 알림을 보냅니다. 선택한 주제 엔드포인트 유형에 따라 주제를 구독하는 경우, SMS 메시지 또는 이메일 메시지로 확인 메시지가 수신됩니다.

  10. 변경 사항 저장를 선택합니다.

CodeDeploy 이벤트에 대한 알림을 전송하는 트리거 생성 (CLI)

CLI를 사용하면 배포 그룹을 만들 때 트리거를 포함하거나 기본 배포 그룹에 트리거를 추가할 수 있습니다.

새 배포 그룹에 대한 알림을 전송하는 트리거를 만들려면

JSON 파일을 생성하여 배포 그룹을 구성한 다음 옵션을 사용하여 create-deployment-group명령을 실행합니다. --cli-input-json

--generate-cli-skeleton 옵션을 통해 JSON 형식의 사본을 가져와 일반 텍스트 편집기에 필수 값을 입력하면 JSON 파일을 아주 쉽게 만들 수 있습니다.

  1. 다음 명령을 실행한 후 일반 텍스트 편집기에 결과를 복사합니다.

    aws deploy create-deployment-group --generate-cli-skeleton
  2. 기존 CodeDeploy 애플리케이션의 이름을 출력에 추가합니다.

    { "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ] }
  3. 구성할 파라미터 값을 입력합니다.

    create-deployment-group명령을 사용할 때는 최소한 다음 매개 변수에 대한 값을 제공해야 합니다.

    • applicationName: 이미 계정에 생성된 애플리케이션 이름

    • deploymentGroupName: 생성 중인 배포 그룹의 이름

    • serviceRoleArn: 계정에 설정된 기존 서비스 역할의 ARN입니다. CodeDeploy 자세한 내용은 2단계: 서비스 역할 만들기 CodeDeploy을 참조하세요.

    triggerConfigurations 섹션에서 다음 파라미터 값을 입력합니다.

    • triggerName: 쉽게 식별할 수 있도록 트리거 이름을 지정합니다. Trigger-group-us-west-3-deploy-fail 또는 Trigger-group-eu-central-instance-stop 등의 형식이 좋습니다.

    • triggerTargetArn: 트리거에 연결하기 위해 생성한 Amazon SNS주제의 ARN으로, 형식은 arn:aws:sns:us-east-2:444455556666:NewTestTopic입니다.

    • triggerEvents: 알림을 트리거하려는 이벤트 유형 하나 이상의 이벤트 유형을 지정할 수 있으며, 이벤트 유형 이름이 여러 개인 경우 쉼표로 구분합니다(예: "triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]). 하나 이상의 이벤트 유형을 추가할 때, 해당되는 모든 유형 알림이 각기 다른 주제가 아닌 지정된 주제로 전송됩니다. 다음 이벤트 유형 중에서 선택할 수 있습니다.

      • DeploymentStart

      • DeploymentSuccess

      • DeploymentFailure

      • DeploymentStop

      • DeploymentRollback

      • DeploymentReady (블루/그린 배포의 대체 인스턴스에만 적용)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (블루/그린 배포의 대체 인스턴스에만 적용)

    다음 구성 예제는 TestApp-us-east-2라는 애플리케이션에 대해 dep-group-ghi-789-2라는 배포 그룹을 생성하고, 배포가 시작, 성공 또는 실패할 때마다 알림 메시지를 전송하는 트리거를 생성합니다.

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "deploymentGroupName": "dep-group-ghi-789-2", "ec2TagFilters": [ { "Key": "Name", "Value": "Project-ABC", "Type": "KEY_AND_VALUE" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "triggerConfigurations": [ { "triggerName": "Trigger-group-us-east-2", "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ] } ] }
  4. 업데이트를 JSON 파일로 저장한 후 create-deployment-group 명령을 실행할 때 --cli-input-json 옵션을 사용하여 해당 파일을 호출합니다.

    중요

    파일 이름 앞에 file://를 포함해야 합니다. 이 명령에 필수적입니다.

    aws deploy create-deployment-group --cli-input-json file://filename.json

    만들기 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었음을 나타내는 테스트 알림 메시지가 수신됩니다.

기존 배포 그룹에 대한 알림을 전송하는 트리거를 만들려면

를 사용하여 기존 배포 그룹에 CodeDeploy 이벤트 트리거를 AWS CLI 추가하려면 배포 그룹을 업데이트하는 JSON 파일을 만든 다음 옵션을 update-deployment-group사용하여 명령을 실행합니다. --cli-input-json

get-deployment-group 명령을 실행하여 배포 그룹 구성의 사본을 JSON 형식으로 가져온 다음 일반 텍스트 편집기에서 파라미터 값을 업데이트하면 JSON 파일을 아주 쉽게 만들 수 있습니다.

  1. 다음 명령을 실행한 후 일반 텍스트 편집기에 결과를 복사합니다.

    aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
  2. 출력에서 다음을 삭제합니다.

    • 출력 시작 부분에서 { "deploymentGroupInfo":를 삭제합니다.

    • 출력 끝부분에서 }를 삭제합니다.

    • deploymentGroupId을 포함하는 행을 삭제합니다.

    • deploymentGroupName을 포함하는 행을 삭제합니다.

    텍스트 파일의 내용이 다음과 같아야 합니다.

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  3. triggerConfigurations 섹션에, triggerEvents, triggerTargetArntriggerName 파라미터에 대한 데이터를 추가합니다. 트리거 구성 파라미터에 대한 자세한 내용은 을 참조하십시오. TriggerConfig

    텍스트 파일의 내용이 다음과 같아야 합니다. 이 코드는 배포가 시작, 성공 또는 실패할 때마다 전송할 알림 메시지를 표시합니다.

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [ { "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ], "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  4. 업데이트를 JSON 파일로 저장한 다음 --cli-input-json 옵션을 사용하여 update-deployment-group명령을 실행합니다. --current-deployment-group-name 옵션을 포함하고 filename을 JSON 파일 이름으로 바꿔야 합니다.

    중요

    파일 이름 앞에 file://를 포함해야 합니다. 이 명령에 필수적입니다.

    aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

    만들기 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었음을 나타내는 테스트 알림 메시지가 수신됩니다.