AWS CLI를 사용한 CodeDeploy 예시 - AWS Command Line Interface

AWS CLI를 사용한 CodeDeploy 예시

다음 코드 예시에서는 CodeDeploy와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

주제

작업

다음 코드 예시에서는 add-tags-to-on-premises-instances의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스에 태그 추가

다음 add-tags-to-on-premises-instances 예시에서는 AWS CodeDeploy에서 동일한 온프레미스 인스턴스 태그를 2개의 온프레미스 인스턴스에 연결합니다. 온프레미스 인스턴스가 AWS CodeDeploy에 등록되지는 않습니다.

aws deploy add-tags-to-on-premises-instances \ --instance-names AssetTag12010298EX AssetTag23121309EX \ --tags Key=Name,Value=CodeDeployDemo-OnPrem

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 batch-get-application-revisions의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 개정 정보 가져오기

다음 batch-get-application-revisions 예시에서는 GitHub 리포지토리에 저장된 지정된 개정의 정보를 가져옵니다.

aws deploy batch-get-application-revisions \ --application-name my-codedeploy-application \ --revisions "[{\"gitHubLocation\": {\"commitId\": \"fa85936EXAMPLEa31736c051f10d77297EXAMPLE\",\"repository\": \"my-github-token/my-repository\"},\"revisionType\": \"GitHub\"}]"

출력:

{ "revisions": [ { "genericRevisionInfo": { "description": "Application revision registered by Deployment ID: d-A1B2C3111", "lastUsedTime": 1556912355.884, "registerTime": 1556912355.884, "firstUsedTime": 1556912355.884, "deploymentGroups": [] }, "revisionLocation": { "revisionType": "GitHub", "gitHubLocation": { "commitId": "fa85936EXAMPLEa31736c051f10d77297EXAMPLE", "repository": "my-github-token/my-repository" } } } ], "applicationName": "my-codedeploy-application", "errorMessage": "" }

자세한 내용은 AWS CodeDeploy API 참조BatchGetApplicationRevisions를 참조하세요.

다음 코드 예시에서는 batch-get-applications의 사용 방법을 보여줍니다.

AWS CLI

여러 애플리케이션에 대한 정보 가져오기

다음 batch-get-applications 예시에서는 사용자의 AWS 계정에 연결된 여러 애플리케이션에 대한 정보를 표시합니다.

aws deploy batch-get-applications --application-names WordPress_App MyOther_App

출력:

{ "applicationsInfo": [ { "applicationName": "WordPress_App", "applicationId": "d9dd6993-f171-44fa-a811-211e4EXAMPLE", "createTime": 1407878168.078, "linkedToGitHub": false }, { "applicationName": "MyOther_App", "applicationId": "8ca57519-31da-42b2-9194-8bb16EXAMPLE", "createTime": 1407453571.63, "linkedToGitHub": false } ] }

다음 코드 예시에서는 batch-get-deployment-groups의 사용 방법을 보여줍니다.

AWS CLI

하나 이상의 배포 그룹에 대한 정보 가져오기

다음 batch-get-deployment-groups 예시에서는 지정된 CodeDeploy 애플리케이션에 연결된 두 배포 그룹에 대한 정보를 가져옵니다.

aws deploy batch-get-deployment-groups \ --application-name my-codedeploy-application \ --deployment-group-names "[\"my-deployment-group-1\",\"my-deployment-group-2\"]"

출력:

{ "deploymentGroupsInfo": [ { "deploymentStyle": { "deploymentOption": "WITHOUT_TRAFFIC_CONTROL", "deploymentType": "IN_PLACE" }, "autoRollbackConfiguration": { "enabled": false }, "onPremisesTagSet": { "onPremisesTagSetList": [] }, "serviceRoleArn": "arn:aws:iam::123456789012:role/CodeDeployServiceRole", "lastAttemptedDeployment": { "endTime": 1556912366.415, "status": "Failed", "createTime": 1556912355.884, "deploymentId": "d-A1B2C3111" }, "autoScalingGroups": [], "deploymentGroupName": "my-deployment-group-1", "ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Value": "my-EC2-instance", "Key": "Name" } ] ] }, "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-11111example", "triggerConfigurations": [], "applicationName": "my-codedeploy-application", "computePlatform": "Server", "deploymentConfigName": "CodeDeployDefault.AllAtOnce" }, { "deploymentStyle": { "deploymentOption": "WITHOUT_TRAFFIC_CONTROL", "deploymentType": "IN_PLACE" }, "autoRollbackConfiguration": { "enabled": false }, "onPremisesTagSet": { "onPremisesTagSetList": [] }, "serviceRoleArn": "arn:aws:iam::123456789012:role/CodeDeployServiceRole", "autoScalingGroups": [], "deploymentGroupName": "my-deployment-group-2", "ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Value": "my-EC2-instance", "Key": "Name" } ] ] }, "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-22222example", "triggerConfigurations": [], "applicationName": "my-codedeploy-application", "computePlatform": "Server", "deploymentConfigName": "CodeDeployDefault.AllAtOnce" } ], "errorMessage": "" }

자세한 내용은 AWS CodeDeploy API 참조BatchGetDeploymentGroups를 참조하세요.

다음 코드 예시에서는 batch-get-deployment-targets의 사용 방법을 보여줍니다.

AWS CLI

배포에 연결된 대상 가져오기

다음 batch-get-deployment-targets 예시에서는 지정된 배포에 연결된 대상 중 하나에 대한 정보를 반환합니다.

aws deploy batch-get-deployment-targets \ --deployment-id "d-1A2B3C4D5" \ --target-ids "i-01a2b3c4d5e6f1111"

출력:

{ "deploymentTargets": [ { "deploymentTargetType": "InstanceTarget", "instanceTarget": { "lifecycleEvents": [ { "startTime": 1556918592.162, "lifecycleEventName": "ApplicationStop", "status": "Succeeded", "endTime": 1556918592.247, "diagnostics": { "scriptName": "", "errorCode": "Success", "logTail": "", "message": "Succeeded" } }, { "startTime": 1556918593.193, "lifecycleEventName": "DownloadBundle", "status": "Succeeded", "endTime": 1556918593.981, "diagnostics": { "scriptName": "", "errorCode": "Success", "logTail": "", "message": "Succeeded" } }, { "startTime": 1556918594.805, "lifecycleEventName": "BeforeInstall", "status": "Succeeded", "endTime": 1556918681.807, "diagnostics": { "scriptName": "", "errorCode": "Success", "logTail": "", "message": "Succeeded" } } ], "targetArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a2b3c4d5e6f1111", "deploymentId": "d-1A2B3C4D5", "lastUpdatedAt": 1556918687.504, "targetId": "i-01a2b3c4d5e6f1111", "status": "Succeeded" } } ] }

자세한 내용은 AWS CodeDeploy API 참조BatchGetDeploymentTargets를 참조하세요.

다음 코드 예시에서는 batch-get-deployments의 사용 방법을 보여줍니다.

AWS CLI

여러 배포에 대한 정보 가져오기

다음 batch-get-deployments 예시에서는 사용자의 AWS 계정에 연결된 여러 배포에 대한 정보를 표시합니다.

aws deploy batch-get-deployments --deployment-ids d-A1B2C3111 d-A1B2C3222

출력:

{ "deploymentsInfo": [ { "applicationName": "WordPress_App", "status": "Failed", "deploymentOverview": { "Failed": 0, "InProgress": 0, "Skipped": 0, "Succeeded": 1, "Pending": 0 }, "deploymentConfigName": "CodeDeployDefault.OneAtATime", "creator": "user", "deploymentGroupName": "WordPress_DG", "revision": { "revisionType": "S3", "s3Location": { "bundleType": "zip", "version": "uTecLusEXAMPLEFXtfUcyfV8bEXAMPLE", "bucket": "CodeDeployDemoBucket", "key": "WordPressApp.zip" } }, "deploymentId": "d-A1B2C3111", "createTime": 1408480721.9, "completeTime": 1408480741.822 }, { "applicationName": "MyOther_App", "status": "Failed", "deploymentOverview": { "Failed": 1, "InProgress": 0, "Skipped": 0, "Succeeded": 0, "Pending": 0 }, "deploymentConfigName": "CodeDeployDefault.OneAtATime", "creator": "user", "errorInformation": { "message": "Deployment failed: Constraint default violated: No hosts succeeded.", "code": "HEALTH_CONSTRAINTS" }, "deploymentGroupName": "MyOther_DG", "revision": { "revisionType": "S3", "s3Location": { "bundleType": "zip", "eTag": "\"dd56cfdEXAMPLE8e768f9d77fEXAMPLE\"", "bucket": "CodeDeployDemoBucket", "key": "MyOtherApp.zip" } }, "deploymentId": "d-A1B2C3222", "createTime": 1409764576.589, "completeTime": 1409764596.101 } ] }

다음 코드 예시에서는 batch-get-on-premises-instances의 사용 방법을 보여줍니다.

AWS CLI

하나 이상의 온프레미스 인스턴스에 대한 정보 가져오기

다음 batch-get-on-premises-instances 예시에서는 2개의 온프레미스 인스턴스에 대한 정보를 가져옵니다.

aws deploy batch-get-on-premises-instances --instance-names AssetTag12010298EX AssetTag23121309EX

출력:

{ "instanceInfos": [ { "iamUserArn": "arn:aws:iam::123456789012:user/AWS/CodeDeploy/AssetTag12010298EX", "tags": [ { "Value": "CodeDeployDemo-OnPrem", "Key": "Name" } ], "instanceName": "AssetTag12010298EX", "registerTime": 1425579465.228, "instanceArn": "arn:aws:codedeploy:us-west-2:123456789012:instance/AssetTag12010298EX_4IwLNI2Alh" }, { "iamUserArn": "arn:aws:iam::123456789012:user/AWS/CodeDeploy/AssetTag23121309EX", "tags": [ { "Value": "CodeDeployDemo-OnPrem", "Key": "Name" } ], "instanceName": "AssetTag23121309EX", "registerTime": 1425595585.988, "instanceArn": "arn:aws:codedeploy:us-west-2:80398EXAMPLE:instance/AssetTag23121309EX_PomUy64Was" } ] }

다음 코드 예시에서는 continue-deployment의 사용 방법을 보여줍니다.

AWS CLI

지정된 대기 시간이 경과할 때까지 기다리지 않고 트래픽 경로 변경 시작

다음 continue-deployment 예시에서는 트래픽을 대체 환경의 인스턴스로 이동할 준비가 된 원래 환경의 인스턴스에서 트래픽 경로를 변경하기 시작합니다.

aws deploy continue-deployment \ --deployment-id "d-A1B2C3111" \ --deployment-wait-type "READY_WAIT"

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS CodeDeploy API 참조ContinueDeployment를 참조하세요.

다음 코드 예시에서는 create-application의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 생성

다음 create-application 예시에서는 애플리케이션을 생성하고 사용자의 AWS 계정에 연결합니다.

aws deploy create-application --application-name MyOther_App

출력:

{ "applicationId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" }
  • API 세부 정보는 AWS CLI 명령 참조CreateApplication을 참조하세요.

다음 코드 예시에서는 create-deployment-config의 사용 방법을 보여줍니다.

AWS CLI

사용자 지정 배포 구성 생성

다음 create-deployment-config 예시에서는 사용자 지정 배포 구성을 생성하고 사용자의 AWS 계정에 연결합니다.

aws deploy create-deployment-config \ --deployment-config-name ThreeQuartersHealthy \ --minimum-healthy-hosts type=FLEET_PERCENT,value=75

출력:

{ "deploymentConfigId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" }

다음 코드 예시에서는 create-deployment-group의 사용 방법을 보여줍니다.

AWS CLI

배포 그룹 생성

다음 create-deployment-group 예시에서는 배포 그룹을 생성하고 지정된 애플리케이션 및 사용자의 AWS 계정에 연결합니다.

aws deploy create-deployment-group \ --application-name WordPress_App \ --auto-scaling-groups CodeDeployDemo-ASG \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DG \ --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \ --service-role-arn arn:aws:iam::123456789012:role/CodeDeployDemoRole

출력:

{ "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" }

다음 코드 예시에서는 create-deployment의 사용 방법을 보여줍니다.

AWS CLI

예시 1: EC2/온프레미스 컴퓨팅 플랫폼을 사용하여 CodeDeploy 배포 생성

다음 create-deployment 예시에서는 배포를 생성하고 사용자의 AWS 계정에 연결합니다.

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DG \ --description "My demo deployment" \ --s3-location bucket=CodeDeployDemoBucket,bundleType=zip,eTag=dd56cfdEXAMPLE8e768f9d77fEXAMPLE,key=WordPressApp.zip

출력:

{ "deploymentId": "d-A1B2C3111" }

예시 2: Amazon ECS 컴퓨팅 플랫폼을 사용하여 CodeDeploy 배포 생성

다음 create-deployment 예시에서는 다음 두 파일을 사용하여 Amazon ECS 서비스를 배포합니다.

create-deployment.json 파일의 콘텐츠:

{ "applicationName": "ecs-deployment", "deploymentGroupName": "ecs-deployment-dg", "revision": { "revisionType": "S3", "s3Location": { "bucket": "ecs-deployment-bucket", "key": "appspec.yaml", "bundleType": "YAML" } } }

그러면 이 파일은 ecs-deployment-bucket라는 S3 버킷에서 다음 appspec.yaml 파일을 가져옵니다.

version: 0.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "arn:aws:ecs:region:123456789012:task-definition/ecs-task-def:2" LoadBalancerInfo: ContainerName: "sample-app" ContainerPort: 80 PlatformVersion: "LATEST"

명령:

aws deploy create-deployment \ --cli-input-json file://create-deployment.json \ --region us-east-1

출력:

{ "deploymentId": "d-1234ABCDE" }

자세한 내용은 AWS CodeDeploy API 참조CreateDeployment를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateDeployment를 참조하세요.

다음 코드 예시에서는 delete-application의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 삭제

다음 delete-application 예시에서는 사용자의 AWS 계정에 연결된 지정된 애플리케이션을 삭제합니다.

aws deploy delete-application --application-name WordPress_App

이 명령은 출력을 생성하지 않습니다.

  • API 세부 정보는 AWS CLI 명령 참조DeleteApplication을 참조하세요.

다음 코드 예시에서는 delete-deployment-config의 사용 방법을 보여줍니다.

AWS CLI

배포 구성 삭제

다음 delete-deployment-config 예시에서는 사용자의 AWS 계정에 연결된 사용자 지정 배포 구성을 삭제합니다.

aws deploy delete-deployment-config --deployment-config-name ThreeQuartersHealthy

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 delete-deployment-group의 사용 방법을 보여줍니다.

AWS CLI

배포 그룹 삭제

다음 delete-deployment-group 예시에서는 지정된 애플리케이션에 연결된 배포 그룹을 삭제합니다.

aws deploy delete-deployment-group \ --application-name WordPress_App \ --deployment-group-name WordPress_DG

출력:

{ "hooksNotCleanedUp": [] }

다음 코드 예시에서는 delete-git-hub-account-token의 사용 방법을 보여줍니다.

AWS CLI

GitHub 계정 연결 삭제

다음 delete-git-hub-account-token 예시에서는 지정된 GitHub 계정의 연결을 삭제합니다.

aws deploy delete-git-hub-account-token --token-name my-github-account

출력:

{ "tokenName": "my-github-account" }

자세한 내용은 AWS CodeDeploy API 참조DeleteGitHubAccountToken을 참조하세요.

다음 코드 예시에서는 deregister-on-premises-instance의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스 등록 취소

다음 deregister-on-premises-instance 예시에서는 AWS CodeDeploy에서 온프레미스 인스턴스를 등록 취소하지만 해당 인스턴스에 연결된 IAM 사용자를 삭제하지 않으며 AWS CodeDeploy에서 온프레미스 인스턴스 태그의 연결을 해제하지도 않습니다. 또한 인스턴스에서 AWS CodeDeploy 에이전트를 제거하거나 인스턴스에서 온프레미스 구성 파일을 제거하지 않습니다.

aws deploy deregister-on-premises-instance --instance-name AssetTag12010298EX

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 deregister의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스 등록 취소

다음 deregister 예시에서는 AWS CodeDeploy에서 온프레미스 인스턴스의 등록을 취소합니다. 인스턴스에 연결된 IAM 사용자는 삭제되지 않습니다. AWS CodeDeploy에서 인스턴스의 온프레미스 태그를 연결 해제합니다. 인스턴스에서 AWS CodeDeploy 에이전트를 제거하거나 인스턴스에서 온프레미스 구성 파일을 제거하지는 않습니다.

aws deploy deregister \ --instance-name AssetTag12010298EX \ --no-delete-iam-user \ --region us-west-2

출력:

Retrieving on-premises instance information... DONE IamUserArn: arn:aws:iam::80398EXAMPLE:user/AWS/CodeDeploy/AssetTag12010298EX Tags: Key=Name,Value=CodeDeployDemo-OnPrem Removing tags from the on-premises instance... DONE Deregistering the on-premises instance... DONE Run the following command on the on-premises instance to uninstall the codedeploy-agent: aws deploy uninstall
  • API 세부 정보는 AWS CLI 명령 참조Deregister를 참조하세요.

다음 코드 예시에서는 get-application-revision의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 개정 정보 가져오기

다음 get-application-revision 예시에서는 지정된 애플리케이션에 연결된 애플리케이션 개정에 대한 정보를 표시합니다.

aws deploy get-application-revision \ --application-name WordPress_App \ --s3-location bucket=CodeDeployDemoBucket,bundleType=zip,eTag=dd56cfdEXAMPLE8e768f9d77fEXAMPLE,key=WordPressApp.zip

출력:

{ "applicationName": "WordPress_App", "revisionInfo": { "description": "Application revision registered by Deployment ID: d-A1B2C3111", "registerTime": 1411076520.009, "deploymentGroups": "WordPress_DG", "lastUsedTime": 1411076520.009, "firstUsedTime": 1411076520.009 }, "revision": { "revisionType": "S3", "s3Location": { "bundleType": "zip", "eTag": "dd56cfdEXAMPLE8e768f9d77fEXAMPLE", "bucket": "CodeDeployDemoBucket", "key": "WordPressApp.zip" } } }

다음 코드 예시에서는 get-application의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 정보 가져오기

다음 get-application 예시에서는 사용자의 AWS 계정에 연결된 애플리케이션의 정보를 표시합니다.

aws deploy get-application --application-name WordPress_App

출력:

{ "application": { "applicationName": "WordPress_App", "applicationId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "createTime": 1407878168.078, "linkedToGitHub": false } }
  • API 세부 정보는 AWS CLI 명령 참조GetApplication을 참조하세요.

다음 코드 예시에서는 get-deployment-config의 사용 방법을 보여줍니다.

AWS CLI

배포 구성 정보 가져오기

다음 get-deployment-config 예시에서는 사용자의 AWS 계정에 연결된 배포 구성에 대한 정보를 표시합니다.

aws deploy get-deployment-config --deployment-config-name ThreeQuartersHealthy

출력:

{ "deploymentConfigInfo": { "deploymentConfigId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "minimumHealthyHosts": { "type": "FLEET_PERCENT", "value": 75 }, "createTime": 1411081164.379, "deploymentConfigName": "ThreeQuartersHealthy" } }

다음 코드 예시에서는 get-deployment-group의 사용 방법을 보여줍니다.

AWS CLI

배포 그룹 정보 보기

다음 get-deployment-group 예시에서는 지정된 애플리케이션에 연결된 배포 그룹의 정보를 표시합니다.

aws deploy get-deployment-group \ --application-name WordPress_App \ --deployment-group-name WordPress_DG

출력:

{ "deploymentGroupInfo": { "applicationName": "WordPress_App", "autoScalingGroups": [ "CodeDeployDemo-ASG" ], "deploymentConfigName": "CodeDeployDefault.OneAtATime", "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "CodeDeployDemo", "Key": "Name" } ], "deploymentGroupId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "serviceRoleArn": "arn:aws:iam::123456789012:role/CodeDeployDemoRole", "deploymentGroupName": "WordPress_DG" } }

다음 코드 예시에서는 get-deployment-instance의 사용 방법을 보여줍니다.

AWS CLI

배포 인스턴스 정보 가져오기

다음 get-deployment-instance 예시에서는 지정된 배포에 연결된 배포 인스턴스의 정보를 표시합니다.

aws deploy get-deployment-instance --deployment-id d-QA4G4F9EX --instance-id i-902e9fEX

출력:

{ "instanceSummary": { "instanceId": "arn:aws:ec2:us-east-1:80398EXAMPLE:instance/i-902e9fEX", "lifecycleEvents": [ { "status": "Succeeded", "endTime": 1408480726.569, "startTime": 1408480726.437, "lifecycleEventName": "ApplicationStop" }, { "status": "Succeeded", "endTime": 1408480728.016, "startTime": 1408480727.665, "lifecycleEventName": "DownloadBundle" }, { "status": "Succeeded", "endTime": 1408480729.744, "startTime": 1408480729.125, "lifecycleEventName": "BeforeInstall" }, { "status": "Succeeded", "endTime": 1408480730.979, "startTime": 1408480730.844, "lifecycleEventName": "Install" }, { "status": "Failed", "endTime": 1408480732.603, "startTime": 1408480732.1, "lifecycleEventName": "AfterInstall" }, { "status": "Skipped", "endTime": 1408480732.606, "lifecycleEventName": "ApplicationStart" }, { "status": "Skipped", "endTime": 1408480732.606, "lifecycleEventName": "ValidateService" } ], "deploymentId": "d-QA4G4F9EX", "lastUpdatedAt": 1408480733.152, "status": "Failed" } }

다음 코드 예시에서는 get-deployment-target의 사용 방법을 보여줍니다.

AWS CLI

배포 대상의 정보 반환

다음 get-deployment-target 예시에서는 지정된 배포에 연결된 배포 대상에 대한 정보를 반환합니다.

aws deploy get-deployment-target \ --deployment-id "d-A1B2C3111" \ --target-id "i-a1b2c3d4e5f611111"

출력:

{ "deploymentTarget": { "deploymentTargetType": "InstanceTarget", "instanceTarget": { "lastUpdatedAt": 1556918687.504, "targetId": "i-a1b2c3d4e5f611111", "targetArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-a1b2c3d4e5f611111", "status": "Succeeded", "lifecycleEvents": [ { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "ApplicationStop", "startTime": 1556918592.162, "endTime": 1556918592.247 }, { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "DownloadBundle", "startTime": 1556918593.193, "endTime": 1556918593.981 }, { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "BeforeInstall", "startTime": 1556918594.805, "endTime": 1556918681.807 }, { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "Install", "startTime": 1556918682.696, "endTime": 1556918683.005 }, { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "AfterInstall", "startTime": 1556918684.135, "endTime": 1556918684.216 }, { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "ApplicationStart", "startTime": 1556918685.211, "endTime": 1556918685.295 }, { "status": "Succeeded", "diagnostics": { "errorCode": "Success", "message": "Succeeded", "logTail": "", "scriptName": "" }, "lifecycleEventName": "ValidateService", "startTime": 1556918686.65, "endTime": 1556918686.747 } ], "deploymentId": "d-A1B2C3111" } } }

자세한 내용은 AWS CodeDeploy API 참조GetDeploymentTarget을 참조하세요.

다음 코드 예시에서는 get-deployment의 사용 방법을 보여줍니다.

AWS CLI

배포 정보 가져오기

다음 get-deployment 예시에서는 사용자의 AWS 계정에 연결된 배포의 정보를 표시합니다.

aws deploy get-deployment --deployment-id d-A1B2C3123

출력:

{ "deploymentInfo": { "applicationName": "WordPress_App", "status": "Succeeded", "deploymentOverview": { "Failed": 0, "InProgress": 0, "Skipped": 0, "Succeeded": 1, "Pending": 0 }, "deploymentConfigName": "CodeDeployDefault.OneAtATime", "creator": "user", "description": "My WordPress app deployment", "revision": { "revisionType": "S3", "s3Location": { "bundleType": "zip", "eTag": "\"dd56cfdEXAMPLE8e768f9d77fEXAMPLE\"", "bucket": "CodeDeployDemoBucket", "key": "WordPressApp.zip" } }, "deploymentId": "d-A1B2C3123", "deploymentGroupName": "WordPress_DG", "createTime": 1409764576.589, "completeTime": 1409764596.101, "ignoreApplicationStopFailures": false } }
  • API 세부 정보는 AWS CLI 명령 참조GetDeployment를 참조하세요.

다음 코드 예시에서는 get-on-premises-instance의 사용 방법을 보여줍니다.

AWS CLI

단일 온프레미스 인스턴스의 정보 가져오기

다음 get-on-premises-instance 예시에서는 지정된 온프레미스 인스턴스의 정보를 가져옵니다.

aws deploy get-on-premises-instance --instance-name AssetTag12010298EX

출력:

{ "instanceInfo": { "iamUserArn": "arn:aws:iam::123456789012:user/AWS/CodeDeploy/AssetTag12010298EX", "tags": [ { "Value": "CodeDeployDemo-OnPrem", "Key": "Name" } ], "instanceName": "AssetTag12010298EX", "registerTime": 1425579465.228, "instanceArn": "arn:aws:codedeploy:us-east-1:123456789012:instance/AssetTag12010298EX_4IwLNI2Alh" } }

다음 코드 예시에서는 install의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스 설치

다음 install 예시에서는 인스턴스의 지정된 위치에서 AWS CodeDeploy 에이전트가 해당 파일을 찾을 것으로 예상되는 위치로 온프레미스 인스턴스 구성 파일을 복사합니다. 인스턴스에 AWS CodeDeploy 에이전트를 설치합니다. IAM 사용자를 생성하거나, 온프레미스 인스턴스를 AWS CodeDeploy에 등록하거나, 인스턴스의 AWS CodeDeploy에 온프레미스 인스턴스 태그를 연결하지 않습니다.

aws deploy install \ --override-config \ --config-file C:\temp\codedeploy.onpremises.yml \ --region us-west-2 \ --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

출력:

Creating the on-premises instance configuration file... DONE Installing the AWS CodeDeploy Agent... DONE
  • API 세부 정보는 AWS CLI 명령 참조Install을 참조하세요.

다음 코드 예시에서는 list-application-revisions의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 개정 정보 가져오기

다음 list-application-revisions 예시에서는 지정된 애플리케이션에 연결된 모든 애플리케이션 개정의 정보를 표시합니다.

aws deploy list-application-revisions \ --application-name WordPress_App \ --s-3-bucket CodeDeployDemoBucket \ --deployed exclude \ --s-3-key-prefix WordPress_ \ --sort-by lastUsedTime \ --sort-order descending

출력:

{ "revisions": [ { "revisionType": "S3", "s3Location": { "version": "uTecLusvCB_JqHFXtfUcyfV8bEXAMPLE", "bucket": "CodeDeployDemoBucket", "key": "WordPress_App.zip", "bundleType": "zip" } }, { "revisionType": "S3", "s3Location": { "version": "tMk.UxgDpMEVb7V187ZM6wVAWEXAMPLE", "bucket": "CodeDeployDemoBucket", "key": "WordPress_App_2-0.zip", "bundleType": "zip" } } ] }

다음 코드 예시에서는 list-applications의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션 정보 가져오기

다음 list-applications 예시에서는 사용자의 AWS 계정에 연결된 모든 애플리케이션에 대한 정보를 표시합니다.

aws deploy list-applications

출력:

{ "applications": [ "WordPress_App", "MyOther_App" ] }
  • API 세부 정보는 AWS CLI 명령 참조ListApplications를 참조하세요.

다음 코드 예시에서는 list-deployment-configs의 사용 방법을 보여줍니다.

AWS CLI

배포 구성 정보 가져오기

다음 list-deployment-configs 예시에서는 사용자의 AWS 계정에 연결된 모든 배포 구성에 대한 정보를 표시합니다.

aws deploy list-deployment-configs

출력:

{ "deploymentConfigsList": [ "ThreeQuartersHealthy", "CodeDeployDefault.AllAtOnce", "CodeDeployDefault.HalfAtATime", "CodeDeployDefault.OneAtATime" ] }

다음 코드 예시에서는 list-deployment-groups의 사용 방법을 보여줍니다.

AWS CLI

배포 그룹 정보 가져오기

다음 list-deployment-groups 예시에서는 지정된 애플리케이션에 연결된 모든 배포 그룹에 대한 정보를 표시합니다.

aws deploy list-deployment-groups --application-name WordPress_App

출력:

{ "applicationName": "WordPress_App", "deploymentGroups": [ "WordPress_DG", "WordPress_Beta_DG" ] }

다음 코드 예시에서는 list-deployment-instances의 사용 방법을 보여줍니다.

AWS CLI

배포 인스턴스 정보 가져오기

다음 list-deployment-instances 예시에서는 지정된 배포에 연결된 모든 배포 인스턴스에 대한 정보를 표시합니다.

aws deploy list-deployment-instances \ --deployment-id d-A1B2C3111 \ --instance-status-filter Succeeded

출력:

{ "instancesList": [ "i-EXAMPLE11", "i-EXAMPLE22" ] }

다음 코드 예시에서는 list-deployment-targets의 사용 방법을 보여줍니다.

AWS CLI

배포에 연결된 대상 ID 목록 가져오기

다음 list-deployment-targets 예시에서는 상태가 ‘Failed’ 또는 ‘InProgress’인 배포에 연결된 대상 ID의 목록을 가져옵니다.

aws deploy list-deployment-targets \ --deployment-id "d-A1B2C3111" \ --target-filters "{\"TargetStatus\":[\"Failed\",\"InProgress\"]}"

출력:

{ "targetIds": [ "i-0f1558aaf90e5f1f9" ] }

자세한 내용은 AWS CodeDeploy API 참조ListDeploymentTargets를 참조하세요.

다음 코드 예시에서는 list-deployments의 사용 방법을 보여줍니다.

AWS CLI

배포 정보 가져오기

다음 list-deployments 예시에서는 지정된 애플리케이션 및 배포 그룹에 연결된 모든 배포에 대한 정보를 표시합니다.

aws deploy list-deployments \ --application-name WordPress_App \ --create-time-range start=2014-08-19T00:00:00,end=2014-08-20T00:00:00 \ --deployment-group-name WordPress_DG \ --include-only-statuses Failed

출력:

{ "deployments": [ "d-EXAMPLE11", "d-EXAMPLE22", "d-EXAMPLE33" ] }
  • API 세부 정보는 AWS CLI 명령 참조ListDeployments를 참조하세요.

다음 코드 예시에서는 list-git-hub-account-token-names의 사용 방법을 보여줍니다.

AWS CLI

저장된 GitHub 계정 연결의 이름 나열

다음 list-git-hub-account-token-names 예시에서는 현재 AWS 사용자의 저장된 GitHub 계정 연결의 이름을 나열합니다.

aws deploy list-git-hub-account-token-names

출력:

{ "tokenNameList": [ "my-first-token", "my-second-token", "my-third-token" ] }

자세한 내용은 AWS CodeDeploy API 참조ListGitHubAccountTokenNames를 참조하세요.

다음 코드 예시에서는 list-on-premises-instances의 사용 방법을 보여줍니다.

AWS CLI

하나 이상의 온프레미스 인스턴스에 대한 정보 가져오기

다음 list-on-premises-instances 예시에서는 AWS CodeDeploy의 인스턴스에 연결된 지정된 온프레미스 인스턴스 태그가 있고 AWS CodeDeploy에 등록되어 있는 인스턴스에 사용 가능한 온프레미스 인스턴스의 이름 목록을 가져옵니다.

aws deploy list-on-premises-instances \ --registration-status Registered \ --tag-filters Key=Name,Value=CodeDeployDemo-OnPrem,Type=KEY_AND_VALUE

출력:

{ "instanceNames": [ "AssetTag12010298EX" ] }

다음 코드 예시에서는 list-tags-for-resource의 사용 방법을 보여줍니다.

AWS CLI

리소스 태그 나열(애플리케이션)

다음 list-tags-for-resource 예시에서는 CodeDeploy의 testApp이라는 애플리케이션에 적용된 태그를 나열합니다.

aws deploy list-tags-for-resource \ --resource-arn arn:aws:codedeploy:us-west-2:111122223333:application:testApp

출력:

{ "Tags": [ { "Key": "Type", "Value": "testType" }, { "Key": "Name", "Value": "testName" } ] }

자세한 내용은 AWS CodeDeploy 사용 설명서CodeDeploy에서 배포 그룹에 대한 인스턴스에 태그 지정을 참조하세요.

다음 코드 예시에서는 push의 사용 방법을 보여줍니다.

AWS CLI

Amazon S3에 AWS CodeDeploy 호환 애플리케이션 개정을 번들링 및 배포

다음 push 예시에서는 Amazon S3에 애플리케이션 개정을 번들링하고 배포한 다음 애플리케이션 개정을 지정된 애플리케이션에 연결합니다.

aws deploy push \ --application-name WordPress_App \ --description "This is my deployment" \ --ignore-hidden-files \ --s3-location s3://CodeDeployDemoBucket/WordPressApp.zip \ --source /tmp/MyLocalDeploymentFolder/

출력은 create-deployment 명령을 사용하여 업로드된 애플리케이션 개정을 사용하는 배포를 생성하는 방법을 설명합니다.

To deploy with this revision, run: aws deploy create-deployment --application-name WordPress_App --deployment-config-name <deployment-config-name> --deployment-group-name <deployment-group-name> --s3-location bucket=CodeDeployDemoBucket,key=WordPressApp.zip,bundleType=zip,eTag="cecc9b8EXAMPLE50a6e71fdb88EXAMPLE",version=LFsJAUdEXAMPLEfvKtvi79L8EXAMPLE
  • API 세부 정보는 AWS CLI 명령 참조Push를 참조하세요.

다음 코드 예시에서는 register-application-revision의 사용 방법을 보여줍니다.

AWS CLI

이미 업로드된 애플리케이션 개정의 정보 등록

다음 register-application-revision 예시에서는 Amazon S3에 저장된 이미 업로드된 애플리케이션 개정의 정보를 AWS CodeDeploy에 등록합니다.

aws deploy register-application-revision \ --application-name WordPress_App \ --description "Revised WordPress application" \ --s3-location bucket=CodeDeployDemoBucket,key=RevisedWordPressApp.zip,bundleType=zip,eTag=cecc9b8a08eac650a6e71fdb88EXAMPLE

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 register-on-premises-instance의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스 등록

다음 register-on-premises-instance 예시에서는 AWS CodeDeploy에 온프레미스 인스턴스를 등록합니다. 이는 지정된 IAM 사용자를 생성하지 않으며 AWS CodeDeploy의 온프레미스 인스턴스 태그를 등록된 인스턴스에 연결하지도 않습니다.

aws deploy register-on-premises-instance \ --instance-name AssetTag12010298EX \ --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployDemoUser-OnPrem

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 register의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스 등록

다음 register 예시에서는 AWS CodeDeploy에 온프레미스 인스턴스를 등록하고, AWS CodeDeploy의 지정된 온프레미스 인스턴스 태그를 등록된 인스턴스에 연결하고, 인스턴스에 복사할 수 있는 온프레미스 구성 파일을 생성합니다. 이는 IAM 사용자를 생성하지 않으며 인스턴스에 AWS CodeDeploy 에이전트를 설치하지도 않습니다.

aws deploy register \ --instance-name AssetTag12010298EX \ --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployUser-OnPrem \ --tags Key=Name,Value=CodeDeployDemo-OnPrem \ --region us-west-2

출력:

Registering the on-premises instance... DONE Adding tags to the on-premises instance... DONE Copy the on-premises configuration file named codedeploy.onpremises.yml to the on-premises instance, and run the following command on the on-premises instance to install and configure the AWS CodeDeploy Agent: aws deploy install --config-file codedeploy.onpremises.yml
  • API 세부 정보는 AWS CLI 명령 참조Register를 참조하세요.

다음 코드 예시에서는 remove-tags-from-on-premises-instances의 사용 방법을 보여줍니다.

AWS CLI

하나 이상의 온프레미스 인스턴스에서 태그 제거

다음 remove-tags-from-on-premises-instances 예시에서는 AWS CodeDeploy의 지정된 온프레미스 태그를 온프레미스 인스턴스에서 연결 해제합니다. 이는 AWS CodeDeploy에서 온프레미스 인스턴스를 등록 취소하거나 인스턴스에서 AWS CodeDeploy 에이전트를 제거하거나 인스턴스에서 온프레미스 구성 파일을 제거하거나 인스턴스에 연결된 IAM 사용자를 삭제하지 않습니다.

aws deploy remove-tags-from-on-premises-instances \ --instance-names AssetTag12010298EX AssetTag23121309EX \ --tags Key=Name,Value=CodeDeployDemo-OnPrem

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 stop-deployment의 사용 방법을 보여줍니다.

AWS CLI

배포 중지 시도

다음 stop-deployment 예시에서는 사용자의 AWS 계정에 연결된 진행 중인 배포를 중지하려고 시도합니다.

aws deploy stop-deployment --deployment-id d-A1B2C3111

출력:

{ "status": "Succeeded", "statusMessage": "No more commands will be scheduled for execution in the deployment instances" }
  • API 세부 정보는 AWS CLI 명령 참조StopDeployment를 참조하세요.

다음 코드 예시에서는 tag-resource의 사용 방법을 보여줍니다.

AWS CLI

리소스에 태그 지정(애플리케이션)

다음 tag-resource 예시에서는 Name 및 Type이라는 키와 testName 및 testType이라는 값이 있는 태그 2개를 CodeDeploy의 testApp이라는 애플리케이션에 추가합니다.

aws deploy tag-resource \ --resource-arn arn:aws:codedeploy:us-west-2:111122223333:application:testApp \ --tags Key=Name,Value=testName Key=Type,Value=testType

성공하면 이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS CodeDeploy 사용 설명서CodeDeploy에서 배포 그룹에 대한 인스턴스에 태그 지정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조TagResource를 참조하세요.

다음 코드 예시에서는 uninstall의 사용 방법을 보여줍니다.

AWS CLI

온프레미스 인스턴스 제거

다음 uninstall 예시에서는 온프레미스 인스턴스에서 AWS CodeDeploy 에이전트를 제거하고 인스턴스에서 온프레미스 구성 파일을 제거합니다. 이는 AWS CodeDeploy에서 인스턴스를 등록 취소하거나, 인스턴스에서 AWS CodeDeploy의 온프레미스 인스턴스 태그를 연결 해제하거나, 인스턴스에 연결된 IAM 사용자를 삭제하지 않습니다.

aws deploy uninstall

이 명령은 출력을 생성하지 않습니다.

  • API 세부 정보는 AWS CLI 명령 참조Uninstall을 참조하세요.

다음 코드 예시에서는 untag-resource의 사용 방법을 보여줍니다.

AWS CLI

리소스에서 태그 제거(애플리케이션)

다음 untag-resource 예시에서는 Name 및 Type이라는 키가 있는 태그 2개를 CodeDeploy의 testApp이라는 애플리케이션에서 제거합니다.

aws deploy untag-resource \ --resource-arn arn:aws:codedeploy:us-west-2:111122223333:application:testApp \ --tag-keys Name Type

성공하면 이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS CodeDeploy 사용 설명서CodeDeploy에서 배포 그룹에 대한 인스턴스에 태그 지정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UntagResource를 참조하세요.

다음 코드 예시에서는 update-application의 사용 방법을 보여줍니다.

AWS CLI

애플리케이션의 세부 정보 변경

다음 update-application 예시에서는 사용자의 AWS 계정에 연결된 애플리케이션의 이름을 변경합니다.

aws deploy update-application \ --application-name WordPress_App \ --new-application-name My_WordPress_App

이 명령은 출력을 생성하지 않습니다.

  • API 세부 정보는 AWS CLI 명령 참조UpdateApplication을 참조하세요.

다음 코드 예시에서는 update-deployment-group의 사용 방법을 보여줍니다.

AWS CLI

배포 그룹의 정보 변경

다음 update-deployment-group 예시에서는 지정된 애플리케이션에 연결된 배포 그룹의 설정을 변경합니다.

aws deploy update-deployment-group \ --application-name WordPress_App \ --auto-scaling-groups My_CodeDeployDemo_ASG \ --current-deployment-group-name WordPress_DG \ --deployment-config-name CodeDeployDefault.AllAtOnce \ --ec2-tag-filters Key=Name,Type=KEY_AND_VALUE,Value=My_CodeDeployDemo \ --new-deployment-group-name My_WordPress_DepGroup \ --service-role-arn arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo-2

이 명령은 출력을 생성하지 않습니다.