È stata rilasciata la versione 4 (V4) di! AWS SDK per .NET
Per informazioni su come apportare modifiche e migrare le applicazioni, consulta l'argomento sulla migrazione.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione alla versione 4 di AWS SDK per .NET
La AWS SDK per .NET versione 4 (V4) presenta un numero significativo di modifiche sostanziali rispetto alla versione 3 (V3) dell'SDK. Questo argomento descrive le modifiche più importanti nella versione 4 e il possibile lavoro che potrebbe essere necessario eseguire per migrare l'ambiente o il codice dalla V3. Per ulteriori informazioni su altre modifiche importanti nell'SDK, consulta le seguenti risorse:
-
Il problema Development-Tracker su:. GitHub https://github.com/aws/aws-sdk-net/issues/3362
-
Il post sul blog Anteprima
1 di V4. AWS SDK per .NET -
Il post sul blog Preview 4 of AWS SDK per .NET V4
. -
Il post sul blog Disponibilità generale della AWS SDK per .NET versione 4.0
.
.NET Framework
Il target DI.NET Framework 3.5 è stato rimosso dalla versione 4 di. AWS SDK per .NET Di conseguenza, l'SDK non supporta più .NET Framework 3.5. Questa versione dell'SDK è compilata su .NET Framework 4.7.2 e viene eseguita nel runtime .NET 4.0. Per ulteriori informazioni, consulta Piattaforme supportate.
Tipi di valore
Le proprietà che utilizzano tipi di valore nelle classi utilizzate per effettuare richieste e risposte sono state modificate per utilizzare tipi di valori nullabili. Le proprietà con i seguenti tipi sono state modificate:
-
boolè stato modificato inbool? -
doubleè stato modificato indouble? -
intè stato modificato inint? -
floatè stato modificato infloat? -
longè stato modificato inlong? -
Datetimeè stato modificato inDatetime?
Per ulteriori informazioni su questa modifica, consulta il post del blog Preview 1 of AWS SDK per .NET
V4
Raccolte
Le proprietà che utilizzano raccolte nelle classi utilizzate per effettuare richieste e risposte ora sono predefinite. null Di conseguenza, il codice deve verificare che una raccolta non sia nulla prima di provare a utilizzarla. Per esempio:
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. } }
Il comportamento V3 di inizializzazione delle raccolte può essere ripristinato impostando su. Amazon.AWSConfigs.InitializeCollections true Questa proprietà esiste anche in V3 per gli utenti che desiderano provare questa modifica di comportamento prima di eseguire l'aggiornamento alla V4.
Per ulteriori informazioni su questa modifica, consulta il post del blog Preview
AWS Security Token Service (STS)
-
L'endpoint regionale
Quando si utilizzano provider di credenziali che si affidano a AWS STS, le chiamate utilizzano sempre l'endpoint regionale. Ciò differisce dalla versione 3 dell'SDK, che utilizzava la
us-east-1regione per impostazione predefinita durante l'esecuzione nella partizione pubblica indipendentemente dalla regione configurata. -
L'
StsRegionalEndpointsValueenumL'
StsRegionalEndpointsValueenum è stato rimosso dallo spazio dei nomi Amazon.Runtime. Qualsiasi codice che utilizza quell'enum deve essere rimosso. -
Classe
STSAssumeRoleAWSCredentialsIl provider di credenziali di assunzione del ruolo STS obsoleto è stato rimosso da Amazon.
STSAssumeRoleAWSCredentialsSecurityTokenspazio dei nomi. Utilizzalo invece AssumeRoleAWSCredentialsda Amazon.Runtime.
Modifiche relative a ClientConfig
Amazon.Runtime. ClientConfigclass è la classe base delle classi di configurazione dei client di servizio come AmazonS3Config. Le seguenti modifiche sono state apportate a questa classe base.
-
Modalità di riprova predefinita
Il valore predefinito della
RetryModeproprietà è invece di.StandardLegacyDi conseguenza, ilLegacyvalore è stato rimosso da Amazon.Runtime. RequestRetryModeenum. -
Modalità di configurazione predefinita
Il valore predefinito della
DefaultConfigurationModeproprietà èStandardinvece di.LegacyDi conseguenza, ilLegacyvalore è stato rimosso da Amazon.Runtime. DefaultConfigurationModeenum. -
La proprietà
ReadWriteTimeoutLa
ReadWriteTimeoutproprietà obsoleta è stata rimossa da tutte le destinazioni tranne .NET Framework 4.7.2.
Le .Extensions. AWSSDK NETCore NuGet Pacchetto.Setup
Il AWSSDKfile .Extensions. NETCoreIl NuGet pacchetto.Setup
-
Classe
DefaultClientConfigLa
DefaultClientConfigclasse non viene più ereditata dalla classe base di configurazione del client di servizio Amazon.Runtime. ClientConfig. Le proprietà pertinenti diClientConfigsono state replicateDefaultClientConfigutilizzando tipi di valori nullabili. Questa modifica ci consente di rilevare quando è stato impostato un valoreDefaultClientConfigdurante la copia dei valori nella configurazione creata per il client del servizio.Un risultato particolare di questa modifica è che non
DefaultClientConfig.HttpClientFactoryè più disponibile nella V4. Usare inveceAWSConfigs.HttpClientFactory. Per ulteriori informazioni, vedere il GitHub numero 3790. Un altro risultato di questa modifica è che gli overload generici del metodo di
IConfiguration.GetAWSOptionsestensione che accettava un oggetto di configurazione del servizio sono stati rimossi. In alternativa, è necessario utilizzare l'overload non generico e l'SDK gestirà automaticamente la compilazione delle impostazioni specifiche del servizio. Per ulteriori informazioni, consulta il numero 3866. GitHub -
AOT nativo
Al pacchetto è stato aggiunto un nuovo meccanismo per la creazione di client di servizio che utilizza metodi di interfaccia statica C# 11. Questa modifica elimina la necessità di eseguire caricamenti di tipo Assembly per creare istanze di client di servizio, inclusa la manipolazione delle stringhe del nome dell'interfaccia di servizio per calcolare il tipo di client di servizio, che è incompatibile con Native AOT. Questa modifica è disponibile solo per.NET 8 e versioni successive; le versioni precedenti utilizzano ancora il meccanismo originale.
Per ulteriori informazioni su questo pacchetto contenute in questa guida, vedereAWSSDK.Estensioni. NETCore.Setup e IConfiguration. Il codice sorgente di questo pacchetto è disponibile GitHub all'indirizzohttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup
CookieSigner e UrlSigner
Le UrlSigner estensioni CookieSigner e per Amazon CloudFront sono state spostate in un pacchetto di estensioni separato chiamato AWSSDK.Extensions. CloudFront.Firmatari.
Il codice sorgente di questo pacchetto è disponibile all'indirizzo. GitHub https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers
DateTime contro UTC DateTime
Alcune classi V3 hanno una DateTime proprietà contrassegnata come «deprecata» o «obsoleta», oltre a una proprietà UTC alternativa. DateTime In queste classi, la DateTime proprietà obsoleta è stata rimossa e il nome della proprietà UTC è stato modificato con il nome originale della DateTime proprietà. DateTime
Di seguito sono riportati alcuni esempi di classi per le quali è stata implementata questa modifica.
-
DescribeSpotPriceHistoryRequest:
-
La
StartTimeproprietà obsoleta è stata rimossa e il nome dellaStartTimeUtcproprietà è stato modificato in "StartTime». -
La
EndTimeproprietà obsoleta è stata rimossa e il nome dellaEndTimeUtcproprietà è stato cambiato in "»EndTime.
-
-
-
La
ValidFromproprietà obsoleta è stata rimossa e il nome dellaValidFromUtcproprietà è stato cambiato in "»ValidFrom. -
La
ValidUntilproprietà obsoleta è stata rimossa e il nome dellaValidUntilUtcproprietà è stato cambiato in "»ValidUntil.
-
Questa modifica potrebbe portare a tempi di offset se un'applicazione utilizza la proprietà originale e obsoleta DateTime. Si verificherà un errore in fase di compilazione per il codice che utilizza la proprietà UTC. DateTime
DateTime analisi
La DateTimeUnmarshaller classe è stata aggiornata. Questa classe analizzava e restituiva DateTime le stringhe come ora locale. In alcuni casi, questi valori venivano riconvertiti in UTC a causa di un aggiornamento precedente, ma non sempre. Ora, DateTime si presume che le stringhe non marshallate siano UTC e verranno specificate e demarshaltate come UTC. Questo aggiornamento include le seguenti modifiche comportamentali.
Alcune proprietà del timestamp basate sulla DateTime classe venivano analizzate in base all'ora locale. Questi includevano gli unmarshaller di risposta per i timestamp e gli elenchi di timestamp per i formati e. TimestampFormat.ISO8601 TimestampFormat.RFC822 DateTime l'analisi è stata invece aggiornata per restituire gli orari UTC.
ConvertFromUnixEpochSeconds e ConvertFromUnixEpochMilliseconds
ConvertFromUnixEpochMillisecondsI metodi ConvertFromUnixEpochSecondsand, che convertono i secondi dell'epoca Unix in una DateTime struttura, restituivano l'ora Unix Epoch come ora locale anziché UTC. Questi metodi ora restituiscono l'ora UTC.
Registrazione
Il modo in cui si abilita la registrazione nell'SDK è stato aggiornato per la V4. La registrazione alla console e la diagnostica del sistema funzionano come nella versione V3, ovvero impostando la LoggingConfig.LogTo proprietà della classe su o. AWSConfigsLoggingOptions.ConsoleLoggingOptions.SystemDiagnostics L'LoggingOptionsopzione for log4net è stata rimossa insieme alla logica interna dell'SDK per l'utilizzo di reflection da collegare a un'istanza in memoria di. log4net
Per includere la registrazione dell'SDK in un framework di registrazione, viene utilizzato un pacchetto di adattatori separato per connettere l'SDK al framework di registrazione. Utilizzate il pacchetto AWSSDK.Extensions.Logging.Log4 per e il NetAdaptor .Extensions.Logginglog4net AWSSDK ILoggerMicrosoft.Extensions.LoggingPacchetto adattatore per.
Aggiungi il AWSSDK.Extensions.Logging.Log4NetAdaptor NuGet pacchetto e chiama il ConfigureAWSSDKLogging metodo statico da. 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));
Aggiungere il AWSSDK.Extensions.Logging.ILoggerAdaptor NuGet pacchetto e chiamare il metodo di estensione dall'ConfigureAWSSDKLogginginterfaccia. ILoggerFactory
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.Services.GetRequiredService<ILoggerFactory>() .ConfigureAWSSDKLogging();
Support per HTTP 2
È stato aggiunto il supporto per HTTP 2 per abilitare lo streaming bidirezionale. Per ulteriori informazioni, consulta Support per HTTP 2.
Autenticazione unica
Il valore predefinito della SupportsGettingNewToken proprietà della classe SSOAWSCredentialsOptions è stato modificato da a. true false Se disponete di applicazioni che utilizzano la SSOAWSCredentialsclasse per ottenere le credenziali SSO, potrebbe essere necessario impostare la Options.SupportsGettingNewToken proprietà su. true Per esempi di questa configurazione, consultate gli esempi di codice in. Tutorial per SSO che utilizza solo applicazioni.NET Per ulteriori informazioni, vedere PR 3737
Modifiche specifiche a DynamoDB
Le seguenti modifiche sono specifiche di Amazon DynamoDB. Molte di esse stanno rivoluzionando i cambiamenti.
Per ulteriori informazioni sulle modifiche a DynamoDB nella V4 del, consulta il post AWS SDK per .NET
Le modifiche alla V4 all'SDK per DynamoDB risolvono alcuni problemi relativi alla testabilità, ma riguardano principalmente le librerie di alto livello:
-
.NET Document Model, denominato nel codice. DocumentModel
-
Il modello.NET Object Persistence, denominato DataModelnel codice.
Per informazioni dettagliate su queste modalità di programmazione, DynamoDB consulta questa guida.
Modello di documento: eccezione aggiornata per l'interfaccia IAmazonDynamoDB simulata
Nel modello di documento precedente alla V4 dell'SDK, se una tabella veniva inizializzata con un'interfaccia DynamoDB IAmazon simulata, veniva restituita. NullReferenceException Viene invece restituita la V4 dell'SDK. InvalidOperationException TableI metodi asincroni dovrebbero funzionare con un client simulato, ma potresti comunque vedere delle eccezioni quando chiami metodi sincroni da. .NET/Core/Standard
Per ulteriori informazioni su questa modifica, vedere PR 3388 su.
Modello di documento: FromJson e metodi ToJson
ToJsonI metodi FromJson and della classe Document ora vengono utilizzati System.Text.Json al posto della LitJson serializzazione e sono LitJson stati rimossi dalla versione 4 dell'SDK. Un vantaggio dell'utilizzo System.Text.Json è che questo parser supporta l'utilizzo del Decimal tipo.NET, che supporta una maggiore precisione per le proprietà numeriche a virgola mobile.
Modello di persistenza degli oggetti: la classe DynamoDBOperationConfig
Nel modello di persistenza degli oggetti, sono state apportate le seguenti modifiche alla classe condivisa Dynamo DBOperation Config:
-
La classe è stata suddivisa in nuove classi specifiche per l'operazione come, e. SaveConfigLoadConfigQueryConfig I metodi utilizzati
DynamoDBOperationConfigsono stati contrassegnati come obsoleti e sono soggetti a rimozione in futuro.Per ulteriori informazioni su questa modifica, vedere PR 3421
su. GitHub -
Le
DisableFetchingTableMetadataproprietàMetadataCachingModeand sono state rimosse dalla classe. Queste proprietà non sono state incluse nelle nuove classi specifiche dell'operazione menzionate in precedenza. Le proprietà rimosse sono impostazioni a livello di tabella che devono essere specificate nellaContextproprietà globale della classe AWSConfigsDynamoDB o nella classe Dynamo Config. DBContextPer ulteriori informazioni su questa modifica, vedere PR 3422 su.
GitHub -
La classe non eredita più dalla classe Dynamo DBContext Config. Ciò impedisce di passare un
DynamoDBOperationConfigoggetto al costruttore di Dynamo DBContext, dove alcune proprietà della configurazione specifica dell'operazione (come) non sono applicabili.OverrideTableNamePer ulteriori informazioni su questa modifica, vedere PR 3422 su.
GitHub
Modello di persistenza degli oggetti: polimorfismo
La DBPolymorphic TypeAttribute classe Dynamo è stata aggiunta al modello di persistenza degli oggetti. Questa classe consente il supporto per la serializzazione e la deserializzazione di tipi polimorfici. Per ulteriori informazioni, vedere PR 3643 su.
Modello di documento e modello di persistenza degli oggetti: operazioni mockabili
Sono state aggiunte nuove interfacce specifiche per le operazioni che consentono ai clienti di simulare le operazioni di DynamoDB. I metodi di fabbrica sull'IDynamoDBContextinterfaccia sono stati aggiornati per restituire le nuove interfacce.
Per ulteriori informazioni su questa modifica, vedere PR 3450
-
Modello di persistenza degli oggetti
-
BatchGetOperazioni simulate tramite le interfacceIBatchGetandIMultiTableBatchGet. -
BatchWriteOperazioni simulate tramite le interfacce and.IBatchWriteIMultiTableBatchWrite -
TransactGetOperazioni simulate tramite le interfacce and.ITransactGetIMultiTableTransactGet -
TransactWriteOperazioni simulate tramite le interfacce and.ITransactWriteIMultiTableTransactWrite -
Simulazione
ScaneQueryoperazioni tramite l'interfaccia.IAsyncSearch
-
-
Modello di documento
-
TableOperazioni simulate tramite l'interfaccia.ITable -
Simulazione
ScaneQueryoperazioni tramite l'ISearchinterfaccia. -
TransactWriteOperazioni simulate tramite le interfacceIDocumentTransactWriteandIMultiTableDocumentTransactWrite. -
TransactGetOperazioni simulate tramite le interfacce and.IDocumentTransactGetIMultiTableDocumentTransactGet -
BatchWriteOperazioni simulate tramite le interfacce and.IDocumentBatchWriteIMultiTableDocumentBatchWrite -
BatchGetOperazioni simulate tramite le interfacce and.IDocumentBatchGetIMultiTableDocumentBatchGet
-
Modello di documento e modello di persistenza degli oggetti: supporto per AOT nativo
Una limitazione di Native AOT è il supporto per i tipi.NET annidati. In alcuni casi, questi tipi annidati potrebbero passare inosservati al componente di taglio del compilatore.NET. In questo caso, potresti ricevere un'eccezione come: "» System.InvalidOperationException: Type <type> is
unsupported, it cannot be instantiated.
È possibile aggirare questa limitazione aggiungendo il percorso del codice DynamicDependency da qualche parte nel percorso del codice che informa il trimmer sulla dipendenza dal sottotipo. È probabile che venga salvato il costruttore del tipo.NET di primo livello. Il seguente esempio di codice mostra come utilizzare l'DynamicDependencyattributo:
[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 è stato rimosso dal AWSSDKpacchetto.DynamoDBAmazon.DynamoDBStreams
Consenti la rimozione TableNamePrefix del valore
È ora possibile rimuovere il valore della TableNamePrefix proprietà nella classe Dynamo DBContext Config a livello di singola operazione. Per ulteriori informazioni su questa modifica, vedere PR
RetrieveDateTimeInUtc property
Per la classe Dynamo DBContext Config, il valore predefinito della RetrieveDateTimeInUtc proprietà è stato modificato in. true
DynamoDBContextTableNamePrefix property
Rimossa la DynamoDBContextTableNamePrefix proprietà dalla classe AWSConfigsDynamoDB. Gli utenti devono chiamare invece AWSConfigsDynamoDB.Context.TableNamePrefix di
Modifiche specifiche di EC2
Le seguenti modifiche sono specifiche di Amazon EC2. La maggior parte o tutte stanno apportando modifiche sostanziali.
GetDecryptedPassword
L'GetDecryptedPasswordestensione per Amazon EC2 è stata spostata in un pacchetto di estensione separato chiamato AWSSDK.Extensions. EC2. DecryptPassword
Il codice sorgente di questo pacchetto è disponibile all'indirizzo. GitHub https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword
Support per Amazon EC2 IMDSv1
Il supporto per Instance Metadata Service Version 1 (IMDSv1) è stato rimosso. La versione 4 dell'SDK utilizza sempre Instance Metadata Service versione 2 (IMDSv2) per recuperare credenziali e altri metadati dall'IMDS. Per ulteriori informazioni sull'IMDS, consulta Use the IMDS nella Amazon EC2 User Guide.
Elementi di programmazione che sono stati modificati o rimossi
-
L'intero
Amazon.EC2.Importnamespace e il codice sono stati rimossi. -
L'intero
Amazon.EC2.Utilnamespace e il codice sono stati rimossi, incluse le utilità AMI utilizzate per cercare EC2 AMIs Windows. -
La
IpRangesproprietà obsoleta è stata rimossa dalla classe. IpPermission Utilizzate inveceIpv6Rangesle proprietàIpv4Rangesor. -
I seguenti campi obsoleti sono stati rimossi dalla EC2InstanceMetadataclasse:
EC2_METADATA_SVC,EC2_METADATA_ROOT,EC2_USERDATA_ROOTEC2_DYNAMICDATA_ROOT, eEC2_APITOKEN_URL.
Modifiche specifiche di S3
Le seguenti modifiche sono specifiche di Amazon S3. La maggior parte o tutte stanno apportando modifiche sostanziali.
Regione AWS us-east-1
I client di servizio Amazon S3 configurati per la us-east-1 regione non possono più accedere ai bucket in altre regioni. È necessario accedere ai bucket con i client di servizio S3 configurati per la regione in cui si trova il bucket.
Per ulteriori informazioni su questa modifica, consulta il post del blog Preview 4 of V4
Client di crittografia S3
Il client di crittografia Amazon S3, definito nello spazio dei Amazon.S3.Encryption nomi, è stato rimosso dal pacchetto.S3. AWSSDK
Direttiva di tagging S3 per CopyObject
La TaggingDirective proprietà è stata esposta come proprietà pubblica della CopyObjectRequestclasse, utilizzata dai AmazonS3Client.CopyObject metodi. Questa proprietà corrisponde al x-amz-tagging-directive parametro Amazon S3, come definito nell'azione CopyObject.
La direttiva di etichettatura non è più impostata automaticamente su COPY. Se uno sviluppatore non specifica una direttiva di tagging, il backend S3 presume automaticamente che sia COPY, ma se uno sviluppatore imposta esplicitamente la proprietà su null, il valore non viene impostato affatto.
La proprietà per la configurazione di S3 UseArnRegion
La UseArnRegion proprietà della classe amazon.s3.amazonS3Config è stata aggiornata in modo tale che la variabile di AWS_S3_USE_ARN_REGION ambiente abbia la precedenza sull'impostazione nel file condiviso. s3_use_arn_region AWS config Per ulteriori informazioni su queste variabili e impostazioni, consulta il riferimento alle impostazioni nella and Tools Reference Guide.AWS SDKs
Barre iniziali per i metodi CopyObject and CopyPart
Le barre iniziali non verranno più tagliate per Amazon S3 e i metodi. CopyObject CopyPart La DisableTrimmingLeadingSlash proprietà è stata rimossa dalle classi and. CopyObjectRequestCopyPartRequest
I DoesS3BucketExist... metodi
I DoesS3BucketExistAsync metodi obsoleti DoesS3BucketExist sono stati rimossi dalla classe AmazonS3Util, che implementa l'interfaccia AmazonS3. ICore Questi metodi sono stati rimossi perché utilizzano sempre HTTP. Utilizzate invece DoEss3 BucketExist V2 e BucketExistDoESS3 V2Async.
SDK utilizza sempre SigV4
La versione 4 di utilizza AWS SDK per .NET sempre la versione 4 della AWS firma (SigV4) per la firma delle richieste. Questa modifica comporta le seguenti modifiche correlate:
-
La
UseSignatureVersion4proprietà della classe AWSConfigsS3 è stata rimossa. -
La
SignatureVersionproprietà di Amazon.Runtime. ClientConfigla classe è stata rimossa. Questa proprietà è stata utilizzata solo da Amazon S3 per la compatibilità con le versioni precedenti. -
La
RegionEndpoint.Endpointclasse è stata rimossa. Ciò include laSignatureVersionOverrideproprietà, che è stata utilizzata per sovrascrivere le versioni di firma per Amazon S3. Utilizza invece il metodo specifico del servizioclient.DetermineServiceOperationEndPoint(). -
Metodi aggiornati Amazons3util. PostUploadPostUploadSignedPolicye S3. GetSignedPolicyper usare SigV4. Di conseguenza, il
S3PostUploadSignedPolicy.GetSignedPolicyV4metodo è stato rimosso perchéGetSignedPolicyora svolge la stessa funzione. Inoltre,GetSignedPolicyè stato assegnato un terzo parametro per l'endpoint Region.
I metodi GetACL e PutACL
I PutACL metodi GetACL and della classe AmazonS3Client sono stati contrassegnati come obsoleti. Per accedere alle funzionalità di questi metodi, utilizza invece i seguenti nuovi metodi:GetBucketACL,, e. PutBucketACL GetObjectACL PutObjectACL
Elementi di programmazione obsoleti rimossi
Diversi elementi di programmazione dell'implementazione di Amazon S3 sono stati rimossi dalla versione 4 dell'SDK, inclusi valori di enumerazione, tipi, metodi, namespace, ecc. Questi sono elencati di seguito, se non sono già stati trattati in precedenza, insieme ai potenziali passaggi che è possibile adottare per facilitarne la rimozione.
-
La
DisableMD5Streamproprietà è stata rimossa dalla TransferUtilityUploadRequestclasse. Va invece utilizzata la proprietàDisableDefaultChecksumValidation.Inoltre, la
CalculateContentMD5Headerproprietà è stata rimossa dallaTransferUtilityUploadRequestclasse. Questa proprietà non è più necessaria perché l'SDK calcola un checksum per impostazione predefinita. -
Le
ServerSideEncryptionKeyManagementServiceKeyIdproprietàServerSideEncryptionMethodand sono state rimosse dalla classe. CopyPartRequest Utilizzate invece le proprietà con lo stesso nome nella InitiateMultipartUploadRequestclasse, utilizzata in alcuniInitiateMultipartUpload...metodi della classe AmazonS3Client. -
La
Expiresproprietà è stata rimossa dalla classe. GetObjectResponse Va invece utilizzata la proprietàExpiresString. La stringa potrebbe non essere in un formato di timestamp valido, quindi il codice dovrebbe utilizzare ilTryParsemetodo durante la conversione in un.DateTime -
Regione AWS Gli identificatori obsoleti sono stati rimossi dall'enumerazione S3Region.
-
La
Prefixproprietà è stata rimossa dalla classe. LifecycleRule Va invece utilizzata la proprietàFilter.Inoltre, le
TransitionproprietàNoncurrentVersionTransitionand sono state rimosse dallaLifecycleRuleclasse. Utilizzate inveceTransitionsle raccolteNoncurrentVersionTransitionsand. -
La
Eventproprietà è stata rimossa dalla TopicConfigurationclasse. Utilizzate invece laEventscollezione. -
CalculateContentMD5Proprietà Header. Non è più necessario impostare questa proprietà perché l'SDK calcolerà un checksum per impostazione predefinita.
-
La
Bucketproprietà è stata rimossa dalla classe. SelectObjectContentRequest Va invece utilizzata la proprietàBucketName. -
La
NumberOfUploadThreadsproprietà è stata rimossa dalla TransferUtilityConfigclasse. Utilizzate invece laConcurrentServiceRequestsproprietà.
Elementi di programmazione che sono stati rimossi
Diversi elementi di programmazione sono stati rimossi dalla versione 4 dell'SDK, inclusi valori di enumerazione, tipi, metodi, namespace, ecc. Questi sono elencati di seguito, se non sono già stati trattati in precedenza, insieme ai potenziali passaggi che è possibile adottare per facilitarne la rimozione.
Lo spazio dei nomi Amazon.Auth.AccessControlPolicy.ActionIdentifiers
Il Amazon.Auth.AccessControlPolicy.ActionIdentifiers namespace è stato rimosso. Ciò include gli identificatori di azione IAM, che sono stati definiti nella classe. IdentityandAccessManagementActionIdentifiers Il codice che utilizza questi identificatori di azione deve essere modificato per utilizzare i valori di stringa del nome dell'azione.
Per ulteriori informazioni, consulta la sezione Creazione di policy gestite da IAM da JSON Panoramica delle policy JSON nella IAM User Guide.
La classe ClientConfig
Amazon.Runtime. ClientConfigclass è la classe base delle classi di configurazione dei client di servizio come AmazonS3Config. I seguenti elementi di programmazione sono stati rimossi da questa classe.
-
I
DetermineDnsSuffixmetodiDetermineServiceURLand sono stati rimossi. Utilizzate invece ilDetermineServiceOperationEndpointmetodo del client di servizio, ad esempio AmazonS3Client. DetermineServiceOperationEndpoint. -
La
ReadEntireResponseproprietà è stata rimossa. Utilizzate invece uno dei seguenti:-
La
LogResponsesproprietà di AWSConfigs. LoggingConfigclasse. -
La
LogResponseproprietà della configurazione del client, ad esempio AmazonS3Config.
-
Lo spazio dei nomi Amazon.Runtime
Lo spazio dei nomi Amazon.Runtime è stato aggiornato come segue:
-
La
ECSTaskCredentialsclasse obsoleta è stata rimossa dallo spazio dei nomi. Utilizza invece il GenericContainerCredentialsprovider, che supporta anche Amazon EKS Pod Identities. -
Le
StoredProfileCredentialsclassi obsoleteStoredProfileAWSCredentialse sono state rimosse dallo spazio dei nomi. Usa Net SDKCredentials File o la SharedCredentialsFileclasse di Amazon.Runtime. CredentialManagementnamespace invece. -
Il
HasCachedAccessTokenAvailablemetodo obsoleto della SSOAWSCredentialsclasse è stato rimosso dallo spazio dei nomi. -
La
EnvironmentAWSCredentialsclasse obsoleta è stata rimossa dallo spazio dei nomi. Al su posto, utilizza la classe AppConfigAWSCredentials. -
La
StoredProfileFederatedCredentialsclasse obsoleta è stata rimossa dallo spazio dei nomi. Utilizzate invece la classe Federated AWSCredentials. -
Le seguenti classi obsolete sono state rimosse dallo spazio dei nomi:
EnvironmentVariableAWSEndpointDiscoveryEnabled,, e.ProfileAWSEndpointDiscoveryEnabledFallbackEndpointDiscoveryEnabledFactory -
La
UseSigV4proprietà obsoleta è stata rimossa dalla classe. AmazonWebServiceRequest Va invece utilizzata la proprietàSignatureVersion. -
La
ProfileIniFileclasse nello spazio deiAmazon.Runtime.Internal.Utilnomi ha un metodo sovraccaricato chiamato.TryGetSectionLe versioni del metodo che non supportano iloutparametro fornestedPropertiessono state rimosse dalla classe. -
La
EventBridgeSignerclasse obsoleta nello spazio deiAmazon.Runtime.Internal.Authnomi è stata rimossa. -
La proprietà obsoleta del
Parametersdizionario è stata rimossa dalla classe. WebServiceRequestEventArgs Va invece utilizzata la proprietàParameteCollection.
BouncyCastle
La copia sorgente di BouncyCastle è stata rimossa dalla V4 dell'SDK.
La classe StoredProfileSAMLCredentials
La StoredProfileSAMLCredentials classe obsoleta in Amazon. SecurityTokenLo spazio dei nomi.SAML è stato rimosso. Utilizzate invece la AWSCredentials classe Federated nello spazio dei nomi Amazon.Runtime.
La classe AWSSDKUtils
I seguenti metodi sono stati rimossi dalla classe:, e. AWSSDKUtilsResolveResourcePathProtectEncodedSlashUrlEncodeConvertToUnixEpochMilliSeconds
La classe ProfileManager
La ProfileManager classe obsoleta è stata rimossa dallo spazio dei nomi Amazon.Util. Utilizza il file o la classe Net di Amazon.Runtime SDKCredentials. SharedCredentialsFile CredentialManagementnamespace invece.
La classe AWSConfigs
Le seguenti proprietà obsolete sono state rimosse dalla AWSConfigsclasse:Logging, ResponseLogging e. LogMetrics Va invece utilizzata la proprietà LoggingConfig.
La classe ConditionFactory
Il metodo con la seguente firma è stato rimosso dalla ConditionFactoryclasse:NewCondition(ConditionFactory.DateComparisonType, DateTime). Usa invece il NewConditionUtcmetodo.
CloudFront Utilità Amazon
Lo spazio dei Amazon.CloudFront.Util nomi e la AmazonCloudFrontUtil classe obsoleti sono stati rimossi.
AWS IoT
Nella ListPrincipalThingsResponseclasse, una personalizzazione precedente per un NextToken override è stata rimossa a favore dell'impaginazione.
AWS Lambda
I seguenti Invoke... metodi della AmazonLambdaClientclasse sono stati rimossi perché i nomi erano confusi.
-
Il metodo V3 con la seguente firma è stato rimosso:.
InvokeAsyncResponse InvokeAsync(InvokeAsyncRequest)Questo è un metodo sincrono nella V3 dell'SDK. UtilizzateInvokeResponse Invoke(InvokeRequest)invece (per l'elaborazione sincrona) oTask InvokeAsync(InvokeRequest, CancellationToken)(per l'elaborazione asincrona). -
Il metodo V3 con la seguente firma è stato rimosso:.
Task InvokeAsyncAsync(InvokeAsyncRequest, CancellationToken)Questo è un metodo asincrono nella V3 dell'SDK. Usare inveceTask InvokeAsync(InvokeRequest, CancellationToken).
SageMaker Runtime di Amazon
I costruttori obsoleti per la PayloadPartclasse sono stati rimossi.