의 버전 4로 마이그레이션 AWS SDK for .NET - AWS SDK for .NET (V4)

버전 4(V4) AWS SDK for .NET 가 릴리스되었습니다.

변경 사항 해제 및 애플리케이션 마이그레이션에 대한 자세한 내용은 마이그레이션 주제를 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

의 버전 4로 마이그레이션 AWS SDK for .NET

AWS SDK for .NET 버전 4(V4)는 SDK 버전 3(V3)에서 크게 변경되었습니다. 이 주제에서는 버전 4의 주요 변경 사항과 V3에서 환경 또는 코드를 마이그레이션하기 위해 수행해야 할 수 있는 작업에 대해 설명합니다. SDK의 기타 주목할 만한 변경 사항에 대한 자세한 내용은 다음 리소스를 참조하세요.

.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 열거형

    열거형StsRegionalEndpointsValueAmazon.Runtime 네임스페이스에서 제거되었습니다. 해당 열거형을 사용하는 모든 코드는 제거해야 합니다.

  • STSAssumeRoleAWSCredentials 클래스

    더 이상 사용되지 않는 STS 수임 역할 자격 증명 공급자 STSAssumeRoleAWSCredentialsAmazon.SecurityToken 네임스페이스에서 제거되었습니다. 대신 Amazon.RuntimeAssumeRoleAWSCredentials를 사용합니다.

와 관련된 변경 사항 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 NuGet 패키지는 SDK의 V3에 있는 문제를 완화하고 패키지를 네이티브 AOT에 안전하게 만들기 위해 업데이트되었습니다. 이러한 변경 사항은 아래에 요약되어 있습니다. 자세한 내용은 GitHub의 PR 3353을 참조하세요.

  • 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.

CookieSignerUrlSigner

Amazon CloudFront의 CookieSignerUrlSigner 확장은 AWSSDK.Extensions.CloudFront.Signers라는 별도의 확장 패키지로 이동되었습니다. 이 변경 사항은 OpenSSL 3을 지원하고 BouncyCastle.Cryptography에 종속되도록 하기 위한 것입니다.

이 패키지의 소스 코드는의 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"으로 변경되었습니다.

  • CreateFleetRequest

    • 더 이상 사용되지 않는 ValidFrom 속성이 제거되었으며 ValidFromUtc 속성 이름이 "ValidFrom"으로 변경되었습니다.

    • 더 이상 사용되지 않는 ValidUntil 속성이 제거되었으며 ValidUntilUtc 속성 이름이 "ValidUntil"로 변경되었습니다.

이 변경으로 인해 애플리케이션이 더 이상 사용되지 않는 원래 DateTime 속성을 사용하는 경우 오프셋 시간이 발생할 수 있습니다. UTC DateTime 속성을 사용하는 코드에 대해 컴파일 시간 오류가 발생합니다.

DateTime 구문 분석

DateTimeUnmarshaller 클래스가 업데이트되었습니다. 이 클래스는 DateTime 문자열을 현지 시간으로 구문 분석하고 반환했습니다. 경우에 따라 이러한 값은 이전 업데이트로 인해 UTC로 다시 변환되지만 항상 그런 것은 아닙니다. 이제 마샬링되지 않은 DateTime 문자열은 UTC로 간주되고 UTC로 지정되고 마샬링되지 않습니다. 이 업데이트에는 다음과 같은 동작 변경 사항이 포함됩니다.

DateTime 클래스를 기반으로 하는 특정 타임스탬프 속성이 현지 시간으로 구문 분석되고 있었습니다. 여기에는 타임스탬프에 대한 응답 마샬러와 형식 TimestampFormat.ISO8601 및에 대한 목록 타임스탬프가 포함되었습니다TimestampFormat.RFC822. 대신 UTC 시간을 반환하도록 DateTime 구문 분석이 업데이트되었습니다.

ConvertFromUnixEpochSecondsConvertFromUnixEpochMilliseconds

Unix 에포크 초를 DateTime 구조로 변환하는 ConvertFromUnixEpochSecondsConvertFromUnixEpochMilliseconds 메서드는 Unix 에포크 시간을 UTC 시간이 아닌 현지 시간으로 반환했습니다. DateTime 이제 이러한 메서드는 UTC 시간을 반환합니다.

로깅

SDK에서 로깅을 활성화하는 방법이 V4에 대해 업데이트되었습니다. 콘솔 및 시스템 진단에 대한 로깅은 V3와 동일하게 작동합니다. 즉, AWSConfigs 클래스의 LoggingConfig.LogTo 속성을 LoggingOptions.Console 또는 로 설정하여 작동합니다LoggingOptions.SystemDiagnostics. 에 대한 LoggingOptions 옵션이 반사를 사용하여의 인 메모리 인스턴스에 연결하기 위한 SDK의 내부 로직과 함께 제거log4net되었습니다log4net.

SDK의 로깅을 로깅 프레임워크에 포함하기 위해 별도의 어댑터 패키지를 사용하여 SDK를 로깅 프레임워크와 연결합니다. 용 AWSSDK.Extensions.Logging.Log4NetAdaptor 패키지log4net와 용 AWSSDK.Extensions.Logging.ILoggerAdaptor 패키지를 사용합니다Microsoft.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 GitHub 리포지토리의 PR 3737을 참조하세요.

DynamoDB 관련 변경 사항

다음 변경 사항은 Amazon DynamoDB에만 적용됩니다. 이들 중 다수는 주요 변경 사항입니다.

V4의 DynamoDB 변경 사항에 대한 자세한 내용은 블로그 게시물 V4의 AWS SDK for .NET V4를 AWS SDK for .NET참조하세요.

SDK for DynamoDB의 V4 변경 사항은 테스트 가능성과 관련된 몇 가지 문제를 해결하지만 주로 상위 수준 라이브러리를 중심으로 합니다.

이러한 프로그래밍 모드에 대한 자세한 내용은이 설명서DynamoDB의 섹션을 참조하세요.

문서 모델: 모의 IAmazonDynamoDB 인터페이스에 대한 예외 업데이트

SDK V4 이전의 문서 모델에서 테이블이 모의 IAmazonDynamoDB 인터페이스로 초기화된 경우를 반환합니다NullReferenceException. InvalidOperationException 대신 SDK의 V4가를 반환합니다. 비동기 Table 메서드는 모의 클라이언트에서 작동해야 하지만에서 동기 메서드를 호출할 때 예외가 계속 표시될 수 있습니다.NET/Core/Standard.

이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3388을 참조하세요.

문서 모델: FromJsonToJson 메서드

이제 문서 클래스의 FromJsonToJson 메서드는 직렬화에 LitJson System.Text.Json 대신를 사용하며, LitJson은 SDK의 V4에서 제거되었습니다. 를 사용하면이 구문 분석기System.Text.Json가 숫자 부동 소수점 속성에 대해 더 높은 정밀도를 지원하는 .NET Decimal 유형 사용을 지원한다는 이점이 있습니다.

객체 지속성 모델: DynamoDBOperationConfig 클래스

객체 지속성 모델에서 공유 DynamoDBOperationConfig 클래스가 다음과 같이 변경되었습니다.

  • 클래스는 SaveConfig, LoadConfigQueryConfig와 같은 새로운 작업별 클래스로 분리되었습니다. 를 사용하는 메서DynamoDBOperationConfig드는 더 이상 사용되지 않는 것으로 표시되었으며 향후 제거될 수 있습니다.

    이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3421을 참조하세요.

  • 클래스에서 MetadataCachingModeDisableFetchingTableMetadata 속성이 제거되었습니다. 이러한 속성은 앞서 언급한 새로운 작업별 클래스에 포함되지 않았습니다. 제거된 속성은 AWSConfigsDynamoDB 클래스의 전역 Context 속성 또는 DynamoDBContextConfig 클래스에 지정해야 하는 테이블 수준 설정입니다.

    이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3422를 참조하세요.

  • 클래스는 더 이상 DynamoDBContextConfig 클래스에서 상속되지 않습니다. 이렇게 하면 작업별 구성의 일부 속성(예: OverrideTableName)이 적용되지 않는 DynamoDBContext의 생성자에 DynamoDBOperationConfig 객체를 전달할 수 없습니다.

    이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3422를 참조하세요.

객체 지속성 모델: 다형성

DynamoDBPolymorphicTypeAttribute 클래스가 객체 지속성 모델에 추가되었습니다. 이 클래스를 사용하면 다형성 유형의 직렬화 및 역직렬화를 지원할 수 있습니다. 자세한 내용은 GitHub의 PR 3643을 참조하세요.

문서 모델 및 객체 지속성 모델: 모의 작업

고객이 DynamoDB 작업을 모의할 수 있도록 하는 새로운 작업별 인터페이스가 추가되었습니다. IDynamoDBContext 인터페이스의 팩토리 메서드가 새 인터페이스를 반환하도록 업데이트되었습니다.

이 변경 사항에 대한 자세한 내용은 GitHub의 PR 3450을 참조하세요.

  • 객체 지속성 모델

    • IBatchGetIMultiTableBatchGet 인터페이스를 통한 모의 BatchGet 작업.

    • IBatchWriteIMultiTableBatchWrite 인터페이스를 통한 모의 BatchWrite 작업.

    • ITransactGetIMultiTableTransactGet 인터페이스를 통한 모의 TransactGet 작업.

    • ITransactWriteIMultiTableTransactWrite 인터페이스를 통한 모의 TransactWrite 작업.

    • IAsyncSearch 인터페이스를 통한 모의 ScanQuery 작업.

  • 문서 모델

    • ITable 인터페이스를 통한 모의 Table 작업.

    • ISearch 인터페이스를 통한 모의 ScanQuery 작업.

    • IDocumentTransactWriteIMultiTableDocumentTransactWrite 인터페이스를 통한 모의 TransactWrite 작업.

    • IDocumentTransactGetIMultiTableDocumentTransactGet 인터페이스를 통한 모의 TransactGet 작업.

    • IDocumentBatchWriteIMultiTableDocumentBatchWrite 인터페이스를 통한 모의 BatchWrite 작업.

    • IDocumentBatchGetIMultiTableDocumentBatchGet 인터페이스를 통한 모의 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

DynamoDBStreamsAWSSDK.DynamoDB NuGet 패키지에서 제거되었으며 자체 패키지인 AWSSDK.DynamoDBStreams에서 사용할 수 있으며 자체 네임스페이스인가 있습니다Amazon.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라는 별도의 확장 패키지로 이동되었습니다. 이 변경 사항은 OpenSSL 3을 지원하고 BouncyCastle.Cryptography에 종속되도록 하기 위한 것입니다.

이 패키지의 소스 코드는의 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 패키지에서 제거되었습니다. 이 클라이언트는 Amazon.Extensions.S3.Encryption이라는 자체 패키지로 이동되었으며 이에 대한 설명서는에 있습니다https://aws.github.io/amazon-s3-encryption-client-dotnet/api/Amazon.Extensions.S3.Encryption.html. 마이그레이션에 대한 자세한 내용은 섹션을 참조하세요Amazon S3 암호화 클라이언트 마이그레이션. S3 암호화에 대한 자세한 내용은 Amazon 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

CopyObjectCopyPart 메서드의 선행 슬래시

Amazon S3 CopyObjectCopyPart 메서드에 대해 선행 슬래시가 더 이상 잘리지 않습니다. CopyObjectRequest 및 CopyPartRequest CopyPartRequest 클래스에서 DisableTrimmingLeadingSlash 속성이 제거되었습니다.

DoesS3BucketExist... 메서드

더 이상 사용되지 않는 DoesS3BucketExistDoesS3BucketExistAsync 메서드는 ICoreAmazonS33 인터페이스를 구현하는 AmazonS3Util 클래스에서 제거되었습니다. 이러한 메서드는 항상 HTTP를 사용하기 때문에 제거되었습니다. 대신 DoesS3BucketExistV2DoesS3BucketExistV2Async를 사용합니다.

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.PostUploadS3PostUploadSignedPolicy.GetSignedPolicy 메서드를 업데이트했습니다. 따라서는 GetSignedPolicy 이제 동일한 함수를 수행하기 때문에 S3PostUploadSignedPolicy.GetSignedPolicyV4 메서드가 제거되었습니다. 또한 GetSignedPolicy에는 리전 엔드포인트에 대한 세 번째 파라미터가 부여되었습니다.

GetACLPutACL 메서드

AmazonS3Client 클래스의 GetACLPutACL 메서드가 더 이상 사용되지 않는 것으로 표시되었습니다. 이러한 메서드의 기능에 액세스하려면 대신 , GetBucketACL, 및 새 메서드를 사용합니다PutBucketACLGetObjectACLPutObjectACL.

더 이상 사용되지 않는 프로그래밍 요소 제거됨

열거 값, 유형, 메서드, 네임스페이스 등을 포함하여 Amazon S3 구현의 여러 프로그래밍 요소가 SDK의 V4에서 제거되었습니다. 이전에 다루지 않은 경우 제거를 수용하기 위해 취할 수 있는 잠재적 단계와 함께 아래에 나열되어 있습니다.

  • TransferUtilityUploadRequest 클래스에서 DisableMD5Stream 속성이 제거되었습니다. 대신 DisableDefaultChecksumValidation 속성을 사용합니다.

    또한 CalculateContentMD5Header 속성이 TransferUtilityUploadRequest 클래스에서 제거되었습니다. SDK가 기본적으로 체크섬을 계산하므로이 속성은 더 이상 필요하지 않습니다.

  • CopyPartRequest 클래스에서 ServerSideEncryptionMethodServerSideEncryptionKeyManagementServiceKeyId 속성이 제거되었습니다. 대신 InitiateMultipartUploadRequest 클래스에서 이름이 동일한 속성을 사용합니다.이 속성은 AmazonS3Client 클래스의 일부 InitiateMultipartUpload... 메서드에서 사용됩니다.

  • GetObjectResponse 클래스에서 Expires 속성이 제거되었습니다. 대신 ExpiresString 속성을 사용합니다. 문자열이 유효한 타임스탬프 형식이 아닐 수 있으므로 로 변환할 때 코드가 TryParse 메서드를 사용해야 합니다DateTime.

  • SS3Region 열거에서 더 이상 사용되지 않는 AWS 리전 식별자가 제거되었습니다.

  • Prefix 속성이 LifecycleRule 클래스에서 제거되었습니다. 대신 Filter 속성을 사용합니다.

    또한 NoncurrentVersionTransitionTransition 속성이 LifecycleRule 클래스에서 제거되었습니다. 대신 NoncurrentVersionTransitionsTransitions 컬렉션을 사용합니다.

  • 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와 같은 서비스 클라이언트 구성 클래스의 기본 클래스입니다. 이 클래스에서 다음 프로그래밍 요소가 제거되었습니다.

  • DetermineServiceURLDetermineDnsSuffix 메서드가 제거되었습니다. 대신 서비스 클라이언트의 DetermineServiceOperationEndpoint 메서드를 사용합니다. 예: AmazonS3Client.DetermineServiceOperationEndpoint.

  • ReadEntireResponse 속성이 제거되었습니다. 대신 다음 중 하나를 사용합니다.

Amazon.Runtime 네임스페이스

Amazon.Runtime 네임스페이스가 다음과 같이 업데이트되었습니다.

  • 더 이상 사용되지 않는 ECSTaskCredentials 클래스가 네임스페이스에서 제거되었습니다. 대신 Amazon EKS Pod Identity를 지원하는 GenericContainerCredentials 공급자를 사용합니다.

  • 더 이상 사용되지 않는 StoredProfileAWSCredentialsStoredProfileCredentials 클래스가 네임스페이스에서 제거되었습니다. 대신 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 클래스에 대한 더 이상 사용되지 않는 생성자가 제거되었습니다.