버전 4(V4) AWS SDK for .NET 가 릴리스되었습니다.
변경 사항 해제 및 애플리케이션 마이그레이션에 대한 자세한 내용은 마이그레이션 주제를 참조하세요.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
의 버전 4로 마이그레이션 AWS SDK for .NET
AWS SDK for .NET 버전 4(V4)는 SDK 버전 3(V3)에서 크게 변경되었습니다. 이 주제에서는 버전 4의 주요 변경 사항과 V3에서 환경 또는 코드를 마이그레이션하기 위해 수행해야 할 수 있는 작업에 대해 설명합니다. SDK의 기타 주목할 만한 변경 사항에 대한 자세한 내용은 다음 리소스를 참조하세요.
-
GitHub의 개발-트래커 문제: https://github.com/aws/aws-sdk-net/issues/3362
. -
블로그 게시물 Preview 1 of AWS SDK for .NET V4
. -
블로그 게시물 Preview 4 of AWS SDK for .NET V4
. -
블로그 게시물 AWS SDK for .NET V4.0의 일반 가용성
.
.NET Framework
.NET Framework 3.5 대상이의 V4에서 제거되었습니다 AWS SDK for .NET. 따라서 SDK는 더 이상 .NET Framework 3.5를 지원하지 않습니다. 이 SDK 버전은 .NET Framework 4.7.2에 대해 컴파일되며 .NET 4.0 런타임에서 실행됩니다. 자세한 내용은 지원되는 플랫폼을 참조하세요.
값 유형
요청 및 응답을 생성하는 데 사용되는 클래스에서 값 유형을 사용하는 속성이 null 가능한 값 유형을 사용하도록 변경되었습니다. 다음 유형의 속성이 변경되었습니다.
-
bool
가 로 변경되었습니다.bool?
-
double
가 로 변경되었습니다.double?
-
int
가 로 변경되었습니다.int?
-
float
가 로 변경되었습니다.float?
-
long
가 로 변경되었습니다.long?
-
Datetime
가 로 변경되었습니다.Datetime?
이 변경 사항에 대한 자세한 내용은 블로그 게시물 V4의 AWS SDK for .NET 미리 보기 1
컬렉션
요청 및 응답을 생성하는 데 사용되는 클래스에서 컬렉션을 사용하는 속성은 이제 기본값이 입니다null
. 따라서 코드를 사용하려면 먼저 컬렉션이 null이 아닌지 확인해야 합니다. 예시:
var sqsClient = new AmazonSQSClient(); var listResponse = await sqsClient.ListQueuesAsync(new ListQueuesRequest()); if (listResponse.QueueUrls != null) { foreach (string qUrl in listResponse.QueueUrls) { // Perform operations on each queue such as displaying all the attributes. } }
컬렉션을 초기화하는 V3 동작은를 Amazon.AWSConfigs.InitializeCollections
로 설정하여 복원할 수 있습니다true
. 이 속성은 V4로 업그레이드하기 전에이 동작 변경을 시도하려는 사용자에 대해서도 V3에 존재합니다. V4
이 변경 사항에 대한 자세한 내용은 블로그 게시물 V4의 AWS SDK for .NET 미리 보기 1
AWS Security Token Service (STS)
-
리전 엔드포인트
에 의존하는 자격 증명 공급자를 사용하는 경우 호출 AWS STS은 항상 리전 엔드포인트를 사용합니다. 이는 구성된
us-east-1
리전에 관계없이 퍼블릭 파티션에서 실행할 때 기본적으로 리전을 사용한 SDK의 V3와 다릅니다. -
StsRegionalEndpointsValue
열거형열거형
StsRegionalEndpointsValue
이 Amazon.Runtime 네임스페이스에서 제거되었습니다. 해당 열거형을 사용하는 모든 코드는 제거해야 합니다. -
STSAssumeRoleAWSCredentials
클래스더 이상 사용되지 않는 STS 수임 역할 자격 증명 공급자
STSAssumeRoleAWSCredentials
가 Amazon.SecurityToken 네임스페이스에서 제거되었습니다. 대신 Amazon.Runtime의 AssumeRoleAWSCredentials를 사용합니다.
와 관련된 변경 사항 ClientConfig
Amazon.Runtime.ClientConfig 클래스는 AmazonS3Config와 같은 서비스 클라이언트 구성 클래스의 기본 클래스입니다. 이 기본 클래스는 다음과 같이 변경되었습니다.
-
기본 재시도 모드
RetryMode
속성의 기본값은Standard
대신 입니다Legacy
. 따라서 Amazon.Runtime.RequestRetryMode 열거형에서Legacy
값이 제거되었습니다. -
기본 구성 모드
DefaultConfigurationMode
속성의 기본값은Standard
대신 입니다Legacy
. 따라서 Amazon.Runtime.DefaultConfigurationMode 열거형에서Legacy
값이 제거되었습니다. -
ReadWriteTimeout
속성.NET Framework 4.7.2를 제외한 모든 대상에서 더 이상 사용되지 않는
ReadWriteTimeout
속성이 제거되었습니다.
AWSSDK.Extensions.NETCore.Setup NuGet 패키지
AWSSDK.Extensions.NETCore.Setup
-
DefaultClientConfig
클래스DefaultClientConfig
클래스는 더 이상 서비스 클라이언트 구성 기본 클래스 Amazon.Runtime.ClientConfig에서 상속되지 않습니다. 의 관련 속성은 null 가능한 값 유형을DefaultClientConfig
사용하여에 복제ClientConfig
되었습니다. 이 변경을 통해 서비스 클라이언트에 대해 생성 중인 구성에 값을 복사할DefaultClientConfig
때 값이 설정된 시기를 감지할 수 있습니다.이 변경의 특정 결과 중 하나는 V4에서
DefaultClientConfig.HttpClientFactory
를 더 이상 사용할 수 없다는 것입니다. 대신AWSConfigs.HttpClientFactory
을 사용하세요. 자세한 내용은 GitHub 문제 3790을 참조하세요. -
네이티브 AOT
C# 11 정적 인터페이스 메서드를 사용하는 서비스 클라이언트를 생성하는 새로운 메커니즘이 패키지에 추가되었습니다. 이 변경으로 인해 기본 AOT와 호환되지 않는 서비스 클라이언트 유형을 계산하기 위한 서비스 인터페이스 이름의 문자열 조작을 포함하여 어셈블리 유형 로드를 수행하여 서비스 클라이언트의 인스턴스를 생성할 필요가 없습니다. 이 변경 사항은 .NET 8 이상에서만 사용할 수 있으며 이전 버전에서는 여전히 원래 메커니즘을 사용합니다.
이 패키지의 소스 코드는의 GitHub에 있습니다https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup
CookieSigner
및 UrlSigner
Amazon CloudFront의 CookieSigner
및 UrlSigner
확장은 AWSSDK.Extensions.CloudFront.Signers
이 패키지의 소스 코드는의 GitHub에 있습니다https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers
DateTime과 UTC DateTime 비교
일부 V3 클래스에는 "사용되지 않음" 또는 "사용되지 않음"으로 표시된 DateTime 속성과 대체 UTC DateTime 속성이 있습니다. 이러한 클래스에서는 더 이상 사용되지 않는 DateTime 속성이 제거되고 UTC DateTime 속성의 이름이 DateTime 속성의 원래 이름으로 변경되었습니다.
다음은이 변경이 구현된 클래스의 몇 가지 예입니다.
-
DescribeSpotPriceHistoryRequest:
-
더 이상 사용되지 않는
StartTime
속성이 제거되었으며StartTimeUtc
속성 이름이 "StartTime"으로 변경되었습니다. -
더 이상 사용되지 않는
EndTime
속성이 제거되었으며EndTimeUtc
속성 이름이 "EndTime"으로 변경되었습니다.
-
-
-
더 이상 사용되지 않는
ValidFrom
속성이 제거되었으며ValidFromUtc
속성 이름이 "ValidFrom"으로 변경되었습니다. -
더 이상 사용되지 않는
ValidUntil
속성이 제거되었으며ValidUntilUtc
속성 이름이 "ValidUntil"로 변경되었습니다.
-
이 변경으로 인해 애플리케이션이 더 이상 사용되지 않는 원래 DateTime 속성을 사용하는 경우 오프셋 시간이 발생할 수 있습니다. UTC DateTime 속성을 사용하는 코드에 대해 컴파일 시간 오류가 발생합니다.
DateTime 구문 분석
DateTimeUnmarshaller 클래스가 업데이트되었습니다. 이 클래스는 DateTime 문자열을 현지 시간으로 구문 분석하고 반환했습니다. 경우에 따라 이러한 값은 이전 업데이트로 인해 UTC로 다시 변환되지만 항상 그런 것은 아닙니다. 이제 마샬링되지 않은 DateTime 문자열은 UTC로 간주되고 UTC로 지정되고 마샬링되지 않습니다. 이 업데이트에는 다음과 같은 동작 변경 사항이 포함됩니다.
DateTime 클래스를 기반으로 하는 특정 타임스탬프 속성이 현지 시간으로 구문 분석되고 있었습니다. 여기에는 타임스탬프에 대한 응답 마샬러와 형식 TimestampFormat.ISO8601
및에 대한 목록 타임스탬프가 포함되었습니다TimestampFormat.RFC822
. 대신 UTC 시간을 반환하도록 DateTime 구문 분석이 업데이트되었습니다.
ConvertFromUnixEpochSeconds
및 ConvertFromUnixEpochMilliseconds
Unix 에포크 초를 DateTime 구조로 변환하는 ConvertFromUnixEpochSeconds 및 ConvertFromUnixEpochMilliseconds 메서드는 Unix 에포크 시간을 UTC 시간이 아닌 현지 시간으로 반환했습니다. DateTime 이제 이러한 메서드는 UTC 시간을 반환합니다.
로깅
SDK에서 로깅을 활성화하는 방법이 V4에 대해 업데이트되었습니다. 콘솔 및 시스템 진단에 대한 로깅은 V3와 동일하게 작동합니다. 즉, AWSConfigs 클래스의 LoggingConfig.LogTo
속성을 LoggingOptions.Console
또는 로 설정하여 작동합니다LoggingOptions.SystemDiagnostics
. 에 대한 LoggingOptions 옵션이 반사를 사용하여의 인 메모리 인스턴스에 연결하기 위한 SDK의 내부 로직과 함께 제거log4net
되었습니다log4net
.
SDK의 로깅을 로깅 프레임워크에 포함하기 위해 별도의 어댑터 패키지를 사용하여 SDK를 로깅 프레임워크와 연결합니다. 용 AWSSDK.Extensions.Logging.Log4NetAdaptorlog4net
와 용 AWSSDK.Extensions.Logging.ILoggerAdaptorMicrosoft.Extensions.Logging
. 다음 코드 예제에서는이 두 경우에 로깅을 구성하는 방법을 보여줍니다.
AWSSDK.Extensions.Logging.Log4NetAdaptor
NuGet 패키지를 추가하고에서 정적 ConfigureAWSSDKLogging
메서드를 호출합니다Log4NetAWSExtensions
.
using Amazon.DynamoDBv2; using Amazon.Extensions.Logging.Log4NetAdaptor; using log4net; [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")] Log4NetAWSExtensions.ConfigureAWSSDKLogging(); var logger = LogManager.GetLogger(typeof(Program));
AWSSDK.Extensions.Logging.ILoggerAdaptor
NuGet 패키지를 추가하고 ILoggerFactory
인터페이스에서 ConfigureAWSSDKLogging
확장 메서드를 호출합니다.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.Services.GetRequiredService<ILoggerFactory>() .ConfigureAWSSDKLogging();
HTTP 2 지원
양방향 스트리밍을 활성화하기 위해 HTTP 2에 대한 지원이 추가되었습니다. 자세한 내용은 HTTP 2 지원을 참조하세요.
Single Sign-On
SSOAWSCredentialsOptions 클래스 SupportsGettingNewToken
속성의 기본값이에서 true
로 변경되었습니다false
. SSOAWSCredentials 클래스를 사용하여 SSO 자격 증명을 가져오는 애플리케이션이 있는 경우 Options.SupportsGettingNewToken
속성을 로 설정해야 할 수 있습니다true
. 이 구성의 예는의 코드 예제를 참조하세요.NET 애플리케이션만 사용하는 SSO 자습서. 자세한 내용은 aws-sdk-net
DynamoDB 관련 변경 사항
다음 변경 사항은 Amazon DynamoDB에만 적용됩니다. 이들 중 다수는 주요 변경 사항입니다.
V4의 DynamoDB 변경 사항에 대한 자세한 내용은 블로그 게시물 V4의 AWS SDK for .NET V4
SDK for DynamoDB의 V4 변경 사항은 테스트 가능성과 관련된 몇 가지 문제를 해결하지만 주로 상위 수준 라이브러리를 중심으로 합니다.
-
코드에서 DocumentModel이라는 이름의 .NET 문서 모델입니다.
-
코드에서 DataModel이라는 .NET 객체 지속성 모델입니다.
이러한 프로그래밍 모드에 대한 자세한 내용은이 설명서DynamoDB의 섹션을 참조하세요.
문서 모델: 모의 IAmazonDynamoDB
인터페이스에 대한 예외 업데이트
SDK V4 이전의 문서 모델에서 테이블이 모의 IAmazonDynamoDB 인터페이스로 초기화된 경우를 반환합니다NullReferenceException
. InvalidOperationException
대신 SDK의 V4가를 반환합니다. 비동기 Table
메서드는 모의 클라이언트에서 작동해야 하지만에서 동기 메서드를 호출할 때 예외가 계속 표시될 수 있습니다.NET/Core/Standard
.
이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3388
문서 모델: FromJson
및 ToJson
메서드
이제 문서 클래스의 FromJson
및 ToJson
메서드는 직렬화에 LitJson System.Text.Json
대신를 사용하며, LitJson은 SDK의 V4에서 제거되었습니다. 를 사용하면이 구문 분석기System.Text.Json
가 숫자 부동 소수점 속성에 대해 더 높은 정밀도를 지원하는 .NET Decimal
유형 사용을 지원한다는 이점이 있습니다.
객체 지속성 모델: DynamoDBOperationConfig
클래스
객체 지속성 모델에서 공유 DynamoDBOperationConfig 클래스가 다음과 같이 변경되었습니다.
-
클래스는 SaveConfig, LoadConfig 및 QueryConfig와 같은 새로운 작업별 클래스로 분리되었습니다. 를 사용하는 메서
DynamoDBOperationConfig
드는 더 이상 사용되지 않는 것으로 표시되었으며 향후 제거될 수 있습니다.이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3421
을 참조하세요. -
클래스에서
MetadataCachingMode
및DisableFetchingTableMetadata
속성이 제거되었습니다. 이러한 속성은 앞서 언급한 새로운 작업별 클래스에 포함되지 않았습니다. 제거된 속성은 AWSConfigsDynamoDB 클래스의 전역Context
속성 또는 DynamoDBContextConfig 클래스에 지정해야 하는 테이블 수준 설정입니다.이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3422
를 참조하세요. -
클래스는 더 이상 DynamoDBContextConfig 클래스에서 상속되지 않습니다. 이렇게 하면 작업별 구성의 일부 속성(예:
OverrideTableName
)이 적용되지 않는 DynamoDBContext의 생성자에DynamoDBOperationConfig
객체를 전달할 수 없습니다.이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3422
를 참조하세요.
객체 지속성 모델: 다형성
DynamoDBPolymorphicTypeAttribute 클래스가 객체 지속성 모델에 추가되었습니다. 이 클래스를 사용하면 다형성 유형의 직렬화 및 역직렬화를 지원할 수 있습니다. 자세한 내용은 GitHub의 PR 3643
문서 모델 및 객체 지속성 모델: 모의 작업
고객이 DynamoDB 작업을 모의할 수 있도록 하는 새로운 작업별 인터페이스가 추가되었습니다. IDynamoDBContext 인터페이스의 팩토리 메서드가 새 인터페이스를 반환하도록 업데이트되었습니다.
이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3450
-
객체 지속성 모델
-
IBatchGet
및IMultiTableBatchGet
인터페이스를 통한 모의BatchGet
작업. -
IBatchWrite
및IMultiTableBatchWrite
인터페이스를 통한 모의BatchWrite
작업. -
ITransactGet
및IMultiTableTransactGet
인터페이스를 통한 모의TransactGet
작업. -
ITransactWrite
및IMultiTableTransactWrite
인터페이스를 통한 모의TransactWrite
작업. -
IAsyncSearch
인터페이스를 통한 모의Scan
및Query
작업.
-
-
문서 모델
-
ITable
인터페이스를 통한 모의Table
작업. -
ISearch
인터페이스를 통한 모의Scan
및Query
작업. -
IDocumentTransactWrite
및IMultiTableDocumentTransactWrite
인터페이스를 통한 모의TransactWrite
작업. -
IDocumentTransactGet
및IMultiTableDocumentTransactGet
인터페이스를 통한 모의TransactGet
작업. -
IDocumentBatchWrite
및IMultiTableDocumentBatchWrite
인터페이스를 통한 모의BatchWrite
작업. -
IDocumentBatchGet
및IMultiTableDocumentBatchGet
인터페이스를 통한 모의BatchGet
작업.
-
문서 모델 및 객체 지속성 모델: 네이티브 AOT 지원
기본 AOT의 제한 사항은 중첩된 .NET 유형에 대한 지원입니다. 경우에 따라 이러한 중첩된 유형은 .NET 컴파일러의 트리밍 구성 요소에서 눈에 띄지 않을 수 있습니다. 이 경우 다음과 같은 예외가 발생할 수 있습니다. "System.InvalidOperationException: Type <type> is unsupported, it cannot be instantiated.
"
트리머에게 하위 유형에 대한 종속성을 알려주는 코드 경로의 DynamicDependency
어딘가에를 추가하여이 제한을 해결할 수 있습니다. 저장 중인 최상위 .NET 유형의 생성자가 가능성이 높습니다. 다음 코드 예제에서는 DynamicDependency
속성을 사용하는 방법을 보여줍니다.
[DynamoDBTable("TestTable")] class TypeWithNestedTypeProperty { [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(SubType))] public TypeWithNestedTypeProperty() { } [DynamoDBHashKey] public string Id { get; set; } public string Name { get; set; } public SubType SubType { get; set; } } class SubType { public string SubName { get; set; } }
DynamoDBStreams
DynamoDBStreams는 AWSSDK.DynamoDBAmazon.DynamoDBStreams
.
TableNamePrefix
값 제거 허용
이제 개별 작업 수준에서 DynamoDBContextConfig 클래스의 TableNamePrefix
속성 값을 제거할 수 있습니다. 이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3476
RetrieveDateTimeInUtc
속성
DynamoDBContextConfig 클래스의 경우 RetrieveDateTimeInUtc
속성의 기본값이 로 변경되었습니다true
.
DynamoDBContextTableNamePrefix
속성
AWSConfigsDynamoDB 클래스에서 DynamoDBContextTableNamePrefix
속성을 제거했습니다. 사용자는 AWSConfigsDynamoDB.Context.TableNamePrefix
대신를 호출해야 합니다.
EC2 관련 변경 사항
다음 변경 사항은 Amazon EC2에만 적용됩니다. 이들 중 대부분 또는 전부가 주요 변경 사항입니다.
GetDecryptedPassword
Amazon EC2의 GetDecryptedPassword
확장이 AWSSDK.Extensions.EC2.DecryptPassword
이 패키지의 소스 코드는의 GitHub에 있습니다https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword
Amazon EC2 IMDSv1 지원
인스턴스 메타데이터 서비스 버전 1(IMDSv1)에 대한 지원이 제거되었습니다. SDK의 V4는 IMDS에서 자격 증명 및 기타 메타데이터를 가져올 때 항상 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용합니다. IMDS에 대한 자세한 내용은 Amazon EC2 사용 설명서의 IMDS 사용을 참조하세요.
변경 또는 제거된 프로그래밍 요소
-
전체
Amazon.EC2.Import
네임스페이스와 코드가 제거되었습니다. -
Windows용 EC2 AMI를 조회하는 데 사용된 AMIs 유틸리티를 포함하는 전체
Amazon.EC2.Util
네임스페이스와 코드가 제거되었습니다. -
더 이상 사용되지 않는
IpRanges
속성이 IpPermission 클래스에서 제거되었습니다. 대신Ipv4Ranges
또는Ipv6Ranges
속성을 사용합니다. -
EC2InstanceMetadata 클래스에서 더 이상 사용되지 않는 필드
EC2_METADATA_SVC
,EC2_METADATA_ROOT
,EC2_USERDATA_ROOT
, 및EC2_DYNAMICDATA_ROOT
가 제거되었습니다EC2_APITOKEN_URL
.
S3 관련 변경 사항
다음 변경 사항은 Amazon S3에만 적용됩니다. 이들 중 대부분 또는 전부가 주요 변경 사항입니다.
AWS 리전 us-east-1
us-east-1
리전에 대해 구성된 Amazon S3 서비스 클라이언트는 더 이상 다른 리전의 버킷에 액세스할 수 없습니다. 버킷은 버킷이 있는 리전에 대해 구성된 S3 서비스 클라이언트를 사용하여 액세스해야 합니다.
이 변경 사항에 대한 자세한 내용은 블로그 게시물 V4의 AWS SDK for .NET V4
S3 암호화 클라이언트
Amazon.S3.Encryption
네임스페이스에 정의된 Amazon S3 암호화 클라이언트가 AWSSDK.S3
에 대한 S3 태그 지정 지시문 CopyObject
TaggingDirective
속성은 AmazonS3Client.CopyObject
메서드에서 사용하는 CopyObjectRequest 클래스의 퍼블릭 속성으로 노출되었습니다. 이 속성은 CopyObject 작업에 정의된 Amazon S3 x-amz-tagging-directive
파라미터에 해당합니다.
태그 지정 지시문은 더 이상 COPY로 자동 설정되지 않습니다. 개발자가 태그 지정 지시문을 지정하지 않으면 S3 백엔드는 자동으로 COPY라고 가정하지만, 개발자가 속성을 null로 명시적으로 설정하면 값이 전혀 설정되지 않습니다.
S3 구성의 UseArnRegion
속성
AWS_S3_USE_ARN_REGION
환경 변수가 공유 AWS config
파일의 s3_use_arn_region
설정보다 우선하도록 Amazon.S3.AmazonS3Config 클래스의 UseArnRegion
속성이 업데이트되었습니다. 이러한 변수 및 설정에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 설정 참조를 참조하세요. AWS SDKs
CopyObject
및 CopyPart
메서드의 선행 슬래시
Amazon S3 CopyObject
및 CopyPart
메서드에 대해 선행 슬래시가 더 이상 잘리지 않습니다. CopyObjectRequest 및 CopyPartRequest CopyPartRequest 클래스에서 DisableTrimmingLeadingSlash
속성이 제거되었습니다.
DoesS3BucketExist...
메서드
더 이상 사용되지 않는 DoesS3BucketExist
및 DoesS3BucketExistAsync
메서드는 ICoreAmazonS33 인터페이스를 구현하는 AmazonS3Util 클래스에서 제거되었습니다. 이러한 메서드는 항상 HTTP를 사용하기 때문에 제거되었습니다. 대신 DoesS3BucketExistV2 및 DoesS3BucketExistV2Async를 사용합니다.
SDK는 항상 SigV4를 사용합니다.
의 버전 4는 요청에 서명하기 위해 AWS SDK for .NET 항상 AWS 서명 버전 4(SigV4)를 사용합니다. 이 변경으로 인해 다음과 같은 관련 변경 사항이 발생합니다.
-
AWSConfigsS3 클래스의
UseSignatureVersion4
속성이 제거되었습니다. -
Amazon.Runtime.ClientConfig 클래스의
SignatureVersion
속성이 제거되었습니다. 이 속성은 이전 버전과의 호환성을 위해 Amazon S3에서만 사용되었습니다. -
RegionEndpoint.Endpoint
클래스가 제거되었습니다. 여기에는 Amazon S3의 서명 버전을 재정의하는 데 사용된SignatureVersionOverride
속성이 포함됩니다. 대신 서비스별client.DetermineServiceOperationEndPoint()
메서드를 사용합니다. -
SigV4를 사용하도록 AmazonS3Util.PostUpload 및 S3PostUploadSignedPolicy.GetSignedPolicy 메서드를 업데이트했습니다. 따라서는
GetSignedPolicy
이제 동일한 함수를 수행하기 때문에S3PostUploadSignedPolicy.GetSignedPolicyV4
메서드가 제거되었습니다. 또한GetSignedPolicy
에는 리전 엔드포인트에 대한 세 번째 파라미터가 부여되었습니다.
GetACL
및 PutACL
메서드
AmazonS3Client 클래스의 GetACL
및 PutACL
메서드가 더 이상 사용되지 않는 것으로 표시되었습니다. 이러한 메서드의 기능에 액세스하려면 대신 , GetBucketACL
, 및 새 메서드를 사용합니다PutBucketACL
GetObjectACL
PutObjectACL
.
더 이상 사용되지 않는 프로그래밍 요소 제거됨
열거 값, 유형, 메서드, 네임스페이스 등을 포함하여 Amazon S3 구현의 여러 프로그래밍 요소가 SDK의 V4에서 제거되었습니다. 이전에 다루지 않은 경우 제거를 수용하기 위해 취할 수 있는 잠재적 단계와 함께 아래에 나열되어 있습니다.
-
TransferUtilityUploadRequest 클래스에서
DisableMD5Stream
속성이 제거되었습니다. 대신DisableDefaultChecksumValidation
속성을 사용합니다.또한
CalculateContentMD5Header
속성이TransferUtilityUploadRequest
클래스에서 제거되었습니다. SDK가 기본적으로 체크섬을 계산하므로이 속성은 더 이상 필요하지 않습니다. -
CopyPartRequest 클래스에서
ServerSideEncryptionMethod
및ServerSideEncryptionKeyManagementServiceKeyId
속성이 제거되었습니다. 대신 InitiateMultipartUploadRequest 클래스에서 이름이 동일한 속성을 사용합니다.이 속성은 AmazonS3Client 클래스의 일부InitiateMultipartUpload...
메서드에서 사용됩니다. -
GetObjectResponse 클래스에서
Expires
속성이 제거되었습니다. 대신ExpiresString
속성을 사용합니다. 문자열이 유효한 타임스탬프 형식이 아닐 수 있으므로 로 변환할 때 코드가TryParse
메서드를 사용해야 합니다DateTime
. -
SS3Region 열거에서 더 이상 사용되지 않는 AWS 리전 식별자가 제거되었습니다.
-
Prefix
속성이 LifecycleRule 클래스에서 제거되었습니다. 대신Filter
속성을 사용합니다.또한
NoncurrentVersionTransition
및Transition
속성이LifecycleRule
클래스에서 제거되었습니다. 대신NoncurrentVersionTransitions
및Transitions
컬렉션을 사용합니다. -
TopicConfiguration 클래스에서
Event
속성이 제거되었습니다. 대신Events
컬렉션을 사용합니다. -
CalculateContentMD5Header 속성입니다. SDK는 기본적으로 체크섬을 계산하므로이 속성을 더 이상 설정할 필요가 없습니다.
-
Bucket
속성이 SelectObjectContentRequest 클래스에서 제거되었습니다. 대신BucketName
속성을 사용합니다. -
TransferUtilityConfig 클래스에서
NumberOfUploadThreads
속성이 제거되었습니다. 대신ConcurrentServiceRequests
속성을 사용합니다.
제거된 프로그래밍 요소
열거 값, 유형, 메서드, 네임스페이스 등을 포함하여 SDK의 V4에서 여러 프로그래밍 요소가 제거되었습니다. 이전에 다루지 않은 경우 제거를 수용하기 위해 취할 수 있는 잠재적 단계와 함께 아래에 나열되어 있습니다.
Amazon.Auth.AccessControlPolicy.ActionIdentifiers
네임스페이스
Amazon.Auth.AccessControlPolicy.ActionIdentifiers
네임스페이스가 제거되었습니다. 여기에는 IdentityandAccessManagementActionIdentifiers
클래스에 정의된 IAM 작업 식별자가 포함됩니다. 이러한 작업 식별자를 사용하는 코드는 작업 이름의 문자열 값을 사용하도록 변경해야 합니다.
자세한 내용은 IAM 사용 설명서의 JSON에서 IAM 관리형 정책 생성 및 JSON 정책 개요를 참조하세요. https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json
ClientConfig
클래스
Amazon.Runtime.ClientConfig 클래스는 AmazonS3Config와 같은 서비스 클라이언트 구성 클래스의 기본 클래스입니다. 이 클래스에서 다음 프로그래밍 요소가 제거되었습니다.
-
DetermineServiceURL
및DetermineDnsSuffix
메서드가 제거되었습니다. 대신 서비스 클라이언트의DetermineServiceOperationEndpoint
메서드를 사용합니다. 예: AmazonS3Client.DetermineServiceOperationEndpoint. -
ReadEntireResponse
속성이 제거되었습니다. 대신 다음 중 하나를 사용합니다.-
AWSConfigs.LoggingConfig 클래스의
LogResponses
속성입니다. -
AmazonS3Config와 같은 클라이언트 구성의
LogResponse
속성입니다.
-
Amazon.Runtime
네임스페이스
Amazon.Runtime 네임스페이스가 다음과 같이 업데이트되었습니다.
-
더 이상 사용되지 않는
ECSTaskCredentials
클래스가 네임스페이스에서 제거되었습니다. 대신 Amazon EKS Pod Identity를 지원하는 GenericContainerCredentials 공급자를 사용합니다. -
더 이상 사용되지 않는
StoredProfileAWSCredentials
및StoredProfileCredentials
클래스가 네임스페이스에서 제거되었습니다. 대신 Amazon.Runtime.CredentialManagement 네임스페이스의 NetSDKCredentialsFile 또는 SharedCredentialsFile 클래스를 사용합니다. CredentialManagement -
SSOAWSCredentials 클래스의 더 이상 사용되지 않는
HasCachedAccessTokenAvailable
메서드가 네임스페이스에서 제거되었습니다. -
더 이상 사용되지 않는
EnvironmentAWSCredentials
클래스가 네임스페이스에서 제거되었습니다. 대신 AppConfigAWSCredentials 클래스를 사용합니다. -
더 이상 사용되지 않는
StoredProfileFederatedCredentials
클래스가 네임스페이스에서 제거되었습니다. 대신 FederatedAWSCredentials 클래스를 사용합니다. -
더 이상 사용되지 않는 클래스인
EnvironmentVariableAWSEndpointDiscoveryEnabled
,ProfileAWSEndpointDiscoveryEnabled
및가 네임스페이스에서 제거되었습니다FallbackEndpointDiscoveryEnabledFactory
. -
더 이상 사용되지 않는
UseSigV4
속성이 AmazonWebServiceRequest 클래스에서 제거되었습니다. 대신SignatureVersion
속성을 사용합니다. -
Amazon.Runtime.Internal.Util
네임스페이스의ProfileIniFile
클래스에는 라는 오버로드된 메서드가 있습니다TryGetSection
. 에 대한out
파라미터를 지원하지 않는 메서드의 버전이 클래스에서 제거nestedProperties
되었습니다. -
Amazon.Runtime.Internal.Auth
네임스페이스에서 더 이상 사용되지 않는EventBridgeSigner
클래스가 제거되었습니다. -
더 이상 사용되지 않는
Parameters
사전 속성이 WebServiceRequestEventArgs 클래스에서 제거되었습니다. 대신ParameteCollection
속성을 사용합니다.
BouncyCastle
BouncyCastle의 소스 복사본이 SDK의 V4에서 제거되었습니다.
StoredProfileSAMLCredentials
클래스
Amazon.SecurityToken.SAML 네임스페이스에서 더 이상 사용되지 않는 StoredProfileSAMLCredentials
클래스가 제거되었습니다. 대신 Amazon.Runtime 네임스페이스에서 FederatedAWSCredentials 클래스를 사용합니다.
AWSSDKUtils
클래스
AWSSDKUtils 클래스에서 ResolveResourcePath
, ProtectEncodedSlashUrlEncode
및 메서드가 제거되었습니다ConvertToUnixEpochMilliSeconds
.
ProfileManager
클래스
더 이상 사용되지 않는 ProfileManager
클래스가 Amazon.Util 네임스페이스에서 제거되었습니다. 대신 Amazon.Runtime.CredentialManagement 네임스페이스의 NetSDKCredentialsFile 또는 SharedCredentialsFile 클래스를 사용합니다. CredentialManagement
AWSConfigs
클래스
AWSConfigs 클래스에서 더 이상 사용되지 않는 속성인 Logging
, ResponseLogging
및가 제거되었습니다LogMetrics
. 대신 LoggingConfig
속성을 사용합니다.
ConditionFactory
클래스
ConditionFactory 클래스에서 다음 서명이 있는 메서드가 제거되었습니다NewCondition(ConditionFactory.DateComparisonType, DateTime)
. 대신 NewConditionUtc 메서드를 사용합니다.
Amazon CloudFront 유틸리티
더 이상 사용되지 않는 Amazon.CloudFront.Util
네임스페이스와 AmazonCloudFrontUtil
클래스가 제거되었습니다.
AWS IoT
ListPrincipalThingsResponse 클래스에서는 페이지 매김을 위해 NextToken
재정의를 위한 레거시 사용자 지정이 제거되었습니다.
AWS Lambda
이름이 혼동되어 AmazonLambdaClient 클래스의 다음 Invoke...
메서드가 제거되었습니다.
-
서명이 인 V3 메서드가 제거되었습니다
InvokeAsyncResponse InvokeAsync(InvokeAsyncRequest)
. SDK의 V3에서 동기식 메서드입니다. 대신InvokeResponse Invoke(InvokeRequest)
(동기 처리의 경우) 또는Task InvokeAsync(InvokeRequest, CancellationToken)
(비동기 처리의 경우)를 사용합니다. -
서명이 인 V3 메서드가 제거되었습니다
Task InvokeAsyncAsync(InvokeAsyncRequest, CancellationToken)
. 이는 SDK의 V3에서 비동기식 메서드입니다. 대신Task InvokeAsync(InvokeRequest, CancellationToken)
을 사용하세요.
Amazon SageMaker 런타임
PayloadPart 클래스에 대한 더 이상 사용되지 않는 생성자가 제거되었습니다.