

A versão 4 (V4) do AWS SDK para .NET foi lançada\$1

Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o [tópico de migração](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)

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 name="net-dg-v4"></a>

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](https://github.com/aws/aws-sdk-net/issues/3362)
+ A postagem do blog [Prévia 1 da AWS SDK para .NET V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).
+ A postagem do blog [Preview 4 of AWS SDK para .NET V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/).
+ A postagem do blog [Disponibilidade geral da AWS SDK para .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>

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](net-dg-supported-platforms.md#net-dg-platform-diff-netfx45).

## Tipos de valor
<a name="net-dg-v4-value-types"></a>

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:
+ `bool`foi alterado para `bool?` 
+ `double`foi alterado para `double?` 
+ `int`foi alterado para `int?` 
+ `float`foi alterado para `float?` 
+ `long`foi alterado para `long?` 
+ `Datetime`foi alterado para `Datetime?`

Para obter informações adicionais sobre essa alteração, consulte a postagem do blog [Preview 1 of AWS SDK para .NET V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).

## Coleções
<a name="net-dg-v4-collections"></a>

As propriedades que usam coleções em classes usadas para fazer solicitações e respostas agora usam como padrão`null`. 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 como`Amazon.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](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>
+ **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-1` região por padrão ao ser executada na partição pública, independentemente da região configurada.
+ **O `StsRegionalEndpointsValue` enum**

  A `StsRegionalEndpointsValue` enumeração foi removida do namespace [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html). Qualquer código usando essa enumeração deve ser removido.
+ **A classe `STSAssumeRoleAWSCredentials`**

  [O fornecedor obsoleto de credenciais STS assume a função,`STSAssumeRoleAWSCredentials`, foi removido da Amazon. SecurityToken](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityToken.html)namespace. Em vez disso, use [AssumeRoleAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAssumeRoleAWSCredentials.html)do [Amazon.Runtime.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html)

## Mudanças relacionadas a `ClientConfig`
<a name="net-dg-v4-clientconfig"></a>

O [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)class é a classe base das classes de configuração do cliente de serviço, como [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html). As seguintes alterações foram feitas nessa classe base.
+  **Modo de repetição padrão** 

  O padrão `RetryMode` da propriedade é em `Standard` vez de. `Legacy` Como resultado, o `Legacy` valor foi removido do [Amazon.Runtime. RequestRetryMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TRequestRetryMode.html)enum.
+  **Modo de configuração padrão** 

  O padrão `DefaultConfigurationMode` da propriedade é em `Standard` vez de. `Legacy` Como resultado, o `Legacy` valor foi removido do [Amazon.Runtime. DefaultConfigurationMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TDefaultConfigurationMode.html)enum.
+  **A `ReadWriteTimeout` propriedade** 

  A `ReadWriteTimeout` propriedade obsoleta foi removida de todos os destinos, exceto o.NET Framework 4.7.2.

## As AWSSDK extensões. NETCore.Pacote de configuração NuGet
<a name="net-dg-v4-netcore-setup"></a>

As [AWSSDKextensões. NETCoreO NuGet pacote.Setup](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) foi atualizado para aliviar os problemas presentes na V3 do SDK, bem como para tornar o pacote seguro para o AOT nativo. Essas mudanças estão resumidas abaixo. Para obter informações detalhadas, consulte [PR 3353](https://github.com/aws/aws-sdk-net/pull/3353) no [aws-sdk-net](https://github.com/aws/aws-sdk-net)repositório em. GitHub
+ **A classe `DefaultClientConfig`**

  A `DefaultClientConfig` classe não é mais herdada da classe base de configuração do cliente de serviço [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html). As propriedades relevantes de `ClientConfig` foram replicadas `DefaultClientConfig` usando tipos de valores anuláveis. Essa alteração nos permite detectar quando um valor foi definido `DefaultClientConfig` ao 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.HttpClientFactory` está mais disponível na V4. Use `AWSConfigs.HttpClientFactory` em vez disso. Para obter informações adicionais, consulte a [GitHub edição 3790](https://github.com/aws/aws-sdk-net/issues/3790).

  Outro resultado dessa mudança é que as sobrecargas genéricas do método de `IConfiguration.GetAWSOptions` extensã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](https://github.com/aws/aws-sdk-net/issues/3866).
+ **AOT nativo**

  Um novo mecanismo para criar clientes de serviço que usam métodos de interface estática do C\$1 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, consulte[AWSSDK.Extensões. NETCore.Configuração e IConfiguration](net-dg-config-netcore.md). O código-fonte desse pacote está GitHub em[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` e `UrlSigner`
<a name="net-dg-v4-CookieSigner-UrlSigner"></a>

As `UrlSigner` extensões `CookieSigner` e da Amazon CloudFront foram movidas para um pacote de extensão separado chamado [AWSSDK.Extensions. CloudFront.Signatários](https://www.nuget.org/packages/AWSSDK.Extensions.CloudFront.Signers). [Essa alteração é para oferecer suporte ao OpenSSL 3 e depender do .Cryptography. BouncyCastle](https://www.nuget.org/packages/BouncyCastle.Cryptography)

O código-fonte desse pacote está GitHub em[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>

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](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TDescribeSpotPriceHistoryRequest.html):
  + A `StartTime` propriedade obsoleta foi removida e o nome da `StartTimeUtc` propriedade foi alterado para "StartTime”.
  + A `EndTime` propriedade obsoleta foi removida e o nome da `EndTimeUtc` propriedade foi alterado para "EndTime”.
+  [CreateFleetRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TCreateFleetRequest.html) 
  + A `ValidFrom` propriedade obsoleta foi removida e o nome da `ValidFromUtc` propriedade foi alterado para "ValidFrom”.
  + A `ValidUntil` propriedade obsoleta foi removida e o nome da `ValidUntilUtc` propriedade 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 name="net-dg-v4-datetime-parsing"></a>

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`
<a name="net-dg-v4-ConvertFromUnixEpoch"></a>

Os [ConvertFromUnixEpochMilliseconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochMillisecondsInt64.html)métodos [ConvertFromUnixEpochSeconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochSecondsInt32.html)e, 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 name="net-dg-v4-logging"></a>

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 [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)classe como ou`LoggingOptions.Console`. `LoggingOptions.SystemDiagnostics` A [LoggingOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)opçã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.Logging](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.Log4NetAdaptor). `log4net` AWSSDK ILoggerPacote de adaptador](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.ILoggerAdaptor/#readme-body-tab) para`Microsoft.Extensions.Logging`. Os exemplos de código a seguir mostram como configurar o registro em log nesses dois casos.

### Exemplo de configuração para log4net
<a name="w2aac25c11c27b7b1"></a>

Adicione o `AWSSDK.Extensions.Logging.Log4NetAdaptor` NuGet pacote e chame o `ConfigureAWSSDKLogging` método estático de`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));
```

### Exemplo de configuração para Microsoft.Extensions.Logging
<a name="w2aac25c11c27b7b3"></a>

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
<a name="net-dg-v4-http2"></a>

O suporte para HTTP 2 foi adicionado para permitir o streaming bidirecional. Para obter mais informações, consulte [Support para HTTP 2](http2-support.md).

## Autenticação única
<a name="net-dg-v4-sso"></a>

O valor padrão da `SupportsGettingNewToken` propriedade da classe [SSOAWSCredentialsOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentialsOptions.html) foi alterado de `true` para`false`. Se você tiver aplicativos que usam a [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)classe 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](sso-tutorial-app-only.md#sso-tutorial-app-only-code) em[Tutorial para SSO usando somente aplicativos .NET](sso-tutorial-app-only.md). Para obter informações adicionais, consulte [PR 3737](https://github.com/aws/aws-sdk-net/pull/3737) no [aws-sdk-net](https://github.com/aws/aws-sdk-net) GitHub repositório.

## Alterações específicas do DynamoDB
<a name="net-dg-v4-ddb-specific"></a>

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](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/) do blog Preview 4 of V4. AWS SDK para .NET 

### Abrir para ver itens
<a name="w2aac25c11c35b7b1"></a>

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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKMidLevel.html), nomeado [DocumentModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DocumentModel.html)no código.
+ O [modelo de persistência de objetos.NET](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKHighLevel.html), nomeado [DataModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DataModel.html)no código. 

Para obter informações detalhadas sobre esses modos de programação, consulte [DynamoDB](dynamodb-intro.md) este guia.

#### Modelo de documento: exceção atualizada para interface simulada `IAmazonDynamoDB`
<a name="w2aac25c11c35b7b1b9"></a>

[No modelo de documento anterior à V4 do SDK, se uma [tabela fosse inicializada com uma interface](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TTable.html) simulada do DynamoDBIAmazon, ela retornaria.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDB.html) `NullReferenceException` Em vez disso, a V4 do SDK retorna`InvalidOperationException`. `Table`Os 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](https://github.com/aws/aws-sdk-net/pull/3388) em. GitHub

#### Modelo de documento: `FromJson` e `ToJson` métodos
<a name="w2aac25c11c35b7b1c11"></a>

Os `ToJson` métodos `FromJson` e da classe [Document](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDocument.html) 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`
<a name="w2aac25c11c35b7b1c13"></a>

No modelo de persistência de objetos, as seguintes alterações foram feitas na classe compartilhada do [Dynamo Config: DBOperation](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBOperationConfig.html)
+ A classe foi separada em novas classes específicas da operação [SaveConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TSaveConfig.html), como, e. [LoadConfig[QueryConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TQueryConfig.html)](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TLoadConfig.html) Os métodos usados `DynamoDBOperationConfig` foram marcados como obsoletos e estão sujeitos a remoção no futuro.

  Para obter mais informações sobre essa alteração, consulte [PR 3421](https://github.com/aws/aws-sdk-net/pull/3421) em GitHub.
+ As `DisableFetchingTableMetadata` propriedades `MetadataCachingMode` e 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 na `Context` propriedade global da classe [AWSConfigsDynamoDB ou na classe Dynamo](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html) Config. DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html)

  Para obter mais informações sobre essa alteração, consulte [PR 3422](https://github.com/aws/aws-sdk-net/pull/3422) em GitHub.
+ A classe não é mais herdada da classe do [Dynamo Config DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html). Isso impede que você passe um `DynamoDBOperationConfig` objeto para o construtor do [Dynamo DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContext.html), onde algumas propriedades na configuração específica da operação (como) não se aplicam. `OverrideTableName`

  Para obter mais informações sobre essa alteração, consulte [PR 3422](https://github.com/aws/aws-sdk-net/pull/3422) em GitHub.

#### Modelo de persistência de objetos: polimorfismo
<a name="w2aac25c11c35b7b1c15"></a>

A DBPolymorphic TypeAttribute classe [Dynamo](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBPolymorphicTypeAttribute.html) 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](https://github.com/aws/aws-sdk-net/pull/3643) em. GitHub

#### Modelo de documento e modelo de persistência de objetos: operações simuláveis
<a name="w2aac25c11c35b7b1c17"></a>

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 [IDynamoDBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDBContext.html)interface foram atualizados para retornar as novas interfaces.

Para obter mais informações sobre essa alteração, consulte [PR 3450](https://github.com/aws/aws-sdk-net/pull/3450) on GitHub.
+ Modelo de persistência de objeto
  + `BatchGet`Operações simuladas por meio das `IMultiTableBatchGet` interfaces `IBatchGet` e.
  + `BatchWrite`Operações simuladas por meio das `IMultiTableBatchWrite` interfaces `IBatchWrite` e.
  + `TransactGet`Operações simuladas por meio das `IMultiTableTransactGet` interfaces `ITransactGet` e.
  + `TransactWrite`Operações simuladas por meio das `IMultiTableTransactWrite` interfaces `ITransactWrite` e.
  + Simulação `Scan` e `Query` operações por meio da `IAsyncSearch` interface.
+ Modelo de documento
  + `Table`Operações simuladas por meio da `ITable` interface.
  + Simulação `Scan` e `Query` operações por meio da `ISearch` interface.
  + `TransactWrite`Operações simuladas por meio das `IMultiTableDocumentTransactWrite` interfaces `IDocumentTransactWrite` e.
  + `TransactGet`Operações simuladas por meio das `IMultiTableDocumentTransactGet` interfaces `IDocumentTransactGet` e.
  + `BatchWrite`Operações simuladas por meio das `IMultiTableDocumentBatchWrite` interfaces `IDocumentBatchWrite` e.
  + `BatchGet`Operações simuladas por meio das `IMultiTableDocumentBatchGet` interfaces `IDocumentBatchGet` e.

#### Modelo de documento e modelo de persistência de objetos: Support for native AOT
<a name="w2aac25c11c35b7b1c19"></a>

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
<a name="w2aac25c11c35b7b1c21"></a>

[O Dynamo DBStreams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) foi removido do pacote [AWSSDK.DynamoDB](https://www.nuget.org/packages/AWSSDK.DynamoDBv2) e está disponível em seu próprio NuGet pacote, [AWSSDK.Dynamo, e tem seu próprio DBStreams namespace](https://www.nuget.org/packages/AWSSDK.DynamoDBStreams),. `Amazon.DynamoDBStreams`

#### Permitir a remoção do `TableNamePrefix` valor
<a name="w2aac25c11c35b7b1c23"></a>

Agora você pode remover o valor da `TableNamePrefix` propriedade na classe [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html) no nível de operação individual. Para obter mais informações sobre essa alteração, consulte [PR 3476](https://github.com/aws/aws-sdk-net/pull/3476) em GitHub.

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

Para a classe [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html), o valor padrão `RetrieveDateTimeInUtc` da propriedade foi alterado para. `true`

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

A `DynamoDBContextTableNamePrefix` propriedade foi removida da classe [AWSConfigsDynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html). Os usuários devem ligar `AWSConfigsDynamoDB.Context.TableNamePrefix` em vez de 

## Alterações específicas do EC2
<a name="net-dg-v4-ec2-specific"></a>

As seguintes alterações são específicas do Amazon EC2. A maioria ou todas elas são mudanças significativas.

### Abrir para ver itens
<a name="w2aac25c11c39b5b1"></a>

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

[A `GetDecryptedPassword` extensão do Amazon EC2 foi movida para um pacote de extensão separado chamado AWSSDK .extensions.EC2. DecryptPassword](https://www.nuget.org/packages/AWSSDK.Extensions.EC2.DecryptPassword). [Essa alteração é para oferecer suporte ao OpenSSL 3 e depender do .Cryptography. BouncyCastle](https://www.nuget.org/packages/BouncyCastle.Cryptography)

O código-fonte desse pacote está GitHub em[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).

#### Support para Amazon EC2 IMDSv1
<a name="w2aac25c11c39b5b1b5"></a>

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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) do usuário do [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/).

#### Elementos de programação que foram alterados ou removidos
<a name="w2aac25c11c39b5b1b7"></a>
+ Todo o `Amazon.EC2.Import` namespace e o código foram removidos.
+ Todo o `Amazon.EC2.Util` namespace e o código foram removidos, o que inclui os utilitários da AMI usados para pesquisar o AMIs EC2 para Windows.
+ A `IpRanges` propriedade obsoleta foi removida da [IpPermission](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TIpPermission.html)classe. Em vez disso, use `Ipv6Ranges` as propriedades `Ipv4Ranges` ou.
+ Os seguintes campos obsoletos foram removidos da [EC2InstanceMetadata](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TEC2InstanceMetadata.html)classe: `EC2_METADATA_SVC``EC2_METADATA_ROOT`, `EC2_USERDATA_ROOT``EC2_DYNAMICDATA_ROOT`,, `EC2_APITOKEN_URL` e.

## Alterações específicas do S3
<a name="net-dg-v4-s3-specific"></a>

As seguintes alterações são específicas do Amazon S3. A maioria ou todas elas são mudanças significativas.

### Abrir para ver itens
<a name="w2aac25c11c43b5b1"></a>

#### Região da AWS us-east-1
<a name="w2aac25c11c43b5b1b3"></a>

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](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/).

#### Cliente de criptografia S3
<a name="w2aac25c11c43b5b1b5"></a>

[O cliente de criptografia Amazon S3, definido no `Amazon.S3.Encryption` namespace, foi removido do pacote.S3. AWSSDK](https://www.nuget.org/packages/AWSSDK.S3) Esse cliente foi movido para seu próprio pacote chamado [Amazon.Extensions.S3.Encryption](https://www.nuget.org/packages/Amazon.Extensions.S3.Encryption), e a documentação para ele está em. [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) Para obter informações sobre migração, consulte [Migração do cliente de criptografia S3 (V1 para V2)](s3-encryption-migration-v1-v2.md). Para obter mais informações sobre a criptografia S3, consulte [Algoritmos de criptografia compatíveis no Guia](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/encryption-algorithms.html) do desenvolvedor do [Amazon S3 Encryption Client](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide).

#### Diretiva de marcação S3 para `CopyObject`
<a name="w2aac25c11c43b5b1b7"></a>

A `TaggingDirective` propriedade foi exposta como uma propriedade pública da [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html)classe, que é usada por `AmazonS3Client.CopyObject` métodos. Essa propriedade corresponde ao `x-amz-tagging-directive` parâmetro Amazon S3, conforme definido na [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)açã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 name="w2aac25c11c43b5b1b9"></a>

A `UseArnRegion` propriedade da classe [Amazon.s3.amazons3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) 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](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html) no [Guia AWS SDKs de referência de ferramentas](https://docs.aws.amazon.com/sdkref/latest/guide/).

#### Barras iniciais para os métodos `CopyObject` e `CopyPart`
<a name="w2aac25c11c43b5b1c11"></a>

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 [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html)classes [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html)e.

#### Os `DoesS3BucketExist...` métodos
<a name="w2aac25c11c43b5b1c13"></a>

[O obsoleto `DoesS3BucketExist` e `DoesS3BucketExistAsync` os métodos foram removidos da classe [AmazonS3Util](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Util.html), que implementa a interface AmazonS3. ICore](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TICoreS3.html) Esses métodos foram removidos porque sempre usam HTTP. Em vez disso, use [DoeSS3 BucketExist V2](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2IS3String.html) e [BucketExistDoesS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2AsyncIS3String.html) V2Async.

#### O SDK sempre usa SigV4
<a name="w2aac25c11c43b5b1c15"></a>

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 `UseSignatureVersion4` propriedade da classe [AWSConfigsS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsS3.html) foi removida.
+ A `SignatureVersion` propriedade do [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)a classe foi removida. Essa propriedade foi usada somente pelo Amazon S3 para compatibilidade com versões anteriores.
+ A `RegionEndpoint.Endpoint` classe foi removida. Isso inclui a `SignatureVersionOverride` propriedade, que foi usada para substituir as versões de assinatura do Amazon S3. Em vez disso, use o `client.DetermineServiceOperationEndPoint()` método específico do serviço.
+ Métodos atualizados [Amazons3util. PostUpload](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilPostUploadS3PostUploadRequest.html)e [S3PostUploadSignedPolicy. GetSignedPolicy](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3PostUploadSignedPolicyGetSignedPolicyStringAWSCredentialsString.html)para usar o SigV4. Como consequência, o `S3PostUploadSignedPolicy.GetSignedPolicyV4` método foi removido porque `GetSignedPolicy` agora executa a mesma função. Além disso, `GetSignedPolicy` foi fornecido um terceiro parâmetro para o endpoint da região.

#### Os `PutACL` métodos `GetACL` e
<a name="w2aac25c11c43b5b1c17"></a>

Os `PutACL` métodos `GetACL` e da classe [Amazons3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html) foram marcados como obsoletos. Para acessar a funcionalidade desses métodos, use os seguintes novos métodos em vez disso: `GetBucketACL` `PutBucketACL``GetObjectACL`,, `PutObjectACL` e.

#### Elementos de programação obsoletos removidos
<a name="w2aac25c11c43b5b1c19"></a>

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 `DisableMD5Stream` propriedade foi removida da [TransferUtilityUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityUploadRequest.html)classe. Use a propriedade `DisableDefaultChecksumValidation`.

  Além disso, a `CalculateContentMD5Header` propriedade foi removida da `TransferUtilityUploadRequest` classe. Essa propriedade não é mais necessária porque o SDK calcula uma soma de verificação por padrão.
+ As `ServerSideEncryptionKeyManagementServiceKeyId` propriedades `ServerSideEncryptionMethod` e foram removidas da [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html)classe. Em vez disso, use as propriedades com os mesmos nomes na [InitiateMultipartUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TInitiateMultipartUploadRequest.html)classe, que são usadas em alguns dos `InitiateMultipartUpload...` métodos da classe [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html).
+ A `Expires` propriedade foi removida da [GetObjectResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TGetObjectResponse.html)classe. Use a propriedade `ExpiresString`. A string pode não estar em um formato de carimbo de data/hora válido, então seu código deve usar o `TryParse` método ao converter em a. `DateTime`
+  Região da AWS Identificadores obsoletos foram removidos da enumeração [S3Region](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Region.html).
+ A `Prefix` propriedade foi removida da [LifecycleRule](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TLifecycleRule.html)classe. Use a propriedade `Filter`.

  Além disso, as `Transition` propriedades `NoncurrentVersionTransition` e foram removidas da `LifecycleRule` classe. Em vez disso`NoncurrentVersionTransitions`, use `Transitions` as coleções e.
+ A `Event` propriedade foi removida da [TopicConfiguration](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTopicConfiguration.html)classe. Em vez disso, use a `Events` coleçã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 `Bucket` propriedade foi removida da [SelectObjectContentRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TSelectObjectContentRequest.html)classe. Use a propriedade `BucketName`.
+ A `NumberOfUploadThreads` propriedade foi removida da [TransferUtilityConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityConfig.html)classe. Em vez disso, use a `ConcurrentServiceRequests` propriedade.

## Elementos de programação que foram removidos
<a name="net-dg-v4-removed"></a>

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.

### Abrir para ver itens
<a name="w2aac25c11c47b5b1"></a>

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

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](iam-policies-create-json.md) a [Visão geral das políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no [Guia do usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

#### A classe `ClientConfig`
<a name="w2aac25c11c47b5b1b7"></a>

O [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)class é a classe base das classes de configuração do cliente de serviço, como [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html). Os seguintes elementos de programação foram removidos dessa classe.
+ Os `DetermineDnsSuffix` métodos `DetermineServiceURL` e foram removidos. Em vez disso, use o `DetermineServiceOperationEndpoint` método do cliente de serviço; por exemplo, [AmazonS3Client. DetermineServiceOperationEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3DetermineServiceOperationEndpointWebServiceRequest.html).
+ A `ReadEntireResponse` propriedade foi removida. Em vez disso, use uma das seguintes opções:
  + A `LogResponses` propriedade do [AWSConfigs. LoggingConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TLoggingConfig.html)classe.
  + A `LogResponse` propriedade da configuração do cliente; por exemplo, [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html).

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

O namespace [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) foi atualizado da seguinte forma:
+ A `ECSTaskCredentials` classe obsoleta foi removida do namespace. Em vez disso, use o [GenericContainerCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TGenericContainerCredentials.html)provedor, que também oferece suporte ao [Amazon EKS Pod Identities.](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ O obsoleto `StoredProfileAWSCredentials` e `StoredProfileCredentials` as classes foram removidos do namespace. Use o [Net SDKCredentials File](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) ou a [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)classe do [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)em vez disso, namespace.
+ O `HasCachedAccessTokenAvailable` método obsoleto da [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)classe foi removido do namespace.
+ A `EnvironmentAWSCredentials` classe obsoleta foi removida do namespace. No lugar, use a classe [AppConfigAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAppConfigAWSCredentials.html).
+ A `StoredProfileFederatedCredentials` classe obsoleta foi removida do namespace. Em vez disso, use a AWSCredentials classe [Federated](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html).
+ As seguintes classes obsoletas foram removidas do namespace: `EnvironmentVariableAWSEndpointDiscoveryEnabled``ProfileAWSEndpointDiscoveryEnabled`, e. `FallbackEndpointDiscoveryEnabledFactory`
+ A `UseSigV4` propriedade obsoleta foi removida da [AmazonWebServiceRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequest.html)classe. Use a propriedade `SignatureVersion`.
+ A `ProfileIniFile` classe no `Amazon.Runtime.Internal.Util` namespace tem um método sobrecarregado chamado. `TryGetSection` As versões do método que não suportam o `out` parâmetro for `nestedProperties` foram removidas da classe.
+ A `EventBridgeSigner` classe obsoleta no `Amazon.Runtime.Internal.Auth` namespace foi removida.
+ A propriedade obsoleta do `Parameters` dicionário foi removida da [WebServiceRequestEventArgs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequestEventArgs.html)classe. Use a propriedade `ParameteCollection`.

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

A cópia de origem do BouncyCastle foi removida da V4 do SDK.

#### A classe `StoredProfileSAMLCredentials`
<a name="w2aac25c11c47b5b1c15"></a>

A `StoredProfileSAMLCredentials` classe obsoleta na [Amazon. SecurityTokenO namespace.SAML](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityTokenSAML.html) foi removido. Em vez disso, use a AWSCredentials classe [Federated](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html) no [namespace Amazon.Runtime.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html)

#### A classe `AWSSDKUtils`
<a name="w2aac25c11c47b5b1c17"></a>

Os métodos a seguir foram removidos da [AWSSDKUtils](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TAWSSDKUtils.html)classe: `ResolveResourcePath``ProtectEncodedSlashUrlEncode`, `ConvertToUnixEpochMilliSeconds` e.

#### A classe `ProfileManager`
<a name="w2aac25c11c47b5b1c19"></a>

A `ProfileManager` classe obsoleta foi removida do namespace [Amazon.Util](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/NUtil.html). Use o [SDKCredentialsarquivo de rede](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) ou a [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)classe do [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)em vez disso, namespace.

#### A classe `AWSConfigs`
<a name="w2aac25c11c47b5b1c21"></a>

As seguintes propriedades obsoletas foram removidas da [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)classe: `Logging``ResponseLogging`, `LogMetrics` e. Use a propriedade `LoggingConfig`.

#### A classe `ConditionFactory`
<a name="w2aac25c11c47b5b1c23"></a>

O método com a seguinte assinatura foi removido da [ConditionFactory](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/TConditionFactory.html)classe:`NewCondition(ConditionFactory.DateComparisonType, DateTime)`. Em vez disso, use o [NewConditionUtc](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/MConditionFactoryNewConditionUtcConditionFactoryDateComparisonTypeDateTime.html)método.

#### CloudFront Utilitários da Amazon
<a name="w2aac25c11c47b5b1c25"></a>

O `Amazon.CloudFront.Util` namespace e a `AmazonCloudFrontUtil` classe obsoletos foram removidos.

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

Na [ListPrincipalThingsResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/IoT/TListPrincipalThingsResponse.html)classe, uma personalização antiga para uma `NextToken` substituição foi removida em favor da paginação.

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

Os seguintes `Invoke...` métodos da [AmazonLambdaClient](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Lambda/TLambdaClient.html)classe 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, use `InvokeResponse Invoke(InvokeRequest)` (para processamento síncrono) ou `Task 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. Use `Task InvokeAsync(InvokeRequest, CancellationToken)` em vez disso.

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

Os construtores obsoletos da [PayloadPart](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SageMakerRuntime/TPayloadPart.html)classe foram removidos.