의 버전 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을 참조하세요. 이 변경의 또 다른 결과는 서비스 구성 객체를 수락한
IConfiguration.GetAWSOptions확장 메서드의 일반 오버로드가 제거되었다는 것입니다. 일반이 아닌 오버로드는 대신 사용해야 하며 SDK는 채우는 서비스별 설정을 자동으로 처리합니다. 자세한 내용은 GitHub 문제 3866을 참조하세요. -
네이티브 AOT
C# 11 정적 인터페이스 메서드를 사용하는 서비스 클라이언트를 생성하는 새로운 메커니즘이 패키지에 추가되었습니다. 이 변경으로 인해 기본 AOT와 호환되지 않는 서비스 클라이언트 유형을 계산하기 위한 서비스 인터페이스 이름의 문자열 조작을 포함하여 어셈블리 유형 로드를 수행하여 서비스 클라이언트의 인스턴스를 생성할 필요가 없습니다. 이 변경 사항은 .NET 8 이상에서만 사용할 수 있으며 이전 버전에서는 여전히 원래 메커니즘을 사용합니다.
이 가이드에서이 패키지에 대한 자세한 내용은 섹션을 참조하세요AWSSDK.Extensions.NETCore.Setup 및 IConfiguration. 이 패키지의 소스 코드는의 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. 대신 SDK의 V4가를 반환InvalidOperationException합니다. 비동기 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, 및 새 메서드를 사용합니다PutBucketACLGetObjectACLPutObjectACL.
더 이상 사용되지 않는 프로그래밍 요소 제거됨
열거 값, 유형, 메서드, 네임스페이스 등을 포함하여 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 클래스에 대한 더 이상 사용되지 않는 생성자가 제거되었습니다.