업그레이드 디버그 모드를 사용하여 AWS CLI 버전 1을 AWS CLI 버전 2로 업그레이드 - AWS Command Line Interface

업그레이드 디버그 모드를 사용하여 AWS CLI 버전 1을 AWS CLI 버전 2로 업그레이드

AWS CLI 버전 1 사용자는 AWS CLI 버전 2로 업그레이드하여 새로운 기능과 향상된 성능에 액세스하는 것이 좋습니다. AWS CLI 버전 1과 AWS CLI 버전 2 사이에는 동작 방식에 변경 사항이 있으므로 동일한 동작을 얻으려면 스크립트나 명령어를 업데이트해야 할 수 있습니다. AWS CLI 버전 1의 업그레이드 디버그 모드는 AWS CLI 버전 2에서 동작이 다른 기능을 사용할 때 경고를 출력합니다. 이 기능은 예상치 못한 문제를 방지하기 위해 AWS CLI 버전 2로 업그레이드하기 전에 수정해야 하는 AWS CLI 버전 1 명령을 자동으로 감지하여 업그레이드 환경을 개선합니다.

자세한 내용은 AWS CLI 버전 1과 AWS CLI 버전 2 간의 주요 변경 사항 섹션을 참조하세요.

AWS CLI 버전 1에서 버전 2로 업그레이드하면 기존 스크립트 및 워크플로에 영향을 미치는 AWS CLI 버전 1과 AWS CLI 버전 2 간의 주요 변경 사항이 발생할 수 있습니다. 업그레이드 디버그 모드는 마이그레이션을 완료하기 전에 이러한 문제를 식별하는 데 도움이 됩니다.

업그레이드 디버그 모드는 AWS CLI 버전 2에서 주요 변경 사항이 있는 기능을 사용하는 시기를 감지합니다. 업그레이드 후 중단되는 명령을 실행하면 모드에 문제 해결을 위한 특정 단계가 포함된 경고가 표시됩니다. 이렇게 하면 코드를 수동으로 검색하는 대신 잠재적 문제를 자동으로 찾아 시간을 절약할 수 있습니다.

작동 방식

활성화된 경우 업그레이드 디버그 모드는 AWS CLI 버전 2의 주요 변경 사항으로 업데이트된 기능의 사용을 감지합니다. AWS CLI 버전 2로 업그레이드한 후 AWS CLI 버전 1과 AWS CLI 버전 2 간의 주요 변경 사항에 나열된 명령 또는 기능을 사용하는 경우 출력에 경고가 표시됩니다. 주요 변경 사항 감지는 사용된 명령, 제공된 인수, 실행 환경(예: 환경 변수, 구성 설정 등)을 기반으로 하며, 경우에 따라 사용 중인 AWS 계정의 리소스 콘텐츠 또는 구성을 기반으로 합니다.

다음 예제에서는 이러한 경고가 어떻게 보이는지 보여줍니다. 이 명령은 예제 경고를 보여줍니다. 모든 경고 텍스트는 "AWS CLI V2 UPGRADE WARNING"으로 시작하고 그 뒤에 특정 경고 메시지가 있습니다. 이 경우 명령은 AWS CLI를 사용하여 URL의 콘텐츠를 검색하고 콘텐츠를 AWS CLI 버전 2에서 제거된 기능인 --template-body 파라미터 값으로 사용하기 때문에 경고가 출력됩니다.

다음 예제에서는 경고가 어떻게 표시되는지 보여줍니다.

$ aws cloudformation create-stack \ --stack-name "stack012345" \ --template-body "https://s3.amazonaws.com/amzn-s3-demo-bucket/template.json" AWS CLI v2 UPGRADE WARNING: For input parameters that have a prefix of http:// or https://, AWS CLI v2 will not automatically request the content of the URL for the parameter, and the `cli_follow_urlparam` option has been removed. See https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration-changes.html#cliv2-migration-paramfile.

다음 표에는 모든 주요 변경 사항과 AWS CLI 버전 2의 주요 변경 사항에 직면하지 않도록 하는 방법이 나와 있습니다. 디버그 모드에서 경고를 해결하는 해결 작업은 굵게 표시됩니다.

호환성에 영향을 미치는 주요 변경 사항 v1에서 v2 동작으로 마이그레이션 v2에서 v1 동작 유지
텍스트 파일 인코딩을 설정하도록 환경 변수 추가 PYTHONUTF8PYTHONIOENCODING 환경 변수의 설정을 해제합니다. AWS_CLI_FILE_ENCODING 환경 변수를 v1에 지정된 인코딩으로 설정합니다.
기본적으로 이진 파라미터가 base64 인코딩 문자열로 전달됨 파라미터 값을 base64로 인코딩합니다. 파라미터가 파일에서 로드되는 경우 파일 콘텐츠를 base64로 인코딩합니다. 설정값을 cli_binary_format로 설정합니다..raw-in-base64-out
멀티파트 복사를 수행할 때 Amazon S3의 파일 속성 및 태그 처리가 개선됨 해당 사항 없음. 버전 1에서는 버전 2 동작으로 마이그레이션할 수 없습니다. --copy-props none 파라미터를 사용합니다.
파라미터에 대한 http:// 또는 https:// URL의 자동 검색 안 함 curl(또는 대체 도구)을 사용하여 URL의 콘텐츠를 로컬 파일로 다운로드합니다. 그런 다음 file://를 사용하여 파라미터에 파일 콘텐츠를 로드합니다. 또는 원시 URL을 파라미터 값으로 지정하도록 cli_follow_urlparam을 false로 구성합니다. 해당 사항 없음. 버전 2에서 버전 1 동작을 유지할 수 없습니다.
기본적으로 모든 출력에 사용되는 페이저 해당 사항 없음. 버전 1에서는 버전 2 동작으로 마이그레이션할 수 없습니다. cli_pager 설정 또는 AWS_PAGER 변수를 빈 문자열로 설정합니다.
타임스탬프 출력 값이 ISO 8601 형식으로 표준화됨 cli_timestamp_format 설정을 iso8601로 설정합니다. cli_timestamp_format 설정을 유선으로 설정합니다.
변경 사항이 없는 CloudFormation 배포 처리가 개선됨 --no-fail-on-empty-changeset 파라미터를 사용합니다. --fail-on-empty-changeset 파라미터를 사용합니다.
us-east-1 리전의 리전 Amazon S3 엔드포인트 기본 동작이 변경됨 AWS_ENDPOINT_URL_S3 환경 변수 또는 --endpoint-url 명령줄 옵션을 us-east-1 리전 URL로 설정합니다. --region aws-global 명령줄 옵션을 사용합니다.
ecr get-login이 제거되고 ecr get-login-password로 대체됨 (1.17.10 이상) ecr get-login이 제거되고 ecr get-login-password로 대체됨을 사용하고 출력을 docker 명령으로 파이프합니다. 해당 사항 없음. 버전 2에서 버전 1 동작을 유지할 수 없습니다.
AWS CLI플러그인에 대한 버전 2 지원 변경 해당 사항 없음. 버전 1에서는 버전 2 동작으로 마이그레이션할 수 없습니다. cli_legacy_plugin_path를 구성 파일의 [plugins] 섹션으로 구성합니다. 버전 2에서 플러그인을 테스트하고 버전 2 버전을 잠근 다음 업그레이드할 때마다 플러그인을 테스트합니다.
숨겨진 별칭 지원이 제거됨 더 이상 사용되지 않는 숨겨진 별칭을 모든 버전에서 작동하는 숨겨진 별칭 지원이 제거됨로 전환합니다. 해당 사항 없음. 버전 2에서 버전 1 동작을 유지할 수 없습니다.
api_versions 구성 파일 설정은 지원되지 않음 이전 API 버전 사용을 최신 API 버전으로 마이그레이션 및 테스트하고 구성 설정에서 api_versions를 제거합니다. 해당 사항 없음. 버전 2에서 버전 1 동작을 유지할 수 없습니다.
AWS CLI 버전 2는 Signature v4만 사용하여 Amazon S3 요청을 인증함 서명 버전을 버전 4로 지정합니다(요청 인증에서 서명 버전 지정 참조). 해당 사항 없음. 버전 2에서 버전 1 동작을 유지할 수 없습니다.
AWS CLI 버전 2에서는 페이징 파라미터에 대한 일관성이 개선됨 입력 JSON 파라미터의 페이지 매김 파라미터를 명령 자체로 이동합니다. 입력 JSON 파라미터에서 페이지 매김 파라미터를 제거합니다.
AWS CLI 버전 2는 모든 명령에서 보다 일관된 반환 코드를 제공함 해당 사항 없음. 버전 1에서는 버전 2 동작으로 마이그레이션할 수 없습니다. 해당 사항 없음. 버전 2에서 버전 1 동작을 유지할 수 없습니다.

제한 사항

고객이 AWS CLI 버전 1과 AWS CLI 버전 2 간의 주요 변경 사항를 검토하는 것이 좋습니다.

지원되지 않는 주요 변경 사항 감지

업그레이드 디버그 모드 기능은 AWS CLI 버전 2는 모든 명령에서 보다 일관된 반환 코드를 제공함를 제외한 모든 주요 변경 사항을 지원합니다. 이 모드는 AWS CLI 다운스트림에서 반환된 오류 코드를 사용하는 방법을 설명할 수 없습니다.

조건부 주요 변경 사항 감지

타임스탬프 출력 값이 ISO 8601 형식으로 표준화됨 감지는 감지가 AWS 계정 상태에 따라 달라지는 유일한 경우이며, 계정 리소스가 나중에 업데이트되는 경우 주요 변경 사항이 적용될 수 있습니다. 서비스의 API 응답에 타임스탬프가 포함되지 않으면 이 주요 변경 사항에 대한 감지가 이루어지지 않습니다.

AWS CLI 명령에서 반환된 타임스탬프 형식에 의존하고 아직 ISO 8601을 사용하도록 AWS CLI를 구성하지 않은 경우 버전 2로 업그레이드한 후 타임스탬프 처리가 중단되지 않도록 각별히 주의하세요.

해결할 수 없는 주요 변경 사항 감지

업그레이드 디버그 모드별 일부 경고 출력은 명령 또는 환경을 수정하여 해결할 수 없습니다. 다음은 해당 기능을 사용하는 한 업그레이드 디버그 모드에서 경고가 항상 출력되는 경우입니다.

거짓 감지

업그레이드 디버그 모드에서 출력되는 경고는 AWS CLI v2로 업그레이드한 후 주요 변경 사항이 발생할 것이라고 보장하지 않습니다. 다음은 AWS CLI v2에 주요 변경 사항이 도입되지 않았지만 업그레이드 디버그 모드에서 경고가 출력되는 경우입니다.

업그레이드 디버그 모드 구성

우선 순위에 따라 나열된 다음 방법을 사용하여 업그레이드 디버그 모드를 활성화하거나 비활성화할 수 있습니다.

  • 명령줄 옵션으로 단일 명령에 대해 업그레이드 디버그 모드를 사용하거나 사용하지 않도록 설정합니다. --v2-debug를 사용하여 업그레이드 디버그 모드를 사용합니다.

  • 환경 변수는 AWS_CLI_UPGRADE_DEBUG_MODE 변수를 사용합니다.