

Versi 4 (V4) dari AWS SDK untuk .NET telah dirilis\$1

Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat [topik migrasi](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Migrasi proyek Anda untuk AWS SDK untuk .NET
<a name="net-dg-migrating"></a>

Bagian ini memberikan informasi tentang tugas migrasi untuk versi 4 AWS SDK untuk .NET, dan petunjuk tentang cara melakukan tugas tersebut. Untuk informasi tentang migrasi ke versi sebelumnya (misalnya, migrasi dari V2 ke V3, atau dari satu sub-versi V3 ke versi lainnya), lihat [Memigrasi proyek Anda](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-migrating.html) di Panduan [AWS SDK untuk .NET Pengembang](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) (versi 3).

Lihat juga [Apa yang baru](whats-new.md) dan[Platform yang didukung](net-dg-supported-platforms.md).

**Topics**
+ [Migrasi ke versi 4](net-dg-v4.md)
+ [Migrasi dari .NET Standard 1.3](migration-from-net-standard-1-3.md)

# Migrasi ke versi 4 AWS SDK untuk .NET
<a name="net-dg-v4"></a>

 AWS SDK untuk .NET Versi 4 (V4) memiliki sejumlah besar perubahan yang melanggar dari versi 3 (V3) SDK. Topik ini menjelaskan perubahan yang melanggar di versi 4 dan kemungkinan pekerjaan yang mungkin perlu Anda lakukan untuk memigrasikan lingkungan atau kode Anda dari V3. Untuk informasi tambahan tentang perubahan penting lainnya dalam SDK, lihat sumber daya berikut:
+ Masalah pelacak pengembangan pada:. GitHub [https://github.com/aws/aws-sdk-net/issues/3362](https://github.com/aws/aws-sdk-net/issues/3362)
+ Posting blog [Pratinjau 1 dari AWS SDK untuk .NET V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).
+ Posting blog [Pratinjau 4 dari AWS SDK untuk .NET V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/).
+ Posting blog [Ketersediaan Umum AWS SDK untuk .NET V4.0](https://aws.amazon.com/blogs/developer/general-availability-of-aws-sdk-for-net-v4-0/).

## .NET Framework
<a name="net-dg-v4-framework3.5"></a>

Target.NET Framework 3.5 telah dihapus dari V4. AWS SDK untuk .NET Akibatnya, SDK tidak lagi mendukung .NET Framework 3.5. Versi SDK ini dikompilasi terhadap .NET Framework 4.7.2 dan berjalan di runtime .NET 4.0. Untuk informasi selengkapnya, lihat [Platform yang didukung](net-dg-supported-platforms.md#net-dg-platform-diff-netfx45).

## Tipe nilai
<a name="net-dg-v4-value-types"></a>

Properti yang menggunakan tipe nilai di kelas yang digunakan untuk membuat permintaan dan tanggapan telah diubah untuk menggunakan tipe nilai nullable. Properti dengan jenis berikut telah diubah:
+ `bool`telah diubah menjadi `bool?` 
+ `double`telah diubah menjadi `double?` 
+ `int`telah diubah menjadi `int?` 
+ `float`telah diubah menjadi `float?` 
+ `long`telah diubah menjadi `long?` 
+ `Datetime`telah diubah menjadi `Datetime?`

Untuk informasi tambahan tentang perubahan ini, lihat posting blog [Pratinjau 1 dari AWS SDK untuk .NET V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).

## Koleksi
<a name="net-dg-v4-collections"></a>

Properti yang menggunakan koleksi di kelas yang digunakan untuk membuat permintaan dan tanggapan sekarang default untuk`null`. Akibatnya, kode Anda perlu memverifikasi bahwa koleksi tidak nol sebelum mencoba menggunakannya. Contoh:

```
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.
    }
}
```

Perilaku V3 untuk menginisialisasi koleksi dapat dipulihkan dengan menyetel `Amazon.AWSConfigs.InitializeCollections` ke. `true` Properti ini juga ada di V3 untuk pengguna yang ingin mencoba perubahan perilaku ini sebelum memutakhirkan ke V4.

Untuk informasi tambahan tentang perubahan ini, lihat posting blog [Pratinjau 1 dari AWS SDK untuk .NET V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).

## AWS Security Token Service (STS)
<a name="net-dg-v4-sts"></a>
+ **Titik akhir regional**

  Saat menggunakan penyedia kredensi yang mengandalkan AWS STS, panggilan selalu menggunakan titik akhir regional. Ini berbeda dari V3 SDK, yang menggunakan `us-east-1` Wilayah secara default saat berjalan di partisi publik terlepas dari Wilayah yang dikonfigurasi.
+ **`StsRegionalEndpointsValue`Enum**

  `StsRegionalEndpointsValue`Enum telah dihapus dari namespace [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html). Kode apa pun yang menggunakan enum itu harus dihapus.
+ **`STSAssumeRoleAWSCredentials`Kelas**

  [Penyedia kredensi peran STS yang tidak digunakan lagi,`STSAssumeRoleAWSCredentials`, telah dihapus dari Amazon. SecurityToken](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityToken.html)namespace. Gunakan [AssumeRoleAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAssumeRoleAWSCredentials.html)dari [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) sebagai gantinya.

## Perubahan yang berkaitan dengan `ClientConfig`
<a name="net-dg-v4-clientconfig"></a>

[Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)class adalah kelas dasar dari kelas konfigurasi klien layanan seperti [Amazons3config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html). Perubahan berikut dibuat untuk kelas dasar ini.
+  **Mode coba lagi default** 

  `RetryMode`Properti defaultnya bukan. `Standard` `Legacy` Akibatnya, `Legacy` nilai telah dihapus dari [Amazon.Runtime. RequestRetryMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TRequestRetryMode.html)enum.
+  **Mode konfigurasi default** 

  `DefaultConfigurationMode`Properti defaultnya bukan. `Standard` `Legacy` Akibatnya, `Legacy` nilai telah dihapus dari [Amazon.Runtime. DefaultConfigurationMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TDefaultConfigurationMode.html)enum.
+  **`ReadWriteTimeout`Properti** 

  `ReadWriteTimeout`Properti usang telah dihapus dari semua target kecuali .NET Framework 4.7.2.

## AWSSDK.Extensions. NETCore.Setup paket NuGet
<a name="net-dg-v4-netcore-setup"></a>

[AWSSDK.Extensions. NETCore NuGet Paket .Setup](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) telah diperbarui untuk mengatasi masalah yang ada di V3 SDK serta untuk membuat paket aman untuk AOT Asli. Perubahan ini dirangkum di bawah ini. Untuk informasi rinci lihat [PR 3353](https://github.com/aws/aws-sdk-net/pull/3353) di [aws-sdk-net](https://github.com/aws/aws-sdk-net)repositori di. GitHub
+ **`DefaultClientConfig`Kelas**

  `DefaultClientConfig`Kelas tidak lagi diwarisi dari kelas dasar konfigurasi klien layanan [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html). Properti yang relevan dari `ClientConfig` telah direplikasi `DefaultClientConfig` menggunakan tipe nilai nullable. Perubahan ini memungkinkan kita untuk mendeteksi kapan nilai telah ditetapkan `DefaultClientConfig` saat menyalin nilai ke konfigurasi yang dibuat untuk klien layanan.

  Salah satu hasil khusus dari perubahan ini `DefaultClientConfig.HttpClientFactory` adalah bahwa tidak lagi tersedia di V4. Gunakan `AWSConfigs.HttpClientFactory` sebagai gantinya. Untuk informasi tambahan, lihat [GitHub edisi 3790](https://github.com/aws/aws-sdk-net/issues/3790).

  Hasil lain dari perubahan ini adalah bahwa kelebihan generik dari metode `IConfiguration.GetAWSOptions` ekstensi yang menerima objek konfigurasi layanan telah dihapus. Kelebihan non-generik harus digunakan sebagai gantinya, dan SDK akan secara otomatis menangani pengaturan khusus layanan yang mengisi. Untuk informasi tambahan, lihat [GitHub edisi 3866](https://github.com/aws/aws-sdk-net/issues/3866).
+ **AOT asli**

  Mekanisme baru untuk membuat klien layanan yang menggunakan metode antarmuka statis C \$1 11 telah ditambahkan ke paket. Perubahan ini menghilangkan kebutuhan untuk melakukan beban tipe Assembly untuk membuat instance klien layanan, termasuk manipulasi string dari nama antarmuka layanan untuk menghitung jenis klien layanan, yang tidak kompatibel dengan AOT Asli. Perubahan ini hanya tersedia untuk.NET 8 dan yang lebih baru; versi yang lebih lama masih menggunakan mekanisme asli.

Untuk informasi tambahan dalam panduan ini tentang paket ini, lihat[AWSSDK.Ekstensi. NETCore.Setup dan IConfiguration](net-dg-config-netcore.md). Kode sumber untuk paket ini aktif GitHub di[https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup](https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup).

## `CookieSigner` dan `UrlSigner`
<a name="net-dg-v4-CookieSigner-UrlSigner"></a>

`UrlSigner`Ekstensi `CookieSigner` dan untuk Amazon CloudFront telah dipindahkan ke paket ekstensi terpisah yang disebut [AWSSDK.Extensions. CloudFront.Penandatangan](https://www.nuget.org/packages/AWSSDK.Extensions.CloudFront.Signers). [Perubahan ini untuk mendukung OpenSSL 3 dan mengambil ketergantungan pada .Cryptography. BouncyCastle](https://www.nuget.org/packages/BouncyCastle.Cryptography)

Kode sumber untuk paket ini aktif GitHub di[https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers](https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers).

## DateTime versus UTC DateTime
<a name="net-dg-v4-utc-datetime"></a>

Beberapa kelas V3 memiliki DateTime properti yang ditandai sebagai “usang” atau “usang”, serta properti UTC alternatif. DateTime Di kelas ini, DateTime properti usang telah dihapus, dan nama DateTime properti UTC telah diubah menjadi nama asli properti. DateTime

Berikut ini adalah beberapa contoh kelas yang perubahan ini telah diterapkan.
+ [DescribeSpotPriceHistoryRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TDescribeSpotPriceHistoryRequest.html):
  + `StartTime`Properti usang telah dihapus, dan nama `StartTimeUtc` properti telah diubah menjadi "”StartTime.
  + `EndTime`Properti usang telah dihapus, dan nama `EndTimeUtc` properti telah diubah menjadi "”EndTime.
+  [CreateFleetRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TCreateFleetRequest.html) 
  + `ValidFrom`Properti usang telah dihapus, dan nama `ValidFromUtc` properti telah diubah menjadi "”ValidFrom.
  + `ValidUntil`Properti usang telah dihapus, dan nama `ValidUntilUtc` properti telah diubah menjadi "”ValidUntil.

Perubahan ini dapat menyebabkan waktu offset jika aplikasi menggunakan properti asli yang usang DateTime. Kesalahan waktu kompilasi akan terjadi untuk kode yang menggunakan properti UTC DateTime .

## DateTime penguraian
<a name="net-dg-v4-datetime-parsing"></a>

 DateTimeUnmarshaller Kelas telah diperbarui. Kelas ini telah mengurai dan mengembalikan DateTime string sebagai waktu setempat. Dalam beberapa kasus, nilai-nilai ini dikonversi kembali ke UTC karena pembaruan sebelumnya, tetapi tidak selalu. Sekarang, DateTime string yang tidak diatur diasumsikan sebagai UTC dan akan ditentukan dan tidak diatur sebagai UTC. Pembaruan ini mencakup perubahan perilaku berikut.

Properti stempel waktu tertentu yang didasarkan pada DateTime kelas sedang diuraikan ke dalam waktu lokal. Ini termasuk respon unmarshallers untuk stempel waktu dan daftar stempel waktu untuk format dan. `TimestampFormat.ISO8601` `TimestampFormat.RFC822` DateTime penguraian telah diperbarui untuk mengembalikan waktu UTC sebagai gantinya.

## `ConvertFromUnixEpochSeconds` dan `ConvertFromUnixEpochMilliseconds`
<a name="net-dg-v4-ConvertFromUnixEpoch"></a>

[ConvertFromUnixEpochMilliseconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochMillisecondsInt64.html)Metode [ConvertFromUnixEpochSeconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochSecondsInt32.html)dan, yang mengubah detik epoch Unix menjadi DateTime struktur, mengembalikan waktu Unix Epoch sebagai waktu lokal, bukan waktu UTC. Metode ini sekarang mengembalikan waktu UTC.

## Pencatatan log
<a name="net-dg-v4-logging"></a>

Cara Anda mengaktifkan login di SDK telah diperbarui untuk V4. Logging ke konsol dan diagnostik sistem bekerja sama dengan V3; yaitu, dengan mengatur `LoggingConfig.LogTo` properti [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)kelas ke salah satu atau`LoggingOptions.Console`. `LoggingOptions.SystemDiagnostics` [LoggingOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)Opsi untuk `log4net` telah dihapus bersama dengan logika internal SDK untuk menggunakan refleksi untuk dilampirkan ke instance dalam memori. `log4net`

Untuk menyertakan log SDK ke kerangka logging, paket adaptor terpisah digunakan untuk menghubungkan SDK dengan kerangka logging. [Gunakan [AWSSDKpaket.Extensions.Logging.Logging.Log4 untuk dan NetAdaptor .Extensions.Logging](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.Log4NetAdaptor). `log4net` AWSSDK ILoggerPaket adaptor](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.ILoggerAdaptor/#readme-body-tab) untuk`Microsoft.Extensions.Logging`. Contoh kode berikut menunjukkan cara mengonfigurasi logging dalam dua kasus ini.

### Contoh konfigurasi untuk log4net
<a name="w2aac25c11c27b7b1"></a>

Tambahkan `AWSSDK.Extensions.Logging.Log4NetAdaptor` NuGet paket dan panggil `ConfigureAWSSDKLogging` metode statis dari`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));
```

### Contoh konfigurasi untuk Microsoft.Extensions.Logging
<a name="w2aac25c11c27b7b3"></a>

Tambahkan `AWSSDK.Extensions.Logging.ILoggerAdaptor` NuGet paket dan panggil metode `ConfigureAWSSDKLogging` ekstensi dari `ILoggerFactory` antarmuka.

```
var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.Services.GetRequiredService<ILoggerFactory>()
    .ConfigureAWSSDKLogging();
```

## Support untuk HTTP 2
<a name="net-dg-v4-http2"></a>

Support untuk HTTP 2 telah ditambahkan untuk mengaktifkan bi-directional streaming. Untuk mengetahui informasi selengkapnya, lihat [Support untuk HTTP 2](http2-support.md).

## Sign-on tunggal
<a name="net-dg-v4-sso"></a>

Nilai default `SupportsGettingNewToken` properti kelas [SSOAWSCredentialsOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentialsOptions.html) telah diubah dari `true` ke`false`. Jika Anda memiliki aplikasi yang menggunakan [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)kelas untuk mendapatkan kredensi SSO, Anda mungkin perlu mengatur properti ke. `Options.SupportsGettingNewToken` `true` Untuk contoh konfigurasi ini, lihat [contoh kode](sso-tutorial-app-only.md#sso-tutorial-app-only-code) di[Tutorial untuk SSO hanya menggunakan aplikasi.NET](sso-tutorial-app-only.md). Untuk informasi tambahan, lihat [PR 3737](https://github.com/aws/aws-sdk-net/pull/3737) di [aws-sdk-net](https://github.com/aws/aws-sdk-net) GitHub repositori.

## Perubahan khusus untuk DynamoDB
<a name="net-dg-v4-ddb-specific"></a>

Perubahan berikut khusus untuk Amazon DynamoDB. Banyak dari mereka melanggar perubahan.

Untuk informasi tambahan tentang perubahan DynamoDB di V4 dari, lihat [posting blog AWS SDK untuk .NET Pratinjau](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/) 4 dari V4. AWS SDK untuk .NET 

### Buka untuk melihat item
<a name="w2aac25c11c35b7b1"></a>

Perubahan V4 dalam SDK untuk DynamoDB mengatasi beberapa masalah seputar stabilitas pengujian, tetapi terutama berpusat di sekitar pustaka tingkat tinggi:
+ [Model Dokumen .NET](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKMidLevel.html), dinamai [DocumentModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DocumentModel.html)dalam kode.
+ [.NET Object Persistence Model](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKHighLevel.html), dinamai [DataModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DataModel.html)dalam kode. 

Untuk informasi rinci tentang mode pemrograman ini, lihat [DynamoDB](dynamodb-intro.md) di panduan ini.

#### Model Dokumen: Pengecualian yang diperbarui untuk antarmuka yang diejek `IAmazonDynamoDB`
<a name="w2aac25c11c35b7b1b9"></a>

[Dalam model dokumen sebelum V4 SDK, jika [Tabel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TTable.html) diinisialisasi dengan antarmuka DynamoDB IAmazon tiruan, itu akan kembali.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDB.html) `NullReferenceException` V4 dari SDK kembali `InvalidOperationException` sebagai gantinya. `Table`Metode asinkron harus bekerja dengan klien tiruan tetapi Anda mungkin masih melihat pengecualian saat memanggil metode sinkron dari. `.NET/Core/Standard`

Untuk informasi lebih lanjut tentang perubahan ini, lihat [PR 3388](https://github.com/aws/aws-sdk-net/pull/3388) di. GitHub

#### Model Dokumen: `FromJson` dan `ToJson` metode
<a name="w2aac25c11c35b7b1c11"></a>

`ToJson`Metode `FromJson` dan kelas [Document](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDocument.html) sekarang digunakan `System.Text.Json` bukan LitJson untuk serialisasi, dan LitJson telah dihapus dari V4 SDK. Manfaat menggunakan `System.Text.Json` adalah bahwa parser ini mendukung penggunaan `Decimal` tipe.NET, yang mendukung presisi yang lebih tinggi untuk properti floating point numerik.

#### Model Persistensi Objek: Kelas `DynamoDBOperationConfig`
<a name="w2aac25c11c35b7b1c13"></a>

Dalam model persistensi objek, perubahan berikut telah dilakukan pada kelas [Dynamo Config DBOperation](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBOperationConfig.html) bersama:
+ Kelas telah dipisahkan menjadi kelas-kelas operasi-spesifik baru seperti [SaveConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TSaveConfig.html), [LoadConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TLoadConfig.html), dan. [QueryConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TQueryConfig.html) Metode yang diambil `DynamoDBOperationConfig` telah ditandai sebagai usang dan dapat dihapus di masa depan.

  Untuk informasi lebih lanjut tentang perubahan ini, lihat [PR 3421](https://github.com/aws/aws-sdk-net/pull/3421) di GitHub.
+ `DisableFetchingTableMetadata`Properti `MetadataCachingMode` dan telah dihapus dari kelas. Properti ini tidak termasuk dalam kelas khusus operasi baru yang disebutkan sebelumnya. [Properti yang dihapus adalah pengaturan tingkat tabel yang harus ditentukan pada `Context` properti global kelas DynamoDB atau pada kelas [AWSConfigsDynamo Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html). DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html)

  Untuk informasi lebih lanjut tentang perubahan ini, lihat [PR 3422](https://github.com/aws/aws-sdk-net/pull/3422) di GitHub.
+ Kelas tidak lagi mewarisi dari kelas [Dynamo Config DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html). Ini mencegah Anda meneruskan `DynamoDBOperationConfig` objek ke konstruktor untuk [Dynamo DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContext.html), di mana beberapa properti pada konfigurasi khusus operasi (seperti`OverrideTableName`) tidak berlaku.

  Untuk informasi lebih lanjut tentang perubahan ini, lihat [PR 3422](https://github.com/aws/aws-sdk-net/pull/3422) di GitHub.

#### Model Persistensi Objek: Polimorfisme
<a name="w2aac25c11c35b7b1c15"></a>

DBPolymorphicTypeAttributeKelas [Dynamo](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBPolymorphicTypeAttribute.html) ditambahkan ke model ketekunan objek. Kelas ini memungkinkan dukungan untuk serialisasi dan deserialisasi tipe polimorfik. Untuk informasi lebih lanjut, lihat [PR 3643](https://github.com/aws/aws-sdk-net/pull/3643) di GitHub.

#### Model Dokumen dan Model Persistensi Objek: Operasi Mockable
<a name="w2aac25c11c35b7b1c17"></a>

Antarmuka khusus operasi baru telah ditambahkan yang memungkinkan pelanggan untuk mengejek operasi DynamoDB. Metode pabrik pada [IDynamoDBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDBContext.html)antarmuka telah diperbarui untuk mengembalikan antarmuka baru.

Untuk informasi lebih lanjut tentang perubahan ini, lihat [PR 3450](https://github.com/aws/aws-sdk-net/pull/3450) di GitHub.
+ Model Kegigihan Objek
  + `BatchGet`Operasi tiruan melalui `IBatchGet` dan `IMultiTableBatchGet` antarmuka.
  + `BatchWrite`Operasi tiruan melalui `IBatchWrite` dan `IMultiTableBatchWrite` antarmuka.
  + `TransactGet`Operasi tiruan melalui `ITransactGet` dan `IMultiTableTransactGet` antarmuka.
  + `TransactWrite`Operasi tiruan melalui `ITransactWrite` dan `IMultiTableTransactWrite` antarmuka.
  + Mock `Scan` dan `Query` operasi melalui `IAsyncSearch` antarmuka.
+ Model Dokumen
  + `Table`Operasi tiruan melalui `ITable` antarmuka.
  + Mock `Scan` dan `Query` operasi melalui `ISearch` antarmuka.
  + `TransactWrite`Operasi tiruan melalui `IDocumentTransactWrite` dan `IMultiTableDocumentTransactWrite` antarmuka.
  + `TransactGet`Operasi tiruan melalui `IDocumentTransactGet` dan `IMultiTableDocumentTransactGet` antarmuka.
  + `BatchWrite`Operasi tiruan melalui `IDocumentBatchWrite` dan `IMultiTableDocumentBatchWrite` antarmuka.
  + `BatchGet`Operasi tiruan melalui `IDocumentBatchGet` dan `IMultiTableDocumentBatchGet` antarmuka.

#### Model Dokumen dan Model Persistensi Objek: Dukungan untuk AOT Asli
<a name="w2aac25c11c35b7b1c19"></a>

Batasan Native AOT adalah dukungan untuk tipe.NET bersarang. Dalam beberapa kasus, tipe bersarang ini mungkin luput dari perhatian oleh komponen pemangkasan dari kompiler.NET. Dalam hal ini, Anda mungkin menerima pengecualian seperti: "`System.InvalidOperationException: Type <type> is unsupported, it cannot be instantiated.`”

Anda dapat mengatasi batasan ini dengan menambahkan `DynamicDependency` suatu tempat di jalur kode yang memberi tahu pemangkas tentang ketergantungan pada sub-tipe. Konstruktor tipe.NET tingkat atas yang disimpan adalah tempat yang mungkin. Contoh kode berikut menunjukkan cara menggunakan `DynamicDependency` atribut:

```
[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; }
}
```

#### Dinamo DBStreams
<a name="w2aac25c11c35b7b1c21"></a>

[Dynamo DBStreams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) telah dihapus dari [AWSSDKpaket.DynamoDB](https://www.nuget.org/packages/AWSSDK.DynamoDBv2) dan tersedia dalam NuGet paketnya sendiri, [AWSSDK.Dynamo](https://www.nuget.org/packages/AWSSDK.DynamoDBStreams), dan memiliki namespace sendiriDBStreams,. `Amazon.DynamoDBStreams`

#### Izinkan penghapusan `TableNamePrefix` nilai
<a name="w2aac25c11c35b7b1c23"></a>

Anda sekarang dapat menghapus nilai `TableNamePrefix` properti di kelas [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html) pada tingkat operasi individu. Untuk informasi lebih lanjut tentang perubahan ini, lihat [PR 3476](https://github.com/aws/aws-sdk-net/pull/3476) di GitHub.

#### `RetrieveDateTimeInUtc`properti
<a name="w2aac25c11c35b7b1c25"></a>

Untuk kelas [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html), nilai default properti telah diubah menjadi. `RetrieveDateTimeInUtc` `true`

#### `DynamoDBContextTableNamePrefix`properti
<a name="w2aac25c11c35b7b1c27"></a>

Dihapus `DynamoDBContextTableNamePrefix` properti dari kelas [AWSConfigsDynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html). Pengguna harus menelepon `AWSConfigsDynamoDB.Context.TableNamePrefix` alih-alih 

## Perubahan khusus untuk EC2
<a name="net-dg-v4-ec2-specific"></a>

Perubahan berikut khusus untuk Amazon EC2. Sebagian besar atau semuanya melanggar perubahan.

### Buka untuk melihat item
<a name="w2aac25c11c39b5b1"></a>

#### `GetDecryptedPassword`
<a name="w2aac25c11c39b5b1b3"></a>

`GetDecryptedPassword`[Ekstensi untuk Amazon EC2 telah dipindahkan ke paket ekstensi terpisah yang disebut AWSSDK .Extensions.EC2. DecryptPassword](https://www.nuget.org/packages/AWSSDK.Extensions.EC2.DecryptPassword). [Perubahan ini untuk mendukung OpenSSL 3 dan mengambil ketergantungan pada .Cryptography. BouncyCastle](https://www.nuget.org/packages/BouncyCastle.Cryptography)

Kode sumber untuk paket ini aktif GitHub di[https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword](https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword).

#### Dukungan untuk Amazon EC2 IMDSv1
<a name="w2aac25c11c39b5b1b5"></a>

Support for Instance Metadata Service Version 1 (IMDSv1) telah dihapus. V4 SDK selalu menggunakan Instance Metadata Service Version 2 (IMDSv2) saat mengambil kredensyal dan metadata lainnya dari IMDS. Untuk informasi selengkapnya tentang IMDS, lihat [Menggunakan IMDS di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) Pengguna [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/).

#### Elemen pemrograman yang diubah atau dihapus
<a name="w2aac25c11c39b5b1b7"></a>
+ Seluruh `Amazon.EC2.Import` namespace dan kode telah dihapus.
+ Seluruh `Amazon.EC2.Util` namespace dan kode telah dihapus, yang mencakup utilitas AMI yang digunakan untuk mencari EC2 AMIs untuk Windows.
+ `IpRanges`Properti usang telah dihapus dari kelas. [IpPermission](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TIpPermission.html) Gunakan `Ipv6Ranges` properti `Ipv4Ranges` atau sebagai gantinya.
+ Bidang usang berikut telah dihapus dari [EC2InstanceMetadata](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TEC2InstanceMetadata.html)kelas:`EC2_METADATA_SVC`,,, `EC2_METADATA_ROOT` `EC2_USERDATA_ROOT``EC2_DYNAMICDATA_ROOT`, dan. `EC2_APITOKEN_URL`

## Perubahan khusus untuk S3
<a name="net-dg-v4-s3-specific"></a>

Perubahan berikut khusus untuk Amazon S3. Sebagian besar atau semuanya melanggar perubahan.

### Buka untuk melihat item
<a name="w2aac25c11c43b5b1"></a>

#### Wilayah AWS us-east-1
<a name="w2aac25c11c43b5b1b3"></a>

Klien layanan Amazon S3 yang dikonfigurasi untuk `us-east-1` Wilayah tidak dapat lagi mengakses bucket di Wilayah lain. Bucket harus diakses dengan klien layanan S3 yang dikonfigurasi untuk Wilayah tempat bucket berada.

Untuk informasi tambahan tentang perubahan ini, lihat posting blog [Pratinjau 4 dari AWS SDK untuk .NET V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/).

#### Klien enkripsi S3
<a name="w2aac25c11c43b5b1b5"></a>

[Klien enkripsi Amazon S3, yang didefinisikan dalam `Amazon.S3.Encryption` namespace, telah dihapus dari paket.S3. AWSSDK](https://www.nuget.org/packages/AWSSDK.S3) Klien ini telah dipindahkan ke paketnya sendiri yang disebut [Amazon.Extensions.S3.Encryption](https://www.nuget.org/packages/Amazon.Extensions.S3.Encryption), dan dokumentasinya ada di. [https://aws.github.io/amazon-s3-encryption-client-dotnet/api/Amazon.Extensions.S3.Encryption.html](https://aws.github.io/amazon-s3-encryption-client-dotnet/api/Amazon.Extensions.S3.Encryption.html) Untuk informasi tentang migrasi, lihat[Migrasi Klien Enkripsi S3 (V1 ke V2)](s3-encryption-migration-v1-v2.md). Untuk informasi selengkapnya tentang enkripsi S3, lihat [Algoritma enkripsi yang didukung di Panduan](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/encryption-algorithms.html) Pengembang [Klien Enkripsi Amazon S3](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide).

#### Arahan penandaan S3 untuk `CopyObject`
<a name="w2aac25c11c43b5b1b7"></a>

`TaggingDirective`Properti telah diekspos sebagai milik umum [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html)kelas, yang digunakan oleh `AmazonS3Client.CopyObject` metode. Properti ini sesuai dengan `x-amz-tagging-directive` parameter Amazon S3, seperti yang didefinisikan dalam tindakan. [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)

Arahan penandaan tidak lagi secara otomatis diatur ke COPY. Jika pengembang tidak menentukan arahan penandaan, backend S3 secara otomatis mengasumsikan itu adalah COPY, tetapi jika pengembang secara eksplisit menyetel properti ke null, maka nilainya tidak disetel sama sekali.

#### `UseArnRegion`Properti untuk konfigurasi S3
<a name="w2aac25c11c43b5b1b9"></a>

`UseArnRegion`Properti kelas [Amazon.s3.amazons3config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) telah diperbarui sedemikian rupa sehingga variabel `AWS_S3_USE_ARN_REGION` lingkungan lebih diutamakan daripada pengaturan dalam file bersama. `s3_use_arn_region` AWS `config` Untuk informasi selengkapnya tentang variabel dan pengaturan ini, lihat [Referensi pengaturan](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html) di [Panduan Referensi Alat AWS SDKs dan Alat](https://docs.aws.amazon.com/sdkref/latest/guide/).

#### garis miring terkemuka untuk metode `CopyObject` dan `CopyPart`
<a name="w2aac25c11c43b5b1c11"></a>

garis miring terkemuka tidak akan lagi dipangkas untuk Amazon `CopyObject` `CopyPart` S3 dan metode. `DisableTrimmingLeadingSlash`Properti telah dihapus dari [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html)kelas [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html)dan.

#### `DoesS3BucketExist...`Metodenya
<a name="w2aac25c11c43b5b1c13"></a>

[Usang `DoesS3BucketExist` dan `DoesS3BucketExistAsync` metode telah dihapus dari kelas [Amazons3Util, yang mengimplementasikan antarmuka AmazonS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Util.html). ICore](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TICoreS3.html) Metode ini dihapus karena mereka selalu menggunakan HTTP. Gunakan [Doess3 BucketExist V2 dan [BucketExistDoess3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2AsyncIS3String.html) V2Async](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2IS3String.html) sebagai gantinya.

#### SDK selalu menggunakan SiGv4
<a name="w2aac25c11c43b5b1c15"></a>

Versi 4 AWS SDK untuk .NET selalu menggunakan AWS Signature Version 4 (SiGv4) untuk menandatangani permintaan. Perubahan ini menghasilkan perubahan terkait berikut:
+ `UseSignatureVersion4`Properti kelas [AWSConfigsS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsS3.html) telah dihapus.
+ `SignatureVersion`Properti [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)kelas telah dihapus. Properti ini hanya digunakan oleh Amazon S3 untuk kompatibilitas mundur.
+ `RegionEndpoint.Endpoint`Kelas telah dihapus. Ini termasuk `SignatureVersionOverride` properti, yang digunakan untuk mengganti versi tanda tangan untuk Amazon S3. Gunakan `client.DetermineServiceOperationEndPoint()` metode khusus layanan sebagai gantinya.
+ Metode yang diperbarui [Amazons3util. PostUpload](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilPostUploadS3PostUploadRequest.html)dan [S3PostUploadSignedPolicy. GetSignedPolicy](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3PostUploadSignedPolicyGetSignedPolicyStringAWSCredentialsString.html)untuk menggunakan SiGv4. Akibatnya, `S3PostUploadSignedPolicy.GetSignedPolicyV4` metode telah dihapus karena `GetSignedPolicy` sekarang melakukan fungsi yang sama. Selain itu, `GetSignedPolicy` telah diberikan parameter ketiga untuk titik akhir Wilayah.

#### `PutACL`Metode `GetACL` dan
<a name="w2aac25c11c43b5b1c17"></a>

`PutACL`Metode `GetACL` dan dari kelas [Amazons3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html) telah ditandai sebagai usang. Untuk mengakses fungsionalitas metode ini, gunakan metode baru berikut sebagai gantinya:`GetBucketACL`,`PutBucketACL`,`GetObjectACL`, dan`PutObjectACL`.

#### Elemen pemrograman usang dihapus
<a name="w2aac25c11c43b5b1c19"></a>

Sejumlah elemen pemrograman implementasi Amazon S3 telah dihapus dari V4 SDK, termasuk nilai enumerasi, jenis, metode, ruang nama, dll. Ini tercantum di bawah ini, jika belum dibahas sebelumnya, bersama dengan langkah-langkah potensial yang dapat Anda ambil untuk mengakomodasi penghapusan mereka.
+ `DisableMD5Stream`Properti telah dihapus dari [TransferUtilityUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityUploadRequest.html)kelas. Gunakan `DisableDefaultChecksumValidation` properti sebagai gantinya.

  Selain itu, `CalculateContentMD5Header` properti telah dihapus dari `TransferUtilityUploadRequest` kelas. Properti ini tidak lagi diperlukan karena SDK menghitung checksum secara default.
+ `ServerSideEncryptionKeyManagementServiceKeyId`Properti `ServerSideEncryptionMethod` dan telah dihapus dari [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html)kelas. Gunakan properti dengan nama yang sama di [InitiateMultipartUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TInitiateMultipartUploadRequest.html)kelas sebagai gantinya, yang digunakan dalam beberapa `InitiateMultipartUpload...` metode kelas [Amazons3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html).
+ `Expires`Properti telah dihapus dari [GetObjectResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TGetObjectResponse.html)kelas. Gunakan `ExpiresString` properti sebagai gantinya. String mungkin tidak dalam format stempel waktu yang valid, jadi kode Anda harus menggunakan `TryParse` metode saat mengonversi ke a. `DateTime`
+  Wilayah AWS [Pengidentifikasi usang telah dihapus dari enumerasi S3Region.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Region.html)
+ `Prefix`Properti telah dihapus dari [LifecycleRule](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TLifecycleRule.html)kelas. Gunakan `Filter` properti sebagai gantinya.

  Selain itu, `Transition` properti `NoncurrentVersionTransition` dan telah dihapus dari `LifecycleRule` kelas. Gunakan `NoncurrentVersionTransitions` dan `Transitions` koleksi sebagai gantinya.
+ `Event`Properti telah dihapus dari [TopicConfiguration](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTopicConfiguration.html)kelas. Gunakan `Events` koleksi sebagai gantinya.
+ CalculateContentMD5Properti header. Properti ini tidak perlu lagi disetel karena SDK akan menghitung checksum secara default.
+ `Bucket`Properti telah dihapus dari [SelectObjectContentRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TSelectObjectContentRequest.html)kelas. Gunakan `BucketName` properti sebagai gantinya.
+ `NumberOfUploadThreads`Properti telah dihapus dari [TransferUtilityConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityConfig.html)kelas. Gunakan `ConcurrentServiceRequests` properti sebagai gantinya.

## Elemen pemrograman yang telah dihapus
<a name="net-dg-v4-removed"></a>

Sejumlah elemen pemrograman telah dihapus dari V4 SDK, termasuk nilai enumerasi, jenis, metode, ruang nama, dll. Ini tercantum di bawah ini, jika belum dibahas sebelumnya, bersama dengan langkah-langkah potensial yang dapat Anda ambil untuk mengakomodasi penghapusan mereka.

### Buka untuk melihat item
<a name="w2aac25c11c47b5b1"></a>

#### Namespace `Amazon.Auth.AccessControlPolicy.ActionIdentifiers`
<a name="w2aac25c11c47b5b1b3"></a>

`Amazon.Auth.AccessControlPolicy.ActionIdentifiers`Namespace telah dihapus. Ini termasuk pengidentifikasi tindakan IAM, yang didefinisikan di kelas. `IdentityandAccessManagementActionIdentifiers` Kode yang menggunakan pengidentifikasi tindakan ini harus diubah untuk menggunakan nilai string dari nama tindakan.

Untuk informasi tambahan, lihat [Membuat kebijakan terkelola IAM dari JSON](iam-policies-create-json.md) dan [Ringkasan kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) di [Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

#### `ClientConfig`Kelas
<a name="w2aac25c11c47b5b1b7"></a>

[Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)class adalah kelas dasar dari kelas konfigurasi klien layanan seperti [Amazons3config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html). Elemen pemrograman berikut telah dihapus dari kelas ini.
+ `DetermineDnsSuffix`Metode `DetermineServiceURL` dan telah dihapus. Gunakan `DetermineServiceOperationEndpoint` metode klien layanan sebagai gantinya; misalnya, [Amazons3Client. DetermineServiceOperationEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3DetermineServiceOperationEndpointWebServiceRequest.html).
+ `ReadEntireResponse`Properti telah dihapus. Gunakan salah satu dari berikut ini sebagai gantinya:
  + `LogResponses`Properti dari [AWSConfigs. LoggingConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TLoggingConfig.html)kelas.
  + `LogResponse`Properti konfigurasi klien; misalnya, [Amazons3config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html).

#### Namespace `Amazon.Runtime`
<a name="w2aac25c11c47b5b1c11"></a>

Namespace [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) telah diperbarui sebagai berikut:
+ `ECSTaskCredentials`Kelas usang telah dihapus dari namespace. Gunakan [GenericContainerCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TGenericContainerCredentials.html)penyedia sebagai gantinya, yang juga mendukung [Amazon EKS Pod Identities.](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ Usang `StoredProfileAWSCredentials` dan `StoredProfileCredentials` kelas telah dihapus dari namespace. Gunakan [SDKCredentialsFile Net](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) atau [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)kelas [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)namespace sebagai gantinya.
+ `HasCachedAccessTokenAvailable`Metode usang [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)kelas telah dihapus dari namespace.
+ `EnvironmentAWSCredentials`Kelas usang telah dihapus dari namespace. Gunakan [AppConfigAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAppConfigAWSCredentials.html)kelas sebagai gantinya.
+ `StoredProfileFederatedCredentials`Kelas usang telah dihapus dari namespace. Gunakan AWSCredentials kelas [Federasi](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html) sebagai gantinya.
+ Kelas usang berikut telah dihapus dari namespace:`EnvironmentVariableAWSEndpointDiscoveryEnabled`,, dan. `ProfileAWSEndpointDiscoveryEnabled` `FallbackEndpointDiscoveryEnabledFactory`
+ `UseSigV4`Properti usang telah dihapus dari kelas. [AmazonWebServiceRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequest.html) Gunakan `SignatureVersion` properti sebagai gantinya.
+ `ProfileIniFile`Kelas di `Amazon.Runtime.Internal.Util` namespace memiliki metode kelebihan beban yang disebut. `TryGetSection` Versi metode yang tidak mendukung `out` parameter untuk `nestedProperties` telah dihapus dari kelas.
+ `EventBridgeSigner`Kelas usang di `Amazon.Runtime.Internal.Auth` namespace telah dihapus.
+ Properti `Parameters` kamus usang telah dihapus dari kelas. [WebServiceRequestEventArgs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequestEventArgs.html) Gunakan `ParameteCollection` properti sebagai gantinya.

#### BouncyCastle
<a name="w2aac25c11c47b5b1c13"></a>

Salinan sumber BouncyCastle telah dihapus dari V4 SDK.

#### `StoredProfileSAMLCredentials`Kelas
<a name="w2aac25c11c47b5b1c15"></a>

`StoredProfileSAMLCredentials`[Kelas usang di Amazon. SecurityTokenNamespace .SALL](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityTokenSAML.html) telah dihapus. Gunakan AWSCredentials kelas [Federasi](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html) di namespace [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) sebagai gantinya.

#### `AWSSDKUtils`Kelas
<a name="w2aac25c11c47b5b1c17"></a>

Metode berikut telah dihapus dari [AWSSDKUtils](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TAWSSDKUtils.html)kelas:`ResolveResourcePath`,`ProtectEncodedSlashUrlEncode`, dan`ConvertToUnixEpochMilliSeconds`.

#### `ProfileManager`Kelas
<a name="w2aac25c11c47b5b1c19"></a>

`ProfileManager`Kelas usang telah dihapus dari namespace [Amazon.Util](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/NUtil.html). Gunakan [SDKCredentialsFile Net](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) atau [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)kelas dari [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)namespace sebagai gantinya.

#### `AWSConfigs`Kelas
<a name="w2aac25c11c47b5b1c21"></a>

Properti usang berikut telah dihapus dari [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)kelas:`Logging`,`ResponseLogging`, dan. `LogMetrics` Gunakan `LoggingConfig` properti sebagai gantinya.

#### `ConditionFactory`Kelas
<a name="w2aac25c11c47b5b1c23"></a>

Metode dengan tanda tangan berikut telah dihapus dari [ConditionFactory](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/TConditionFactory.html)kelas:`NewCondition(ConditionFactory.DateComparisonType, DateTime)`. Gunakan [NewConditionUtc](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/MConditionFactoryNewConditionUtcConditionFactoryDateComparisonTypeDateTime.html)metode sebagai gantinya.

#### CloudFront Utilitas Amazon
<a name="w2aac25c11c47b5b1c25"></a>

`Amazon.CloudFront.Util`Namespace dan `AmazonCloudFrontUtil` kelas usang telah dihapus.

#### AWS IoT
<a name="w2aac25c11c47b5b1c27"></a>

Di [ListPrincipalThingsResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/IoT/TListPrincipalThingsResponse.html)kelas, kustomisasi lama untuk `NextToken` penggantian telah dihapus demi pagination.

#### AWS Lambda
<a name="w2aac25c11c47b5b1c29"></a>

`Invoke...`Metode [AmazonLambdaClient](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Lambda/TLambdaClient.html)kelas berikut telah dihapus karena nama-nama yang membingungkan.
+ Metode V3 dengan tanda tangan berikut telah dihapus:`InvokeAsyncResponse InvokeAsync(InvokeAsyncRequest)`. Ini adalah metode sinkron di V3 SDK. Gunakan `InvokeResponse Invoke(InvokeRequest)` (untuk pemrosesan sinkron) atau `Task InvokeAsync(InvokeRequest, CancellationToken)` (untuk pemrosesan asinkron) sebagai gantinya.
+ Metode V3 dengan tanda tangan berikut telah dihapus:`Task InvokeAsyncAsync(InvokeAsyncRequest, CancellationToken)`. Ini adalah metode asinkron di V3 SDK. Gunakan `Task InvokeAsync(InvokeRequest, CancellationToken)` sebagai gantinya.

#### SageMaker Runtime Amazon
<a name="w2aac25c11c47b5b1c31"></a>

Konstruktor usang untuk [PayloadPart](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SageMakerRuntime/TPayloadPart.html)kelas telah dihapus.

# Migrasi dari .NET Standard 1.3
<a name="migration-from-net-standard-1-3"></a>

Pada 27 Juni 2019 Microsoft [mengakhiri dukungan](https://devblogs.microsoft.com/dotnet/net-core-1-0-and-1-1-will-reach-end-of-life-on-june-27-2019/) untuk versi .NET Core 1.0 dan .NET Core 1.1. Setelah pengumuman ini, AWS mengakhiri dukungan untuk .NET Standard 1.3 AWS SDK untuk .NET pada tanggal 31 Desember 2020.

AWS terus memberikan pembaruan layanan dan perbaikan keamanan pada AWS SDK untuk .NET penargetan .NET Standard 1.3 hingga 1 Oktober 2020. Setelah tanggal tersebut, target.NET Standard 1.3 masuk ke mode Pemeliharaan, yang berarti tidak ada pembaruan baru yang dirilis; AWS menerapkan perbaikan bug kritis dan patch keamanan saja.

Pada tanggal 31 Desember 2020, dukungan untuk .NET Standard 1.3 AWS SDK untuk .NET sampai pada akhir masa pakainya. Setelah tanggal tersebut tidak ada perbaikan bug atau patch keamanan yang diterapkan. Artefak yang dibangun dengan target itu tetap tersedia untuk diunduh NuGet.

**Apa yang perlu Anda lakukan**
+ Jika Anda menjalankan aplikasi menggunakan .NET Framework, Anda tidak terpengaruh.
+ Jika Anda menjalankan aplikasi menggunakan .NET Core 2.0 atau lebih tinggi, Anda tidak terpengaruh.
+ Jika Anda menjalankan aplikasi menggunakan .NET Core 1.0 atau .NET Core 1.1, migrasi aplikasi Anda ke versi yang lebih baru .NET Core dengan mengikuti petunjuk [migrasi Microsoft](https://docs.microsoft.com/en-us/dotnet/core/migration/). Kami merekomendasikan minimal .NET Core 3.1.
+ Jika Anda menjalankan aplikasi penting bisnis yang tidak dapat ditingkatkan saat ini, Anda dapat terus menggunakan versi Anda saat ini. AWS SDK untuk .NET

Jika Anda memiliki pertanyaan atau masalah, [hubungi AWS Support](https://console.aws.amazon.com/support).