Versi 4 (V4) dari AWS SDK untuk .NET telah dirilis!
Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat topik migrasi.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Migrasi ke versi 4 AWS SDK untuk .NET
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
-
Posting blog Pratinjau 1 dari AWS SDK untuk .NET V4
. -
Posting blog Pratinjau 4 dari AWS SDK untuk .NET V4
. -
Posting blog Ketersediaan Umum AWS SDK untuk .NET V4.0
.
.NET Framework
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.
Jenis nilai
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:
-
booltelah diubah menjadibool? -
doubletelah diubah menjadidouble? -
inttelah diubah menjadiint? -
floattelah diubah menjadifloat? -
longtelah diubah menjadilong? -
Datetimetelah diubah menjadiDatetime?
Untuk informasi tambahan tentang perubahan ini, lihat posting blog Pratinjau 1 dari AWS SDK untuk .NET
V4
Koleksi
Properti yang menggunakan koleksi di kelas yang digunakan untuk membuat permintaan dan tanggapan sekarang default untuknull. Akibatnya, kode Anda perlu memverifikasi bahwa koleksi tidak nol sebelum mencoba menggunakannya. Misalnya:
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
AWS Security Token Service (STS)
-
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-1Wilayah secara default saat berjalan di partisi publik terlepas dari Wilayah yang dikonfigurasi. -
StsRegionalEndpointsValueEnumStsRegionalEndpointsValueEnum telah dihapus dari namespace Amazon.Runtime. Kode apa pun yang menggunakan enum itu harus dihapus. -
STSAssumeRoleAWSCredentialsKelasPenyedia kredensi peran STS yang tidak digunakan lagi,
STSAssumeRoleAWSCredentials, telah dihapus dari Amazon. SecurityTokennamespace. Gunakan AssumeRoleAWSCredentialsdari Amazon.Runtime sebagai gantinya.
Perubahan yang berkaitan dengan ClientConfig
Amazon.Runtime. ClientConfigclass adalah kelas dasar dari kelas konfigurasi klien layanan seperti Amazons3config. Perubahan berikut dibuat untuk kelas dasar ini.
-
Mode coba lagi default
RetryModeProperti defaultnya bukan.StandardLegacyAkibatnya,Legacynilai telah dihapus dari Amazon.Runtime. RequestRetryModeenum. -
Mode konfigurasi default
DefaultConfigurationModeProperti defaultnya bukan.StandardLegacyAkibatnya,Legacynilai telah dihapus dari Amazon.Runtime. DefaultConfigurationModeenum. -
ReadWriteTimeoutPropertiReadWriteTimeoutProperti usang telah dihapus dari semua target kecuali .NET Framework 4.7.2.
AWSSDK.Extensions. NETCore.Setup paket NuGet
AWSSDK.Extensions. NETCore NuGet Paket .Setup
-
DefaultClientConfigKelasDefaultClientConfigKelas tidak lagi diwarisi dari kelas dasar konfigurasi klien layanan Amazon.Runtime. ClientConfig. Properti yang relevan dariClientConfigtelah direplikasiDefaultClientConfigmenggunakan tipe nilai nullable. Perubahan ini memungkinkan kita untuk mendeteksi kapan nilai telah ditetapkanDefaultClientConfigsaat menyalin nilai ke konfigurasi yang dibuat untuk klien layanan.Salah satu hasil khusus dari perubahan ini
DefaultClientConfig.HttpClientFactoryadalah bahwa tidak lagi tersedia di V4. GunakanAWSConfigs.HttpClientFactorysebagai gantinya. Untuk informasi tambahan, lihat GitHub edisi 3790. Hasil lain dari perubahan ini adalah bahwa kelebihan generik dari metode
IConfiguration.GetAWSOptionsekstensi 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. -
AOT asli
Mekanisme baru untuk membuat klien layanan yang menggunakan metode antarmuka statis C # 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, lihatAWSSDK.Ekstensi. NETCore.Setup dan IConfiguration. Kode sumber untuk paket ini aktif GitHub dihttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup
CookieSigner dan UrlSigner
UrlSignerEkstensi CookieSigner dan untuk Amazon CloudFront telah dipindahkan ke paket ekstensi terpisah yang disebut AWSSDK.Extensions. CloudFront.Penandatangan
Kode sumber untuk paket ini aktif GitHub dihttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers
DateTime versus UTC DateTime
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:
-
StartTimeProperti usang telah dihapus, dan namaStartTimeUtcproperti telah diubah menjadi "”StartTime. -
EndTimeProperti usang telah dihapus, dan namaEndTimeUtcproperti telah diubah menjadi "”EndTime.
-
-
-
ValidFromProperti usang telah dihapus, dan namaValidFromUtcproperti telah diubah menjadi "”ValidFrom. -
ValidUntilProperti usang telah dihapus, dan namaValidUntilUtcproperti 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
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
ConvertFromUnixEpochMillisecondsMetode ConvertFromUnixEpochSecondsdan, 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
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 AWSConfigskelas ke salah satu atauLoggingOptions.Console. LoggingOptions.SystemDiagnostics LoggingOptionsOpsi 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.Logginglog4net AWSSDK ILoggerPaket adaptorMicrosoft.Extensions.Logging. Contoh kode berikut menunjukkan cara mengonfigurasi logging dalam dua kasus ini.
Tambahkan AWSSDK.Extensions.Logging.Log4NetAdaptor NuGet paket dan panggil ConfigureAWSSDKLogging metode statis dariLog4NetAWSExtensions.
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));
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
Support untuk HTTP 2 telah ditambahkan untuk mengaktifkan bi-directional streaming. Untuk mengetahui informasi selengkapnya, lihat Support untuk HTTP 2.
Sign-on tunggal
Nilai default SupportsGettingNewToken properti kelas SSOAWSCredentialsOptions telah diubah dari true kefalse. Jika Anda memiliki aplikasi yang menggunakan SSOAWSCredentialskelas untuk mendapatkan kredensi SSO, Anda mungkin perlu mengatur properti ke. Options.SupportsGettingNewToken true Untuk contoh konfigurasi ini, lihat contoh kode diTutorial untuk SSO hanya menggunakan aplikasi.NET. Untuk informasi tambahan, lihat PR 3737
Perubahan khusus untuk DynamoDB
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
Perubahan V4 dalam SDK untuk DynamoDB mengatasi beberapa masalah seputar stabilitas pengujian, tetapi terutama berpusat di sekitar pustaka tingkat tinggi:
-
Model Dokumen .NET, dinamai DocumentModeldalam kode.
-
.NET Object Persistence Model, dinamai DataModeldalam kode.
Untuk informasi rinci tentang mode pemrograman ini, lihat DynamoDB di panduan ini.
Model Dokumen: Pengecualian yang diperbarui untuk antarmuka yang diejek IAmazonDynamoDB
Dalam model dokumen sebelum V4 SDK, jika Tabel diinisialisasi dengan antarmuka DynamoDB IAmazon tiruan, itu akan kembali. NullReferenceException V4 dari SDK kembali InvalidOperationException sebagai gantinya. TableMetode 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
Model Dokumen: FromJson dan ToJson metode
ToJsonMetode FromJson dan kelas Document 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
Dalam model persistensi objek, perubahan berikut telah dilakukan pada kelas Dynamo Config DBOperation bersama:
-
Kelas telah dipisahkan menjadi kelas-kelas operasi-spesifik baru seperti SaveConfig, LoadConfig, dan. QueryConfig Metode yang diambil
DynamoDBOperationConfigtelah ditandai sebagai usang dan dapat dihapus di masa depan.Untuk informasi lebih lanjut tentang perubahan ini, lihat PR 3421
di GitHub. -
DisableFetchingTableMetadataPropertiMetadataCachingModedan 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 padaContextproperti global kelas DynamoDB atau pada kelas AWSConfigsDynamo Config. DBContextUntuk informasi lebih lanjut tentang perubahan ini, lihat PR 3422
di GitHub. -
Kelas tidak lagi mewarisi dari kelas Dynamo Config DBContext. Ini mencegah Anda meneruskan
DynamoDBOperationConfigobjek ke konstruktor untuk Dynamo DBContext, di mana beberapa properti pada konfigurasi khusus operasi (sepertiOverrideTableName) tidak berlaku.Untuk informasi lebih lanjut tentang perubahan ini, lihat PR 3422
di GitHub.
Model Persistensi Objek: Polimorfisme
DBPolymorphicTypeAttributeKelas Dynamo ditambahkan ke model ketekunan objek. Kelas ini memungkinkan dukungan untuk serialisasi dan deserialisasi tipe polimorfik. Untuk informasi lebih lanjut, lihat PR 3643
Model Dokumen dan Model Persistensi Objek: Operasi Mockable
Antarmuka khusus operasi baru telah ditambahkan yang memungkinkan pelanggan untuk mengejek operasi DynamoDB. Metode pabrik pada IDynamoDBContextantarmuka telah diperbarui untuk mengembalikan antarmuka baru.
Untuk informasi lebih lanjut tentang perubahan ini, lihat PR 3450
-
Model Kegigihan Objek
-
BatchGetOperasi tiruan melaluiIBatchGetdanIMultiTableBatchGetantarmuka. -
BatchWriteOperasi tiruan melaluiIBatchWritedanIMultiTableBatchWriteantarmuka. -
TransactGetOperasi tiruan melaluiITransactGetdanIMultiTableTransactGetantarmuka. -
TransactWriteOperasi tiruan melaluiITransactWritedanIMultiTableTransactWriteantarmuka. -
Mock
ScandanQueryoperasi melaluiIAsyncSearchantarmuka.
-
-
Model Dokumen
-
TableOperasi tiruan melaluiITableantarmuka. -
Mock
ScandanQueryoperasi melaluiISearchantarmuka. -
TransactWriteOperasi tiruan melaluiIDocumentTransactWritedanIMultiTableDocumentTransactWriteantarmuka. -
TransactGetOperasi tiruan melaluiIDocumentTransactGetdanIMultiTableDocumentTransactGetantarmuka. -
BatchWriteOperasi tiruan melaluiIDocumentBatchWritedanIMultiTableDocumentBatchWriteantarmuka. -
BatchGetOperasi tiruan melaluiIDocumentBatchGetdanIMultiTableDocumentBatchGetantarmuka.
-
Model Dokumen dan Model Persistensi Objek: Dukungan untuk AOT Asli
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
Dynamo DBStreams telah dihapus dari AWSSDKpaket.DynamoDBAmazon.DynamoDBStreams
Izinkan penghapusan TableNamePrefix nilai
Anda sekarang dapat menghapus nilai TableNamePrefix properti di kelas Dynamo DBContext Config pada tingkat operasi individu. Untuk informasi lebih lanjut tentang perubahan ini, lihat PR 3476
RetrieveDateTimeInUtcproperti
Untuk kelas Dynamo DBContext Config, nilai default properti telah diubah menjadi. RetrieveDateTimeInUtc true
DynamoDBContextTableNamePrefixproperti
Dihapus DynamoDBContextTableNamePrefix properti dari kelas AWSConfigsDynamoDB. Pengguna harus menelepon AWSConfigsDynamoDB.Context.TableNamePrefix alih-alih
Perubahan khusus untuk EC2
Perubahan berikut khusus untuk Amazon EC2. Sebagian besar atau semuanya melanggar perubahan.
GetDecryptedPassword
GetDecryptedPasswordEkstensi untuk Amazon EC2 telah dipindahkan ke paket ekstensi terpisah yang disebut AWSSDK.Extensions. EC2. DecryptPassword
Kode sumber untuk paket ini aktif GitHub dihttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword
Support untuk Amazon EC2 IMDSv1
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 EC2 Panduan Pengguna Amazon.
Elemen pemrograman yang diubah atau dihapus
-
Seluruh
Amazon.EC2.Importnamespace dan kode telah dihapus. -
Seluruh
Amazon.EC2.Utilnamespace dan kode telah dihapus, yang mencakup utilitas AMI yang digunakan untuk mencari Windows EC2 AMIs . -
IpRangesProperti usang telah dihapus dari kelas. IpPermission GunakanIpv6RangespropertiIpv4Rangesatau sebagai gantinya. -
Bidang usang berikut telah dihapus dari EC2InstanceMetadatakelas:
EC2_METADATA_SVC,,,EC2_METADATA_ROOTEC2_USERDATA_ROOTEC2_DYNAMICDATA_ROOT, dan.EC2_APITOKEN_URL
Perubahan khusus untuk S3
Perubahan berikut khusus untuk Amazon S3. Sebagian besar atau semuanya melanggar perubahan.
Wilayah AWS us-east-1
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
Klien enkripsi S3
Klien enkripsi Amazon S3, yang didefinisikan dalam Amazon.S3.Encryption namespace, telah dihapus dari paket.S3. AWSSDK
Arahan penandaan S3 untuk CopyObject
TaggingDirectiveProperti telah diekspos sebagai milik umum CopyObjectRequestkelas, yang digunakan oleh AmazonS3Client.CopyObject metode. Properti ini sesuai dengan x-amz-tagging-directive parameter Amazon S3, seperti yang didefinisikan dalam tindakan. CopyObject
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.
UseArnRegionProperti untuk konfigurasi S3
UseArnRegionProperti kelas Amazon.s3.amazons3config 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 di Panduan Referensi Alat AWS SDKs dan Alat.
garis miring terkemuka untuk metode CopyObject dan CopyPart
garis miring terkemuka tidak akan lagi dipangkas untuk Amazon CopyObject CopyPart S3 dan metode. DisableTrimmingLeadingSlashProperti telah dihapus dari CopyPartRequestkelas CopyObjectRequestdan.
DoesS3BucketExist...Metodenya
Usang DoesS3BucketExist dan DoesS3BucketExistAsync metode telah dihapus dari kelas Amazons3Util, yang mengimplementasikan antarmuka AmazonS3. ICore Metode ini dihapus karena mereka selalu menggunakan HTTP. Gunakan Doess3 BucketExist V2 dan BucketExistDoess3 V2Async sebagai gantinya.
SDK selalu menggunakan SiGv4
Versi 4 AWS SDK untuk .NET selalu menggunakan AWS Signature Version 4 (SiGv4) untuk menandatangani permintaan. Perubahan ini menghasilkan perubahan terkait berikut:
-
UseSignatureVersion4Properti kelas AWSConfigsS3 telah dihapus. -
SignatureVersionProperti Amazon.Runtime. ClientConfigkelas telah dihapus. Properti ini hanya digunakan oleh Amazon S3 untuk kompatibilitas mundur. -
RegionEndpoint.EndpointKelas telah dihapus. Ini termasukSignatureVersionOverrideproperti, yang digunakan untuk mengganti versi tanda tangan untuk Amazon S3. Gunakanclient.DetermineServiceOperationEndPoint()metode khusus layanan sebagai gantinya. -
Metode yang diperbarui Amazons3util. PostUploaddan S3PostUploadSignedPolicy. GetSignedPolicyuntuk menggunakan SiGv4. Akibatnya,
S3PostUploadSignedPolicy.GetSignedPolicyV4metode telah dihapus karenaGetSignedPolicysekarang melakukan fungsi yang sama. Selain itu,GetSignedPolicytelah diberikan parameter ketiga untuk titik akhir Wilayah.
PutACLMetode GetACL dan
PutACLMetode GetACL dan dari kelas Amazons3Client telah ditandai sebagai usang. Untuk mengakses fungsionalitas metode ini, gunakan metode baru berikut sebagai gantinya:GetBucketACL,PutBucketACL,GetObjectACL, danPutObjectACL.
Elemen pemrograman usang dihapus
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.
-
DisableMD5StreamProperti telah dihapus dari TransferUtilityUploadRequestkelas. GunakanDisableDefaultChecksumValidationproperti sebagai gantinya.Selain itu,
CalculateContentMD5Headerproperti telah dihapus dariTransferUtilityUploadRequestkelas. Properti ini tidak lagi diperlukan karena SDK menghitung checksum secara default. -
ServerSideEncryptionKeyManagementServiceKeyIdPropertiServerSideEncryptionMethoddan telah dihapus dari CopyPartRequestkelas. Gunakan properti dengan nama yang sama di InitiateMultipartUploadRequestkelas sebagai gantinya, yang digunakan dalam beberapaInitiateMultipartUpload...metode kelas Amazons3Client. -
ExpiresProperti telah dihapus dari GetObjectResponsekelas. GunakanExpiresStringproperti sebagai gantinya. String mungkin tidak dalam format stempel waktu yang valid, jadi kode Anda harus menggunakanTryParsemetode saat mengonversi ke a.DateTime -
Wilayah AWS Pengidentifikasi usang telah dihapus dari enumerasi S3Region.
-
PrefixProperti telah dihapus dari LifecycleRulekelas. GunakanFilterproperti sebagai gantinya.Selain itu,
TransitionpropertiNoncurrentVersionTransitiondan telah dihapus dariLifecycleRulekelas. GunakanNoncurrentVersionTransitionsdanTransitionskoleksi sebagai gantinya. -
EventProperti telah dihapus dari TopicConfigurationkelas. GunakanEventskoleksi sebagai gantinya. -
CalculateContentMD5Properti header. Properti ini tidak perlu lagi disetel karena SDK akan menghitung checksum secara default.
-
BucketProperti telah dihapus dari SelectObjectContentRequestkelas. GunakanBucketNameproperti sebagai gantinya. -
NumberOfUploadThreadsProperti telah dihapus dari TransferUtilityConfigkelas. GunakanConcurrentServiceRequestsproperti sebagai gantinya.
Elemen pemrograman yang telah dihapus
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.
Namespace Amazon.Auth.AccessControlPolicy.ActionIdentifiers
Amazon.Auth.AccessControlPolicy.ActionIdentifiersNamespace 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 dan Ringkasan kebijakan JSON di Panduan Pengguna IAM.
ClientConfigKelas
Amazon.Runtime. ClientConfigclass adalah kelas dasar dari kelas konfigurasi klien layanan seperti Amazons3config. Elemen pemrograman berikut telah dihapus dari kelas ini.
-
DetermineDnsSuffixMetodeDetermineServiceURLdan telah dihapus. GunakanDetermineServiceOperationEndpointmetode klien layanan sebagai gantinya; misalnya, Amazons3Client. DetermineServiceOperationEndpoint. -
ReadEntireResponseProperti telah dihapus. Gunakan salah satu dari berikut ini sebagai gantinya:-
LogResponsesProperti dari AWSConfigs. LoggingConfigkelas. -
LogResponseProperti konfigurasi klien; misalnya, Amazons3config.
-
Namespace Amazon.Runtime
Namespace Amazon.Runtime telah diperbarui sebagai berikut:
-
ECSTaskCredentialsKelas usang telah dihapus dari namespace. Gunakan GenericContainerCredentialspenyedia sebagai gantinya, yang juga mendukung Amazon EKS Pod Identities. -
Usang
StoredProfileAWSCredentialsdanStoredProfileCredentialskelas telah dihapus dari namespace. Gunakan SDKCredentialsFile Net atau SharedCredentialsFilekelas Amazon.Runtime. CredentialManagementnamespace sebagai gantinya. -
HasCachedAccessTokenAvailableMetode usang SSOAWSCredentialskelas telah dihapus dari namespace. -
EnvironmentAWSCredentialsKelas usang telah dihapus dari namespace. Gunakan AppConfigAWSCredentialskelas sebagai gantinya. -
StoredProfileFederatedCredentialsKelas usang telah dihapus dari namespace. Gunakan AWSCredentials kelas Federasi sebagai gantinya. -
Kelas usang berikut telah dihapus dari namespace:
EnvironmentVariableAWSEndpointDiscoveryEnabled,, dan.ProfileAWSEndpointDiscoveryEnabledFallbackEndpointDiscoveryEnabledFactory -
UseSigV4Properti usang telah dihapus dari kelas. AmazonWebServiceRequest GunakanSignatureVersionproperti sebagai gantinya. -
ProfileIniFileKelas diAmazon.Runtime.Internal.Utilnamespace memiliki metode kelebihan beban yang disebut.TryGetSectionVersi metode yang tidak mendukungoutparameter untuknestedPropertiestelah dihapus dari kelas. -
EventBridgeSignerKelas usang diAmazon.Runtime.Internal.Authnamespace telah dihapus. -
Properti
Parameterskamus usang telah dihapus dari kelas. WebServiceRequestEventArgs GunakanParameteCollectionproperti sebagai gantinya.
BouncyCastle
Salinan sumber BouncyCastle telah dihapus dari V4 SDK.
StoredProfileSAMLCredentialsKelas
StoredProfileSAMLCredentialsKelas usang di Amazon. SecurityTokenNamespace .SALL telah dihapus. Gunakan AWSCredentials kelas Federasi di namespace Amazon.Runtime sebagai gantinya.
AWSSDKUtilsKelas
Metode berikut telah dihapus dari AWSSDKUtilskelas:ResolveResourcePath,ProtectEncodedSlashUrlEncode, danConvertToUnixEpochMilliSeconds.
ProfileManagerKelas
ProfileManagerKelas usang telah dihapus dari namespace Amazon.Util. Gunakan SDKCredentialsFile Net atau SharedCredentialsFilekelas dari Amazon.Runtime. CredentialManagementnamespace sebagai gantinya.
AWSConfigsKelas
Properti usang berikut telah dihapus dari AWSConfigskelas:Logging,ResponseLogging, dan. LogMetrics Gunakan LoggingConfig properti sebagai gantinya.
ConditionFactoryKelas
Metode dengan tanda tangan berikut telah dihapus dari ConditionFactorykelas:NewCondition(ConditionFactory.DateComparisonType, DateTime). Gunakan NewConditionUtcmetode sebagai gantinya.
CloudFront Utilitas Amazon
Amazon.CloudFront.UtilNamespace dan AmazonCloudFrontUtil kelas usang telah dihapus.
AWS IoT
Di ListPrincipalThingsResponsekelas, kustomisasi lama untuk NextToken penggantian telah dihapus demi pagination.
AWS Lambda
Invoke...Metode AmazonLambdaClientkelas 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. GunakanInvokeResponse Invoke(InvokeRequest)(untuk pemrosesan sinkron) atauTask 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. GunakanTask InvokeAsync(InvokeRequest, CancellationToken)sebagai gantinya.
SageMaker Runtime Amazon
Konstruktor usang untuk PayloadPartkelas telah dihapus.