A versão 4 (V4) do AWS SDK para .NET foi lançada!
Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o tópico de migração.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Migrando para a versão 4 do AWS SDK para .NET
A AWS SDK para .NET versão 4 (V4) tem um número significativo de alterações significativas em relação à versão 3 (V3) do SDK. Este tópico descreve as alterações importantes na versão 4 e o possível trabalho que talvez você precise fazer para migrar seu ambiente ou código da V3. Para obter informações adicionais sobre outras mudanças notáveis no SDK, consulte os seguintes recursos:
-
O problema do rastreador de desenvolvimento em:. GitHub https://github.com/aws/aws-sdk-net/issues/3362
-
A postagem do blog Prévia 1 da AWS SDK para .NET V4
. -
A postagem do blog Preview 4 of AWS SDK para .NET V4
. -
A postagem do blog Disponibilidade geral da AWS SDK para .NET V4.0
.
NET Framework
O destino.NET Framework 3.5 foi removido da V4 do AWS SDK para .NET. Como resultado, o SDK não é mais compatível com o.NET Framework 3.5. Essa versão do SDK é compilada com o.NET Framework 4.7.2 e é executada no tempo de execução do.NET 4.0. Para obter mais informações, consulte Plataformas suportadas.
Tipos de valor
As propriedades que usam tipos de valor em classes usadas para fazer solicitações e respostas foram alteradas para usar tipos de valores anuláveis. As propriedades com os seguintes tipos foram alteradas:
-
boolfoi alterado parabool? -
doublefoi alterado paradouble? -
intfoi alterado paraint? -
floatfoi alterado parafloat? -
longfoi alterado paralong? -
Datetimefoi alterado paraDatetime?
Para obter informações adicionais sobre essa alteração, consulte a postagem do blog Preview 1 of AWS SDK para .NET
V4
Coleções
As propriedades que usam coleções em classes usadas para fazer solicitações e respostas agora usam como padrãonull. Como resultado, seu código precisa verificar se uma coleção não é nula antes de tentar usá-la. Por exemplo:
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. } }
O comportamento da V3 de inicializar coleções pode ser restaurado configurando comoAmazon.AWSConfigs.InitializeCollections. true Essa propriedade também existe na V3 para usuários que desejam experimentar essa mudança de comportamento antes de atualizar para a V4.
Para obter informações adicionais sobre essa alteração, consulte a postagem do blog Preview 1 of AWS SDK para .NET
V4
AWS Security Token Service (STS)
-
O endpoint regional
Ao usar provedores de credenciais que dependem AWS STS, as chamadas sempre usam o endpoint regional. Isso difere da V3 do SDK, que usava a
us-east-1região por padrão ao ser executada na partição pública, independentemente da região configurada. -
O
StsRegionalEndpointsValueenumA
StsRegionalEndpointsValueenumeração foi removida do namespace Amazon.Runtime. Qualquer código usando essa enumeração deve ser removido. -
A classe
STSAssumeRoleAWSCredentialsO fornecedor obsoleto de credenciais STS assume a função,
STSAssumeRoleAWSCredentials, foi removido da Amazon. SecurityTokennamespace. Em vez disso, use AssumeRoleAWSCredentialsdo Amazon.Runtime.
Mudanças relacionadas a ClientConfig
O Amazon.Runtime. ClientConfigclass é a classe base das classes de configuração do cliente de serviço, como AmazonS3Config. As seguintes alterações foram feitas nessa classe base.
-
Modo de repetição padrão
O padrão
RetryModeda propriedade é emStandardvez de.LegacyComo resultado, oLegacyvalor foi removido do Amazon.Runtime. RequestRetryModeenum. -
Modo de configuração padrão
O padrão
DefaultConfigurationModeda propriedade é emStandardvez de.LegacyComo resultado, oLegacyvalor foi removido do Amazon.Runtime. DefaultConfigurationModeenum. -
A
ReadWriteTimeoutpropriedadeA
ReadWriteTimeoutpropriedade obsoleta foi removida de todos os destinos, exceto o.NET Framework 4.7.2.
As AWSSDK .Extensões. NETCore.Pacote de configuração NuGet
As AWSSDK.Extensões. NETCoreO NuGet pacote.Setup
-
A classe
DefaultClientConfigA
DefaultClientConfigclasse não é mais herdada da classe base de configuração do cliente de serviço Amazon.Runtime. ClientConfig. As propriedades relevantes deClientConfigforam replicadasDefaultClientConfigusando tipos de valores anuláveis. Essa alteração nos permite detectar quando um valor foi definidoDefaultClientConfigao copiar os valores para a configuração que está sendo criada para o cliente do serviço.Um resultado específico dessa mudança é que não
DefaultClientConfig.HttpClientFactoryestá mais disponível na V4. UseAWSConfigs.HttpClientFactoryem vez disso. Para obter informações adicionais, consulte a GitHub edição 3790. Outro resultado dessa mudança é que as sobrecargas genéricas do método de
IConfiguration.GetAWSOptionsextensão que aceitava um objeto de configuração de serviço foram removidas. Em vez disso, a sobrecarga não genérica deve ser usada, e o SDK processará automaticamente o preenchimento das configurações específicas do serviço. Para obter informações adicionais, consulte a GitHub edição 3866. -
AOT nativo
Um novo mecanismo para criar clientes de serviço que usam métodos de interface estática do C# 11 foi adicionado ao pacote. Essa alteração elimina a necessidade de fazer cargas do tipo Assembly para criar instâncias de clientes de serviço, incluindo a manipulação de strings do nome da interface de serviço para calcular o tipo de cliente de serviço, o que é incompatível com o AOT nativo. Essa alteração está disponível somente para o.NET 8 e versões posteriores; versões mais antigas ainda usam o mecanismo original.
Para obter informações adicionais neste guia sobre esse pacote, consulteAWSSDK.Extensões. NETCore.Configuração e IConfiguration. O código-fonte desse pacote está GitHub emhttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup
CookieSigner e UrlSigner
As UrlSigner extensões CookieSigner e da Amazon CloudFront foram movidas para um pacote de extensão separado chamado AWSSDK.Extensions. CloudFront.Signatários
O código-fonte desse pacote está GitHub emhttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers
DateTime versus UTC DateTime
Algumas classes V3 têm uma DateTime propriedade marcada como “obsoleta” ou “obsoleta”, bem como uma propriedade UTC alternativa. DateTime Nessas classes, a DateTime propriedade obsoleta foi removida e o nome da DateTime propriedade UTC foi alterado para o nome original da DateTime propriedade.
A seguir estão alguns exemplos de classes para as quais essa alteração foi implementada.
-
DescribeSpotPriceHistoryRequest:
-
A
StartTimepropriedade obsoleta foi removida e o nome daStartTimeUtcpropriedade foi alterado para "StartTime”. -
A
EndTimepropriedade obsoleta foi removida e o nome daEndTimeUtcpropriedade foi alterado para "EndTime”.
-
-
-
A
ValidFrompropriedade obsoleta foi removida e o nome daValidFromUtcpropriedade foi alterado para "ValidFrom”. -
A
ValidUntilpropriedade obsoleta foi removida e o nome daValidUntilUtcpropriedade foi alterado para "ValidUntil”.
-
Essa alteração pode levar a tempos de compensação se um aplicativo estiver usando a DateTime propriedade original e obsoleta. Ocorrerá um erro de tempo de compilação para o código que usa a propriedade UTC DateTime .
DateTime analisando
A DateTimeUnmarshaller aula foi atualizada. Essa classe estava analisando e retornando DateTime strings no horário local. Em alguns casos, esses valores estavam sendo convertidos novamente para UTC devido a uma atualização anterior, mas nem sempre. Agora, DateTime as cadeias de caracteres que não estão agrupadas são consideradas UTC e serão especificadas e desempacotadas como UTC. Essa atualização inclui as seguintes mudanças de comportamento.
Certas propriedades de timestamp baseadas na DateTime classe estavam sendo analisadas em horários locais. Isso incluía desorganizadores de resposta para carimbos de data/hora e listas de carimbos de data/hora para formatos e. TimestampFormat.ISO8601 TimestampFormat.RFC822 DateTime a análise foi atualizada para retornar os horários UTC em vez disso.
ConvertFromUnixEpochSeconds e ConvertFromUnixEpochMilliseconds
Os ConvertFromUnixEpochMillisecondsmétodos ConvertFromUnixEpochSecondse, que convertem segundos da época Unix em uma DateTime estrutura, estavam retornando a hora do Unix Epoch como uma hora local em vez de uma hora UTC. Esses métodos agora retornam a hora UTC.
Registro em log
A forma como você ativa o login no SDK foi atualizada para a V4. O registro no console e no diagnóstico do sistema funciona da mesma forma que o V3; ou seja, definindo a LoggingConfig.LogTo propriedade da AWSConfigsclasse como ouLoggingOptions.Console. LoggingOptions.SystemDiagnostics A LoggingOptionsopção for log4net foi removida junto com a lógica interna do SDK para usar a reflexão para se conectar a uma instância na memória do. log4net
Para incluir o registro do SDK em uma estrutura de registro, um pacote de adaptador separado é usado para conectar o SDK à estrutura de registro. Use o pacote AWSSDK.Extensions.Logging.Log4 para e o NetAdaptor .Extensions.Logginglog4net AWSSDK ILoggerPacote de adaptadorMicrosoft.Extensions.Logging. Os exemplos de código a seguir mostram como configurar o registro em log nesses dois casos.
Adicione o AWSSDK.Extensions.Logging.Log4NetAdaptor NuGet pacote e chame o ConfigureAWSSDKLogging método estático deLog4NetAWSExtensions.
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));
Adicione o AWSSDK.Extensions.Logging.ILoggerAdaptor NuGet pacote e chame o método de ConfigureAWSSDKLogging extensão na ILoggerFactory interface.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.Services.GetRequiredService<ILoggerFactory>() .ConfigureAWSSDKLogging();
Support para HTTP 2
O suporte para HTTP 2 foi adicionado para permitir o streaming bidirecional. Para obter mais informações, consulte Support para HTTP 2.
Autenticação única
O valor padrão da SupportsGettingNewToken propriedade da classe SSOAWSCredentialsOptions foi alterado de true parafalse. Se você tiver aplicativos que usam a SSOAWSCredentialsclasse para obter credenciais de SSO, talvez seja necessário definir a Options.SupportsGettingNewToken propriedade como. true Para ver exemplos dessa configuração, consulte os exemplos de código emTutorial para SSO usando somente aplicativos .NET. Para obter informações adicionais, consulte PR 3737
Alterações específicas do DynamoDB
As alterações a seguir são específicas do Amazon DynamoDB. Muitos deles são mudanças significativas.
Para obter informações adicionais sobre mudanças no DynamoDB na V4 do, consulte a postagem AWS SDK para .NET
As mudanças da V4 no SDK para DynamoDB abordam alguns problemas relacionados à testabilidade, mas se concentram principalmente nas bibliotecas de alto nível:
-
O modelo de documento.NET, nomeado DocumentModelno código.
-
O modelo de persistência de objetos.NET, nomeado DataModelno código.
Para obter informações detalhadas sobre esses modos de programação, consulte DynamoDB este guia.
Modelo de documento: exceção atualizada para interface simulada IAmazonDynamoDB
No modelo de documento anterior à V4 do SDK, se uma tabela fosse inicializada com uma interface simulada do DynamoDBIAmazon, ela retornaria. NullReferenceException Em vez disso, a V4 do SDK retornaInvalidOperationException. TableOs métodos assíncronos devem funcionar com um cliente simulado, mas você ainda pode ver exceções ao chamar métodos síncronos de. .NET/Core/Standard
Para obter mais informações sobre essa alteração, consulte PR 3388
Modelo de documento: FromJson e ToJson métodos
Os ToJson métodos FromJson e da classe Document agora são usados System.Text.Json em vez de LitJson para serialização e LitJson foram removidos da V4 do SDK. Uma vantagem do uso System.Text.Json é que esse analisador suporta o uso do Decimal tipo.NET, que oferece maior precisão para propriedades numéricas de ponto flutuante.
Modelo de persistência de objetos: a classe DynamoDBOperationConfig
No modelo de persistência de objetos, as seguintes alterações foram feitas na classe compartilhada do Dynamo Config: DBOperation
-
A classe foi separada em novas classes específicas da operação SaveConfig, como, e. LoadConfigQueryConfig Os métodos usados
DynamoDBOperationConfigforam marcados como obsoletos e estão sujeitos a remoção no futuro.Para obter mais informações sobre essa alteração, consulte PR 3421
em GitHub. -
As
DisableFetchingTableMetadatapropriedadesMetadataCachingModee foram removidas da classe. Essas propriedades não foram incluídas nas novas classes específicas da operação mencionadas anteriormente. As propriedades removidas são configurações em nível de tabela que devem ser especificadas naContextpropriedade global da classe AWSConfigsDynamoDB ou na classe Dynamo Config. DBContextPara obter mais informações sobre essa alteração, consulte PR 3422
em GitHub. -
A classe não herda mais da classe Dynamo Config DBContext. Isso impede que você passe um
DynamoDBOperationConfigobjeto para o construtor do Dynamo DBContext, onde algumas propriedades na configuração específica da operação (como) não se aplicam.OverrideTableNamePara obter mais informações sobre essa alteração, consulte PR 3422
em GitHub.
Modelo de persistência de objetos: polimorfismo
A DBPolymorphic TypeAttribute classe Dynamo foi adicionada ao modelo de persistência de objetos. Essa classe permite suporte para serialização e desserialização de tipos polimórficos. Para obter mais informações, consulte PR 3643
Modelo de documento e modelo de persistência de objetos: operações simuláveis
Novas interfaces específicas de operação foram adicionadas para permitir que os clientes simulem as operações do DynamoDB. Os métodos de fábrica na IDynamoDBContextinterface foram atualizados para retornar as novas interfaces.
Para obter mais informações sobre essa alteração, consulte PR 3450
-
Modelo de persistência de objeto
-
BatchGetOperações simuladas por meio dasIMultiTableBatchGetinterfacesIBatchGete. -
BatchWriteOperações simuladas por meio dasIMultiTableBatchWriteinterfacesIBatchWritee. -
TransactGetOperações simuladas por meio dasIMultiTableTransactGetinterfacesITransactGete. -
TransactWriteOperações simuladas por meio dasIMultiTableTransactWriteinterfacesITransactWritee. -
Simulação
ScaneQueryoperações por meio daIAsyncSearchinterface.
-
-
Modelo de documento
-
TableOperações simuladas por meio daITableinterface. -
Simulação
ScaneQueryoperações por meio daISearchinterface. -
TransactWriteOperações simuladas por meio dasIMultiTableDocumentTransactWriteinterfacesIDocumentTransactWritee. -
TransactGetOperações simuladas por meio dasIMultiTableDocumentTransactGetinterfacesIDocumentTransactGete. -
BatchWriteOperações simuladas por meio dasIMultiTableDocumentBatchWriteinterfacesIDocumentBatchWritee. -
BatchGetOperações simuladas por meio dasIMultiTableDocumentBatchGetinterfacesIDocumentBatchGete.
-
Modelo de documento e modelo de persistência de objetos: Support for native AOT
Uma limitação do AOT nativo é o suporte para tipos.NET aninhados. Em alguns casos, esses tipos aninhados podem passar despercebidos pelo componente de corte do compilador.NET. Nesse caso, você pode receber uma exceção como: "System.InvalidOperationException: Type <type> is
unsupported, it cannot be instantiated.”
Você pode contornar essa limitação adicionando DynamicDependency algum lugar no caminho do código que informa ao trimmer sobre a dependência do subtipo. O construtor do tipo.NET de nível superior que está sendo salvo é um lugar provável. O exemplo de código a seguir mostra como usar o DynamicDependency atributo:
[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; } }
Dínamo DBStreams
O Dynamo DBStreams foi removido do pacote AWSSDK.DynamoDBAmazon.DynamoDBStreams
Permitir a remoção do TableNamePrefix valor
Agora você pode remover o valor da TableNamePrefix propriedade na classe Dynamo DBContext Config no nível de operação individual. Para obter mais informações sobre essa alteração, consulte PR 3476
a propriedade RetrieveDateTimeInUtc
Para a classe Dynamo DBContext Config, o valor padrão RetrieveDateTimeInUtc da propriedade foi alterado para. true
a propriedade DynamoDBContextTableNamePrefix
A DynamoDBContextTableNamePrefix propriedade foi removida da classe AWSConfigsDynamoDB. Os usuários devem ligar AWSConfigsDynamoDB.Context.TableNamePrefix em vez de
Alterações específicas para EC2
As alterações a seguir são específicas da Amazon EC2. A maioria ou todas elas são mudanças significativas.
GetDecryptedPassword
A GetDecryptedPassword extensão da Amazon EC2 foi movida para um pacote de extensão separado chamado AWSSDK.Extensions. EC2. DecryptPassword
O código-fonte desse pacote está GitHub emhttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword
Support para Amazon EC2 IMDSv1
O suporte para o Instance Metadata Service versão 1 (IMDSv1) foi removido. A V4 do SDK sempre usa o Instance Metadata Service Version 2 (IMDSv2) ao buscar credenciais e outros metadados do IMDS. Para obter mais informações sobre o IMDS, consulte Usar o IMDS no Guia EC2 do usuário da Amazon.
Elementos de programação que foram alterados ou removidos
-
Todo o
Amazon.EC2.Importnamespace e o código foram removidos. -
Todo o
Amazon.EC2.Utilnamespace e o código foram removidos, o que inclui os utilitários da AMI usados para pesquisar EC2 AMIs o Windows. -
A
IpRangespropriedade obsoleta foi removida da IpPermissionclasse. Em vez disso, useIpv6Rangesas propriedadesIpv4Rangesou. -
Os seguintes campos obsoletos foram removidos da EC2InstanceMetadataclasse:
EC2_METADATA_SVCEC2_METADATA_ROOT,EC2_USERDATA_ROOTEC2_DYNAMICDATA_ROOT,,EC2_APITOKEN_URLe.
Alterações específicas do S3
As seguintes alterações são específicas do Amazon S3. A maioria ou todas elas são mudanças significativas.
Região da AWS us-east-1
Os clientes do serviço Amazon S3 configurados para a us-east-1 região não podem mais acessar buckets em outras regiões. Os buckets devem ser acessados com clientes de serviço do S3 configurados para a região em que o bucket está.
Para obter informações adicionais sobre essa alteração, consulte a postagem do blog Preview 4 of AWS SDK para .NET
V4
Cliente de criptografia S3
O cliente de criptografia Amazon S3, definido no Amazon.S3.Encryption namespace, foi removido do pacote.S3. AWSSDK
Diretiva de marcação S3 para CopyObject
A TaggingDirective propriedade foi exposta como uma propriedade pública da CopyObjectRequestclasse, que é usada por AmazonS3Client.CopyObject métodos. Essa propriedade corresponde ao x-amz-tagging-directive parâmetro Amazon S3, conforme definido na CopyObjectação.
A diretiva de marcação não é mais definida automaticamente como COPY. Se um desenvolvedor não especificar uma diretiva de marcação, o back-end do S3 assumirá automaticamente que é COPY, mas se um desenvolvedor definir explicitamente a propriedade como nula, o valor não será definido de forma alguma.
A UseArnRegion propriedade para a configuração do S3
A UseArnRegion propriedade da classe Amazon.s3.amazons3Config foi atualizada para que a variável de AWS_S3_USE_ARN_REGION ambiente tenha precedência sobre a configuração no arquivo compartilhado. s3_use_arn_region AWS config Para obter mais informações sobre essas variáveis e configurações, consulte Referência de configurações no Guia AWS SDKs de referência de ferramentas.
Barras iniciais para os métodos CopyObject e CopyPart
As barras iniciais não serão mais cortadas para o Amazon CopyObject CopyPart S3 e os métodos. A DisableTrimmingLeadingSlash propriedade foi removida das CopyPartRequestclasses CopyObjectRequeste.
Os DoesS3BucketExist... métodos
O obsoleto DoesS3BucketExist e DoesS3BucketExistAsync os métodos foram removidos da classe AmazonS3Util, que implementa a interface AmazonS3. ICore Esses métodos foram removidos porque sempre usam HTTP. Em vez disso, use DoeSS3 BucketExist V2 e BucketExistDoesS3 V2Async.
O SDK sempre usa SigV4
A versão 4 do AWS SDK para .NET sempre usa a AWS Signature Version 4 (SigV4) para assinar solicitações. Essa alteração resulta nas seguintes alterações relacionadas:
-
A
UseSignatureVersion4propriedade da classe AWSConfigsS3 foi removida. -
A
SignatureVersionpropriedade do Amazon.Runtime. ClientConfiga classe foi removida. Essa propriedade foi usada somente pelo Amazon S3 para compatibilidade com versões anteriores. -
A
RegionEndpoint.Endpointclasse foi removida. Isso inclui aSignatureVersionOverridepropriedade, que foi usada para substituir as versões de assinatura do Amazon S3. Em vez disso, use oclient.DetermineServiceOperationEndPoint()método específico do serviço. -
Métodos atualizados Amazons3util. PostUploade S3PostUploadSignedPolicy. GetSignedPolicypara usar o SigV4. Como consequência, o
S3PostUploadSignedPolicy.GetSignedPolicyV4método foi removido porqueGetSignedPolicyagora executa a mesma função. Além disso,GetSignedPolicyfoi fornecido um terceiro parâmetro para o endpoint da região.
Os PutACL métodos GetACL e
Os PutACL métodos GetACL e da classe Amazons3Client foram marcados como obsoletos. Para acessar a funcionalidade desses métodos, use os seguintes novos métodos em vez disso: GetBucketACL PutBucketACLGetObjectACL,, PutObjectACL e.
Elementos de programação obsoletos removidos
Vários elementos de programação da implementação do Amazon S3 foram removidos da V4 do SDK, incluindo valores de enumeração, tipos, métodos, namespaces etc. Eles estão listados abaixo, se ainda não foram abordados anteriormente, junto com as possíveis etapas que você pode tomar para acomodar sua remoção.
-
A
DisableMD5Streampropriedade foi removida da TransferUtilityUploadRequestclasse. Use a propriedadeDisableDefaultChecksumValidation.Além disso, a
CalculateContentMD5Headerpropriedade foi removida daTransferUtilityUploadRequestclasse. Essa propriedade não é mais necessária porque o SDK calcula uma soma de verificação por padrão. -
As
ServerSideEncryptionKeyManagementServiceKeyIdpropriedadesServerSideEncryptionMethode foram removidas da CopyPartRequestclasse. Em vez disso, use as propriedades com os mesmos nomes na InitiateMultipartUploadRequestclasse, que são usadas em alguns dosInitiateMultipartUpload...métodos da classe AmazonS3Client. -
A
Expirespropriedade foi removida da GetObjectResponseclasse. Use a propriedadeExpiresString. A string pode não estar em um formato de carimbo de data/hora válido, então seu código deve usar oTryParsemétodo ao converter em a.DateTime -
Região da AWS Identificadores obsoletos foram removidos da enumeração S3Region.
-
A
Prefixpropriedade foi removida da LifecycleRuleclasse. Use a propriedadeFilter.Além disso, as
TransitionpropriedadesNoncurrentVersionTransitione foram removidas daLifecycleRuleclasse. Em vez dissoNoncurrentVersionTransitions, useTransitionsas coleções e. -
A
Eventpropriedade foi removida da TopicConfigurationclasse. Em vez disso, use aEventscoleção. -
CalculateContentMD5Propriedade do cabeçalho. Essa propriedade não precisa mais ser definida porque o SDK computará uma soma de verificação por padrão.
-
A
Bucketpropriedade foi removida da SelectObjectContentRequestclasse. Use a propriedadeBucketName. -
A
NumberOfUploadThreadspropriedade foi removida da TransferUtilityConfigclasse. Em vez disso, use aConcurrentServiceRequestspropriedade.
Elementos de programação que foram removidos
Vários elementos de programação foram removidos da V4 do SDK, incluindo valores de enumeração, tipos, métodos, namespaces etc. Eles estão listados abaixo, se ainda não foram abordados anteriormente, junto com as possíveis etapas que você pode tomar para acomodar sua remoção.
O namespace Amazon.Auth.AccessControlPolicy.ActionIdentifiers.
O Amazon.Auth.AccessControlPolicy.ActionIdentifiers namespace foi removido. Isso inclui identificadores de ação do IAM, que foram definidos na IdentityandAccessManagementActionIdentifiers classe. O código que usa esses identificadores de ação deve ser alterado para usar valores de string do nome da ação.
Para obter mais informações, consulte Criar políticas gerenciadas pelo IAM a partir do JSON a Visão geral das políticas de JSON no Guia do usuário do IAM.
A classe ClientConfig
O Amazon.Runtime. ClientConfigclass é a classe base das classes de configuração do cliente de serviço, como AmazonS3Config. Os seguintes elementos de programação foram removidos dessa classe.
-
Os
DetermineDnsSuffixmétodosDetermineServiceURLe foram removidos. Em vez disso, use oDetermineServiceOperationEndpointmétodo do cliente de serviço; por exemplo, AmazonS3Client. DetermineServiceOperationEndpoint. -
A
ReadEntireResponsepropriedade foi removida. Em vez disso, use uma das seguintes opções:-
A
LogResponsespropriedade do AWSConfigs. LoggingConfigclasse. -
A
LogResponsepropriedade da configuração do cliente; por exemplo, AmazonS3Config.
-
O namespace Amazon.Runtime.
O namespace Amazon.Runtime foi atualizado da seguinte forma:
-
A
ECSTaskCredentialsclasse obsoleta foi removida do namespace. Em vez disso, use o GenericContainerCredentialsprovedor, que também oferece suporte ao Amazon EKS Pod Identities. -
O obsoleto
StoredProfileAWSCredentialseStoredProfileCredentialsas classes foram removidos do namespace. Use o Net SDKCredentials File ou a SharedCredentialsFileclasse do Amazon.Runtime. CredentialManagementem vez disso, namespace. -
O
HasCachedAccessTokenAvailablemétodo obsoleto da SSOAWSCredentialsclasse foi removido do namespace. -
A
EnvironmentAWSCredentialsclasse obsoleta foi removida do namespace. No lugar, use a classe AppConfigAWSCredentials. -
A
StoredProfileFederatedCredentialsclasse obsoleta foi removida do namespace. Em vez disso, use a AWSCredentials classe Federated. -
As seguintes classes obsoletas foram removidas do namespace:
EnvironmentVariableAWSEndpointDiscoveryEnabledProfileAWSEndpointDiscoveryEnabled, e.FallbackEndpointDiscoveryEnabledFactory -
A
UseSigV4propriedade obsoleta foi removida da AmazonWebServiceRequestclasse. Use a propriedadeSignatureVersion. -
A
ProfileIniFileclasse noAmazon.Runtime.Internal.Utilnamespace tem um método sobrecarregado chamado.TryGetSectionAs versões do método que não oferecem suporte aooutparâmetro fornestedPropertiesforam removidas da classe. -
A
EventBridgeSignerclasse obsoleta noAmazon.Runtime.Internal.Authnamespace foi removida. -
A propriedade obsoleta do
Parametersdicionário foi removida da WebServiceRequestEventArgsclasse. Use a propriedadeParameteCollection.
BouncyCastle
A cópia de origem do BouncyCastle foi removida da V4 do SDK.
A classe StoredProfileSAMLCredentials
A StoredProfileSAMLCredentials classe obsoleta na Amazon. SecurityTokenO namespace.SAML foi removido. Em vez disso, use a AWSCredentials classe Federated no namespace Amazon.Runtime.
A classe AWSSDKUtils
Os métodos a seguir foram removidos da AWSSDKUtilsclasse: ResolveResourcePathProtectEncodedSlashUrlEncode, ConvertToUnixEpochMilliSeconds e.
A classe ProfileManager
A ProfileManager classe obsoleta foi removida do namespace Amazon.Util. Use o SDKCredentialsarquivo de rede ou a SharedCredentialsFileclasse do Amazon.Runtime. CredentialManagementem vez disso, namespace.
A classe AWSConfigs
As seguintes propriedades obsoletas foram removidas da AWSConfigsclasse: LoggingResponseLogging, LogMetrics e. Use a propriedade LoggingConfig.
A classe ConditionFactory
O método com a seguinte assinatura foi removido da ConditionFactoryclasse:NewCondition(ConditionFactory.DateComparisonType, DateTime). Em vez disso, use o NewConditionUtcmétodo.
CloudFront Utilitários da Amazon
O Amazon.CloudFront.Util namespace e a AmazonCloudFrontUtil classe obsoletos foram removidos.
AWS IoT
Na ListPrincipalThingsResponseclasse, uma personalização antiga para uma NextToken substituição foi removida em favor da paginação.
AWS Lambda
Os seguintes Invoke... métodos da AmazonLambdaClientclasse foram removidos porque os nomes eram confusos.
-
O método V3 com a seguinte assinatura foi removido:
InvokeAsyncResponse InvokeAsync(InvokeAsyncRequest). Esse é um método síncrono na V3 do SDK. Em vez disso, useInvokeResponse Invoke(InvokeRequest)(para processamento síncrono) ouTask InvokeAsync(InvokeRequest, CancellationToken)(para processamento assíncrono). -
O método V3 com a seguinte assinatura foi removido:
Task InvokeAsyncAsync(InvokeAsyncRequest, CancellationToken). Esse é um método assíncrono na V3 do SDK. UseTask InvokeAsync(InvokeRequest, CancellationToken)em vez disso.
Amazon SageMaker Runtime
Os construtores obsoletos da PayloadPartclasse foram removidos.