버전 5(V5) AWS Tools for PowerShell 가 릴리스되었습니다.
변경 사항 해제 및 애플리케이션 마이그레이션에 대한 자세한 내용은 마이그레이션 주제를 참조하세요.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Tools for PowerShell 버전 4에서 버전 5로 마이그레이션
AWS Tools for PowerShell 버전 5(V5)에 주요 변경 사항이 있어 기존 스크립트가 작동하지 않을 수 있습니다. 이 주제에서는 V5의 주요 변경 사항과 V4에서 환경 또는 코드를 마이그레이션하기 위해 수행해야 할 수 있는 작업에 대해 설명합니다.
의 주목할 만한 변경 사항에 대한 자세한 내용은 다음 리소스 AWS Tools for PowerShell 도 참조하세요.
-
이제 블로그 게시물 AWS Tools for PowerShell V5를 정식 버전으로 사용할 수 있습니다
. -
GitHub의 V5 Development Tracker 문제
입니다. 주요 변경 사항 목록 외에도 각 미리 보기의 세부 정보를 확인해야 합니다.
참고
는에 AWS Tools for PowerShell 의존하므로 SDK의 V4와 관련된 AWS SDK for .NET일부 변경 사항은 Tools for PowerShell의 V5에도 영향을 미칠 수 있습니다. 의 V4에서 변경된 사항을 확인하려면 AWS SDK for .NET 개발자 안내서의 마이그레이션 정보를 AWS SDK for .NET참조하세요.
최소 PowerShell 버전
AWSPowerShell AWS Tools for PowerShell이라는의 레거시 Windows 전용 단일 대형 모듈 버전의 경우 모듈의 지원되는 최소 PowerShell 버전이 5.1로 업데이트되었습니다. 이는 .NET Framework 4.7.2의 AWS SDK for .NET 새 최소 버전과 일치시키기 위한 것입니다.
레거시 AWSPowerShell 모듈에 대한 자세한 내용은 섹션을 참조하세요Windows에 설치.
AWS.Tools
V4 설치 또는 업데이트
AWS Tools for PowerShell라는 모듈화된 버전의를 설치하거나 업데이트할 때 AWS.Tools
Install-AWSToolsModule
및 Update-AWSToolsModule
cmdlet은 AWS.Tools
기본적으로 버전 5를 사용합니다. 어떤 이유로든 버전 4를 대신 설치하거나 업데이트해야 하는 경우 각각 다음 명령을 사용하여 업데이트할 AWS.Tools
수 있습니다.
Install-AWSToolsModule -MaximumVersion '4.9.999' Update-AWSToolsModule -MaximumVersion '4.9.999'
Tools for PowerShell 설치 및 업데이트에 대한 자세한 내용은 섹션을 참조하세요. 시작
CTRL+C를 사용하여 cmdlet 실행 취소
버전 5 AWS Tools for PowerShell 에서는 CTRL+C와 같은 키보드 바로 가기를 사용하여 cmdlet 실행을 취소할 수 있습니다.
Nullable 값 유형
에서 채택된 유형이 SDK의 새로운 null 가능한 변경 사항을 사용하도록 업데이트 AWS SDK for .NET 되었습니다. 예를 들어 유형의 속성int
이 로 변경되었습니다Nullable[int]
. 이러한 변경 사항은 AWS cmdlet에 입력 파라미터 값을 지정하는 방법에 영향을 주지 않습니다. 이러한 값 유형 파라미터는 이미 null로 모델링되었기 때문입니다. 그러나 cmdlet 출력의 null 가능한 유형은 유형의 다양한 기본값 $null
대신 cmdlet 출력 내의 속성이 포함되기 때문에 주요 변경 사항입니다.
다음 예제에서는 Tools for PowerShell의 V4에서의 동작을 보여줍니다. 이 예에서 MissingMeta
속성은 유형의 기본값이므로 0으로 설정됩니다int
.
# In V4
PS >
Get-S3ObjectMetadata -BucketNameamzn-s3-demo-bucket
-Key 'test
' | >> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled LastModified MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled ------------ ----------- ------------------------- ---------------- 8/29/2023 10:20:44 PM 0 1/1/0001 12:00:00 AM
다음 예제에서는 Tools for PowerShell의 V5에서의 동작을 보여줍니다. 이 예제에서 MissingMeta
속성은 로 설정됩니다$null
.
# In V5
PS >
Get-S3ObjectMetadata -BucketNameamzn-s3-demo-bucket
-Key 'test
' | >> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled LastModified MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled ------------ ----------- ------------------------- ---------------- 8/29/2023 10:20:44 PM
대부분의 경우 PowerShell은 null 가능한 값 유형에서 null이 불가능한 값 유형으로 암시적으로 변환되므로 코드를 변경할 필요가 없습니다. 그러나 이는 null 가능한 값 유형의 기본값을 명시적으로 확인하는 비교 로직 코드에 대한 주요 변경 사항입니다. null이 아닌 유형의 기본값을 확인하는 비교 로직을 수정하여를 확인해야 합니다$null
.
이러한 유형 중 일부의 경우 다음 예제에서는 V4용으로 작성된 코드를 업데이트하여 반환된 코드가 없는지 확인하는 방법을 보여줍니다.
#Type int: # In V4, if you were checking whether an int is 0... if($s3Metadata.MissingMeta -eq 0){} # In V5, check if the int is null instead: if($s3Metadata.MissingMeta -eq $null) {} # Type datetime: # In V4, if you were checking whether a datetime is '0001-01-01'... if($s3Metadata.ObjectLockRetainUntilDate -eq '0001-01-01'){} # In V5, check if the datetime is null instead: if($s3Metadata.ObjectLockRetainUntilDate -eq $null){} # Type boolean: # In V4, if you were checking whether a boolean is $false... if($s3Metadata.BucketKeyEnabled -eq $false){} # In V5, check if the boolean is null instead: if($s3Metadata.BucketKeyEnabled -eq $null)
는에 AWS Tools for PowerShell 의존하므로 유사한 변경 사항이 SDK 버전 4에 미치는 영향을 검사하는 AWS SDK for .NET것이 유용할 수 있습니다. 이 정보를 찾으려면 AWS SDK for .NET 개발자 안내서의 값 유형 마이그레이션 콘텐츠를 참조하세요.
컬렉션
일부 cmdlet 출력이 List
또는 유형의 빈 컬렉션 $null
대신 반환되도록 변경되었습니다Dictionary
. 레거시 동작으로 되돌리는 방법을 비롯한 추가 정보는 AWS SDK for .NET 개발자 안내서의 컬렉션에 대한 마이그레이션 콘텐츠를 참조하세요.
DateTime과 UTC DateTime 비교
일부 V4 cmdlet은 더 이상 사용되지 않는 DateTime 파라미터와 대체 UTC DateTime 파라미터를 정의합니다. 이러한 더 이상 사용되지 않는 DateTime 파라미터는 V5 cmdlet에서 제거되었으며 UTC DateTime 파라미터의 이름이 UTC DateTime이 아닌 파라미터의 원래 이름으로 변경되었습니다.
다음은이 변경 사항이 구현된 cmdlet의 몇 가지 예입니다.
-
Get-ASScheduledAction
(V4 cmdlet 및 V5 cmdlet):-
StartTime
파라미터가 제거되었으며UtcStartTime
파라미터 이름이 "StartTime"으로 변경되었습니다. -
EndTime
파라미터가 제거되었으며UtcEndTime
파라미터 이름이 "EndTime"으로 변경되었습니다.
-
-
Copy-S3Object
(V4 cmdlet 및 V5 cmdlet):-
ModifiedSinceDate
파라미터가 제거되었으며UtcModifiedSinceDate
파라미터 이름이 "ModifiedSinceDate"로 변경되었습니다. -
UnmodifiedSinceDate
파라미터가 제거되었으며UtcUnmodifiedSinceDate
파라미터 이름이 "UnmodifiedSinceDate"로 변경되었습니다.
-
다음은이 변경의 영향을 받는 cmdlet의 전체 목록입니다.
-
Get-CWMetricStatistic(별칭 Get-CWMetricStatistics)
-
Get-RSClusterSnapshot(별칭 Get-RSClusterSnapshots)
-
Get-RSEvent(별칭 Get-RSEvents)
파이프라인 및 $AWSHistory
V4 AWS Tools for PowerShell 이전의 버전에서는 AWS cmdlet 호출 및 각 호출에 대해 수신된 서비스 응답의 레코드를 유지하는 라는 세션 변수가 도입$AWSHistory
되었습니다.
Tools for PowerShell의 V4에서이 세션 변수는 전체 서비스 응답을 반환하는 데 사용할 수 있는 -Select *
파라미터 및 인수를 위해 더 이상 사용되지 않습니다. -Select *
파라미터는에 설명되어 있습니다파이프라인, 출력 및 반복.
PowerShell용 도구의 V5에서는 $AWSHistory
세션 변수가 완전히 제거되었습니다. 따라서 Clear-AWSHistory
및 Set-AWSHistoryConfiguration
cmdlet도 제거되었습니다.
-PassThru
파라미터
-PassThru
파라미터가 제거되었습니다. cmdlet이 기본적으로 출력을 반환하지 않는 경우 사용자는를 사용하여 반환된 파라미터 값을 요청할 수 있습니다-Select ^ParameterName
. 추가 세부 정보 및 예제는 블로그 게시물 V5의 AWS Tools for PowerShell 미리 보기 1
일부 DynamoDB cmdlet 이동 및 이름 변경
Get-DDBStream
및 Get-DDBStreamList
cmdlet이 DynamoDBV2 모듈에서 DynamoDBStreams라는 새 모듈로 이동되었습니다. 또한 각각 Get-DDBSStream 및 Get-DDBSStreamList로 이름이 변경되었습니다.
민감한 정보의 로깅
특히 CI/CD 상황에서 잠재적으로 민감한 정보가 cmdlet 출력에 포함될 가능성이 적도록 로깅 동작이 변경되었습니다. V4 동작으로 되돌리는 방법에 대한 자세한 내용과 지침은 섹션을 참조하세요민감한 정보의 로깅.
보안 인증 정보 및 프로파일 확인
cmdlet에 대한 자격 증명을 확인할 때 특정 환경 변수인 AWS_PROFILE
, AWS_SECRET_ACCESS_KEY
, 및를 사용하도록 AWS_ACCESS_KEY_ID
가 업데이트 AWS Tools for PowerShell 되었습니다AWS_SESSION_TOKEN
. 또한 자격 증명 및 프로필의 확인 순서가 일부 변경되었습니다. 자세한 내용은 보안 인증 정보 및 프로파일 확인 단원을 참조하십시오.
자격 증명 오류 메시지
적절한 자격 증명을 얻을 수 없는 경우가 AWS Tools for PowerShell 반환하는 오류 메시지가 변경되었습니다.
v4 도구에서 메시지는 다음과 비슷했습니다.
Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: No credentials specified or obtained from persisted/shell defaults.
V5 도구에서 메시지는 대신 다음과 유사합니다.
Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: Failed to resolve AWS credentials. The credential providers used to search for credentials returned the following errors: ... <list of specific exceptions>
일관된 자동 반복
페이지가 매겨진 모든 cmdlet은 기본적으로 모든 데이터를 자동 반복하도록 업데이트되었습니다. Set-AWSAutoIterationMode cmdlet을 사용하여이 동작을 되돌릴 수 있습니다. 를 실행하면 v4에서 자동 반복된 Set-AWSAutoIterationMode -IterationMode v4
작업은 여전히 자동 반복되지만 나머지 작업은 수동 반복으로 돌아갑니다. 자동 반복이 설정되는 모드를 확인하려면 Get-AWSAutoIterationMode cmdlet을 사용합니다.
이러한 방식으로 업데이트된 cmdlet의 예를 보려면 Get-CWLLogEvent
cmdlet(V4 cmdlet 및 V5 cmdlet)을 참조하세요.
자동 반복에 대한 자세한 내용은 섹션을 참조하세요페이징된 데이터를 통한 반복.
S3 cmdlet이 더 이상 사용되지 않고 교체됨
Amazon S3의 경우 Get-S3ACL 및 Set-S3ACL cmdlet은 더 이상 사용되지 않습니다. 대신 Get-S3BucketACL, Set-S3BucketACL, Get-S3Get-S3ObjectACL, Set-S3ObjectACL과 같은 새 cmdlet을 사용합니다.
S3 키 파라미터 정리 및 트리밍
특정 Amazon S3 cmdlet은 Key
및 라는 파라미터를 허용합니다KeyPrefix
. 의 V4 AWS Tools for PowerShell 는 선행 공백 제거, 슬래시("/") 및 백슬래시("”), 다른 모든 백슬래시를 슬래시로 변환, 후행 공백 제거 등의 방법으로 이러한 파라미터를 정리하고 잘라냅니다. PowerShell용 도구의 V5에서는 더 이상 기본 동작이 아닙니다. -EnableLegacyKeyCleaning
파라미터를 지정하여이 동작으로 되돌릴 수 있습니다.
이 정보는 다음 cmdlet에 적용됩니다.
대화형 세션 기능
AWS CLI 동작에 맞는 대화형 세션 기능이 Start-SSMSession cmdlet에 추가되었습니다. 예:
Start-SSMSession -Target 'i-1234567890abcdef0'
레거시 동작이 필요한 경우 Start-SSMSession
명령에 -DisablePluginInvocation
파라미터를 포함합니다.
CloudWatch 경보
Get-CWAlarm cmdlet은 기본적으로 지표 경보와 복합 Amazon CloudWatch 경보를 모두 반환하도록 업데이트되었습니다. 출력을 지표 또는 복합 경보로 제한하려면 -AlarmType
파라미터를 Get-CWAlarm -AlarmType 'CompositeAlarms'
각각 Get-CWAlarm -AlarmType 'MetricAlarms'
또는 로 지정해야 합니다.
LitJson
LitJson
직렬화System.Text.Json
에 대신를 사용하도록가 업데이트 AWS Tools for PowerShell 되었습니다. LitJson
가 도구의 V5에서 제거되었습니다.
LoggedAt
출력 속성
LoggedAt
출력 속성이 제거되었습니다. 도구의 V4에서이 속성은 일부 cmdlet(예: Get-SSMCommandInvocationDetail
및 Invoke-LMFunction
)에서 기본적으로 반환되었습니다.
LoggedAt
출력 속성에서 제공한 정보를 복제해야 하는 경우 스크립트에 다음과 유사한 정보를 포함할 수 있습니다.
$loggedAt = (Get-Date).ToUniversalTime().ToString('s')
제거된 프로그래밍 요소
Tools for PowerShell의 V5에서 여러 프로그래밍 요소가 제거되었습니다. 이는 이전에 다루지 않은 경우 제거를 수용하기 위해 취할 수 있는 잠재적 단계와 함께 아래에 나열되어 있습니다.
-
Invoke-LMFunctionAsync
cmdlet입니다. -
Get-EC2ImageByName
cmdlet입니다. 대신 Get-SSMLatestEC2Image cmdlet을 사용합니다. -
Write-S3Object cmdlet의
CalculateContentMD5Header
파라미터입니다.