View a markdown version of this page

遷移至 第 4 版 適用於 .NET 的 AWS SDK - 適用於 .NET 的 AWS SDK (V4)

第 4 版 (V4) 適用於 .NET 的 AWS SDK 已發行!

如需有關中斷變更和遷移應用程式的資訊,請參閱遷移主題。

Orange button with text "Click here for details".

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

遷移至 第 4 版 適用於 .NET 的 AWS SDK

適用於 .NET 的 AWS SDK 第 4 版 (V4) 有大量 SDK 第 3 版 (V3) 的重大變更。本主題說明第 4 版中的重大變更,以及從 V3 遷移環境或程式碼時可能需要執行的可能工作。如需有關 SDK 中其他值得注意變更的其他資訊,請參閱下列資源:

.NET Framework

.NET Framework 3.5 目標已從 的 V4 中移除。 適用於 .NET 的 AWS SDK因此,開發套件不再支援 .NET Framework 3.5。此版本的 SDK 是針對 .NET Framework 4.7.2 編譯,並在 .NET 4.0 執行時間中執行。如需詳細資訊,請參閱支援的平台。

值類型

在用於提出請求和回應的類別中使用值類型的屬性已變更為使用 nullable 值類型。具有下列類型的屬性已變更:

  • bool 已變更為 bool?

  • double 已變更為 double?

  • int 已變更為 int?

  • float 已變更為 float?

  • long 已變更為 long?

  • Datetime 已變更為 Datetime?

如需有關此變更的其他資訊,請參閱部落格文章 V4 的 適用於 .NET 的 AWS SDK 預覽 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. } }

將 Amazon.AWSConfigs.InitializeCollections設定為 ,即可還原初始化集合的 V3 行為true。對於想要在升級至 V4 之前嘗試此行為變更的使用者,此屬性也存在於 V3 中。 V4

如需有關此變更的其他資訊,請參閱部落格文章 V4 的 適用於 .NET 的 AWS SDK 預覽 1。

AWS Security Token Service (STS)

  • 區域端點

    使用依賴的登入資料提供者時 AWS STS,呼叫一律使用區域端點。這與軟體開發套件的 V3 不同,該開發套件us-east-1預設會在公有分割區中執行時使用該區域,無論設定的區域為何。

  • StsRegionalEndpointsValue列舉

    列舉已從 StsRegionalEndpointsValue Amazon.Runtime 命名空間中移除。任何使用該列舉的程式碼都應該移除。

  • STSAssumeRoleAWSCredentials 類別

    已取代的 STS 擔任角色登入資料提供者 STSAssumeRoleAWSCredentials已從 Amazon.SecurityToken 命名空間中移除。請改用 Amazon.Runtime 的 AssumeRoleAWSCredentials。

與 相關的變更 ClientConfig

Amazon.Runtime.ClientConfig 類別是服務用戶端組態類別的基本類別,例如 AmazonS3Config。已對此基本類別進行下列變更。

  • 預設重試模式

    RetryMode 屬性預設為 Standard,而不是 Legacy。因此,該Legacy值已從 Amazon.Runtime.RequestRetryMode 列舉中移除。

  • 預設組態模式

    DefaultConfigurationMode 屬性預設為 Standard,而不是 Legacy。因此,該Legacy值已從 Amazon.Runtime.DefaultConfigurationMode 列舉中移除。

  • ReadWriteTimeout 屬性

    從除 .NET Framework 4.7.2 以外的所有目標移除過時ReadWriteTimeout屬性。

AWSSDK.Extensions.NETCore.Setup NuGet 套件

AWSSDK.Extensions.NETCore.Setup NuGet 套件已更新,以緩解 SDK V3 中存在的問題,並使原生 AOT 的套件安全。這些變更摘要如下。如需詳細資訊,請參閱 GitHub 上 aws-sdk-net 儲存庫中的 PR 3353。

  • DefaultClientConfig 類別

    DefaultClientConfig 類別不再繼承自服務用戶端組態基礎類別 Amazon.Runtime.ClientConfig。來自 的相關屬性ClientConfig已在 DefaultClientConfig 上使用 nullable 值類型複寫。此變更可讓我們在將值複製到為服務用戶端建立的組態DefaultClientConfig時,偵測是否已在 上設定值。

    此變更的一個特定結果是 V4 DefaultClientConfig.HttpClientFactory 中不再提供。請改用 AWSConfigs.HttpClientFactory。如需詳細資訊,請參閱 GitHub 問題 3790。

    此變更的另一個結果是,已接受服務組態物件之IConfiguration.GetAWSOptions延伸方法的一般過載已移除。應該改用非一般過載,開發套件會自動處理填入服務特定的設定。如需詳細資訊,請參閱 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 的個別擴充功能套件。此變更是支援 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。DateTime 剖析已更新,改為傳回 UTC 時間。

ConvertFromUnixEpochSeconds 和 ConvertFromUnixEpochMilliseconds

ConvertFromUnixEpochSeconds 和 ConvertFromUnixEpochMilliseconds 方法會將 Unix epoch 秒轉換為 DateTime 結構,並以本機時間而非 UTC 時間傳回 Unix Epoch 時間。這些方法現在會傳回 UTC 時間。

日誌

您在開發套件中啟用記錄的方式已更新為 V4。記錄到主控台和系統診斷的運作方式與 V3 相同;也就是說,將 AWSConfigs 類別的 LoggingConfig.LogTo 屬性設定為 LoggingOptions.Console或 LoggingOptions.SystemDiagnostics。的 LoggingOptions 選項log4net已與 SDK 的內部邏輯一起移除,以使用反射連接至 的記憶體內執行個體log4net。

若要將開發套件的登入納入記錄架構,會使用個別的轉接器套件來連接開發套件與記錄架構。使用適用於 的 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。

單一登入

SSOAWSCredentialsOptions 類別的 SupportsGettingNewToken 屬性預設值已從 變更為 true false。如果您有應用程式使用 SSOAWSCredentials 類別來取得 SSO 登入資料,您可能需要將 Options.SupportsGettingNewToken 屬性設定為 true。如需此組態的範例,請參閱 中的程式碼範例僅使用 .NET 應用程式的 SSO 教學課程。如需詳細資訊,請參閱 aws-sdk-net GitHub 儲存庫中的 PR 3737。

DynamoDB 的特定變更

下列變更專屬於 Amazon DynamoDB。其中許多正在打破變更。

如需 第 V4中 DynamoDB 變更的其他資訊 適用於 .NET 的 AWS SDK,請參閱 V4 的適用於 .NET 的 AWS SDK 部落格文章預覽 4V4。

適用於 DynamoDB 的 SDK 中的 V4 變更解決了有關可測試性的一些問題,但主要以高階程式庫為中心:

如需這些程式設計模式的詳細資訊,請參閱本指南DynamoDB中的 。

文件模型:更新模擬IAmazonDynamoDB界面的例外狀況

在開發套件 V4 之前的文件模型中,如果資料表是使用模擬 IAmazonDynamoDB 介面初始化,則會傳回 NullReferenceException。開發套件的 V4 InvalidOperationException會改為傳回。非同步Table方法應與模擬用戶端搭配使用,但當您從 呼叫同步方法時,仍可能會看到例外狀況.NET/Core/Standard。

如需此變更的詳細資訊,請參閱 GitHub 上的 PR 3388。

文件模型: FromJson和 ToJson方法

文件類別的 FromJson和 ToJson方法現在使用 System.Text.Json而非 LitJson 進行序列化,而且 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 類別。這可防止您將DynamoDBOperationConfig物件傳遞至 DynamoDBContext 的建構函式,其中操作特定組態 (例如 OverrideTableName) 上的某些屬性不適用。

    如需此變更的詳細資訊,請參閱 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.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) 的支援已移除。從 IMDS 擷取登入資料和其他中繼資料時,軟體開發套件的 V4 一律使用執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 如需 IMDS 的詳細資訊,請參閱《Amazon EC2 使用者指南》中的使用 IMDS。 Amazon EC2

已變更或移除的程式設計元素

  • 已移除整個Amazon.EC2.Import命名空間和程式碼。

  • 已移除整個Amazon.EC2.Util命名空間和程式碼,其中包括用於查詢 Windows EC2 AMIs 公用程式。

  • 已將淘汰的 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 適用於 .NET 的 AWS SDK 的部落格文章預覽 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。如需遷移的相關資訊,請參閱 S3 加密用戶端遷移 (V1 至 V2)。如需 S3 加密的詳細資訊,請參閱《Amazon S3 加密用戶端開發人員指南》中的支援的加密演算法。

的 S3 標記指令 CopyObject

TaggingDirective 屬性已公開為 CopyObjectRequest 類別的公有屬性,由 AmazonS3Client.CopyObject 方法使用。此屬性對應至 CopyObject 動作中定義的 Amazon S3 x-amz-tagging-directive 參數。

標記指令不會再自動設定為 COPY。如果開發人員未指定標記指令,S3 後端會自動假設它是 COPY,但如果開發人員明確將 屬性設定為 null,則完全不會設定該值。

S3 組態的 UseArnRegion 屬性

Amazon.S3.AmazonS3Config 類別的 UseArnRegion 屬性已更新,因此AWS_S3_USE_ARN_REGION環境變數優先於共用 AWS config檔案中s3_use_arn_region的設定。如需這些變數和設定的詳細資訊,請參閱 SDK 和工具參考指南中的設定參考。 AWS SDKs

CopyObject 和 CopyPart方法的正斜線

Amazon S3 CopyObject和 CopyPart方法不會再修剪正斜線。DisableTrimmingLeadingSlash 屬性已從 CopyObjectRequest 和 CopyPartRequest 類別中移除。

DoesS3BucketExist... 方法

已將淘汰的 DoesS3BucketExist和 DoesS3BucketExistAsync方法從 AmazonS3Util 類別中移除,該類別實作 ICoreAmazonS3 介面。這些方法已移除,因為它們一律使用 HTTP。請改用 DoesS3BucketExistV2 和 DoesS3BucketExistV2Async。

SDK 一律使用 SigV4

第 4 版 適用於 .NET 的 AWS SDK 一律使用 AWS Signature 第 4 版 (SigV4) 簽署請求。此變更會導致下列相關變更:

  • AWSConfigsS3 類別的 UseSignatureVersion4 屬性已移除。

  • Amazon.Runtime.ClientConfig 類別的 SignatureVersion 屬性已移除。此屬性僅供 Amazon S3 用於回溯相容性。

  • 已移除 RegionEndpoint.Endpoint類別。這包括 SignatureVersionOverride 屬性,用於覆寫 Amazon S3 的簽章版本。請改用服務特定的client.DetermineServiceOperationEndPoint()方法。

  • 已更新方法 AmazonS3Util.PostUpload 和 S3PostUploadSignedPolicy.GetSignedPolicy,以使用 SigV4。因此,S3PostUploadSignedPolicy.GetSignedPolicyV4方法已移除,因為 GetSignedPolicy 現在會執行相同的 函數。此外, GetSignedPolicy 已獲得區域端點的第三個參數。

GetACL 和 PutACL方法

AmazonS3Client 類別的 GetACL和 PutACL方法已標記為已過時。若要存取這些方法的功能,請改用下列新方法:GetBucketACL、GetObjectACL、 PutBucketACL和 PutObjectACL。

已移除過時的程式設計元素

Amazon S3 實作的許多程式設計元素已從 SDK 的 V4 中移除,包括列舉值、類型、方法、命名空間等。如果先前尚未涵蓋這些項目,以及您可以採取以適應其移除的潛在步驟,則會列出如下。

  • DisableMD5Stream 屬性已從 TransferUtilityUploadRequest 類別中移除。請改用 DisableDefaultChecksumValidation 屬性。

    此外, CalculateContentMD5Header 屬性已從 TransferUtilityUploadRequest類別中移除。此屬性已不再需要,因為 SDK 預設會計算檢查總和。

  • ServerSideEncryptionMethod 和 ServerSideEncryptionKeyManagementServiceKeyId 屬性已從 CopyPartRequest 類別中移除。請改用 InitiateMultipartUploadRequest 類別中名稱相同的屬性,這些屬性用於 AmazonS3Client 類別的某些InitiateMultipartUpload...方法。

  • Expires 屬性已從 GetObjectResponse 類別中移除。請改用 ExpiresString 屬性。字串可能不是有效的時間戳記格式,因此您的程式碼在轉換為 時應使用 TryParse方法DateTime。

  • 已將過時的 AWS 區域 識別符從 S3Region 列舉中移除。

  • Prefix 屬性已從 LifecycleRule 類別中移除。請改用 Filter 屬性。

    此外, NoncurrentVersionTransition和 Transition 屬性已從 LifecycleRule類別中移除。請改用 NoncurrentVersionTransitions和 Transitions集合。

  • Event 屬性已從 TopicConfiguration 類別中移除。請改用Events集合。

  • CalculateContentMD5Header 屬性。此屬性不再需要設定,因為 SDK 預設會計算檢查總和。

  • Bucket 屬性已從 SelectObjectContentRequest 類別中移除。請改用 BucketName 屬性。

  • NumberOfUploadThreads 屬性已從 TransferUtilityConfig 類別中移除。請改用 ConcurrentServiceRequests 屬性。

已移除的程式設計元素

已從 SDK 的 V4 中移除許多程式設計元素,包括列舉值、類型、方法、命名空間等。如果先前尚未涵蓋這些項目,以及您可以採取以適應其移除的潛在步驟,則會列出如下。

Amazon.Auth.AccessControlPolicy.ActionIdentifiers 命名空間

Amazon.Auth.AccessControlPolicy.ActionIdentifiers 命名空間已移除。這包括在 IdentityandAccessManagementActionIdentifiers類別中定義的 IAM 動作識別符。使用這些動作識別符的程式碼應變更為使用動作名稱的字串值。

如需詳細資訊,請參閱《IAM 使用者指南》中的 從 JSON 建立 IAM 受管政策和 JSON 政策概觀。

ClientConfig 類別

Amazon.Runtime.ClientConfig 類別是服務用戶端組態類別的基本類別,例如 AmazonS3Config。已從此類別中移除下列程式設計元素。

Amazon.Runtime 命名空間

Amazon.Runtime 命名空間已更新,如下所示:

  • 已將淘汰的ECSTaskCredentials類別從命名空間中移除。請改用 GenericContainerCredentials 提供者,這也支援 Amazon EKS Pod 身分。

  • 已將淘汰的 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 類別中移除:ProtectEncodedSlashUrlEncode、 ResolveResourcePath和 ConvertToUnixEpochMilliSeconds。

ProfileManager 類別

已將淘汰的ProfileManager類別從 Amazon.Util 命名空間中移除。請改用 Amazon.Runtime.CredentialManagementCredentialManagement 命名空間中的 NetSDKCredentialsFile 或 SharedCredentialsFile 類別。

AWSConfigs 類別

下列淘汰屬性已從 AWSConfigs 類別中移除:ResponseLogging、 Logging和 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 類別建構函數。