

La AWS SDK para .NET V3 ha entrado en modo de mantenimiento.

Le recomendamos que migre a la [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obtener información y detalles adicionales sobre cómo migrar, consulta nuestro [anuncio sobre el modo de mantenimiento](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de AWSSDK .Extensions. NETCore.Setup y la interfaz IConfiguration
<a name="net-dg-config-netcore"></a>

(Este tema se titulaba anteriormente «Configuración AWS SDK para .NET con .NET Core»)

Uno de los mayores cambios en .NET Core es la eliminación de `ConfigurationManager` y de los archivos `app.config` y `web.config` estándar que se usaban con aplicaciones de .NET Framework y ASP.NET.

La configuración en .NET Core se basa en pares clave-valor establecidos por proveedores de configuración. Los proveedores de configuración leen los datos de configuración en pares clave-valor desde diversos orígenes de configuración, incluidos argumentos de línea de comandos, archivos de directorio, variables de entorno y archivos de configuración.

**nota**  
Para obtener más información, consulte [Configuración en ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration).

Para facilitar su uso AWS SDK para .NET con.NET Core, puede utilizar las [AWSSDK.Extensions. NETCore.Paquete de configuración.](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) NuGet Al igual que muchas bibliotecas de.NET Core, añade métodos de extensión a la `IConfiguration` interfaz para facilitar la AWS configuración.

El código fuente de este paquete está GitHub en[https://github.com/aws/aws-sdk-net/tree/aws-sdk-net-v3.7/extensions/src/AWSSDK.Extensions.NETCore.Setup](https://github.com/aws/aws-sdk-net/tree/aws-sdk-net-v3.7/extensions/src/AWSSDK.Extensions.NETCore.Setup).

## Uso de AWSSDK .Extensions. NETCore.Configuración
<a name="net-core-configuration-builder"></a>

Suponga que crea una aplicación ASP.NET Core Model-View-Controller (MVC), que puede realizarse con la plantilla de **aplicación web ASP.NET Core** en Visual Studio o ejecutándola `dotnet new mvc ...` en la CLI de.NET Core. Al crear una aplicación de este tipo, el constructor de `Startup.cs` administra la configuración leyendo varios orígenes de entrada de proveedores de configuración, como `appsettings.json`.

```
public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}
```

Para usar el `Configuration` objeto para obtener las *AWS*opciones, primero agregue el paquete. `AWSSDK.Extensions.NETCore.Setup` NuGet Luego, agregue sus opciones al archivo de configuración como se describe a continuación.

Fíjese en que uno de los archivos agregados al proyecto es `appsettings.Development.json`. Corresponde a un `EnvironmentName` establecido en **Development**. Durante el desarrollo, pondremos la configuración en este archivo, que solo se lee durante las pruebas locales. Al implementar una instancia de Amazon EC2 `EnvironmentName` configurada en **Producción**, este archivo se ignora y se recurre a las credenciales AWS SDK para .NET de IAM y a la región configuradas para la instancia de Amazon EC2.

Los siguientes ajustes de configuración muestran ejemplos de los valores que se pueden agregar en el archivo `appsettings.Development.json` del proyecto para proporcionar la configuración de AWS .

```
{
  "AWS": {
    "Profile": "local-test-profile",
    "Region": "us-west-2"
  },
  "SupportEmail": "TechSupport@example.com"
}
```

Para obtener acceso a un ajuste en un archivo *CSHTML* utilice la directiva `Configuration`.

```
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1>Contact</h1>

<p>
    <strong>Support:</strong> <a href='mailto:@Configuration["SupportEmail"]'>@Configuration["SupportEmail"]</a><br />
</p>
```

Para acceder a las AWS opciones definidas en el archivo desde el código, llame al método de `GetAWSOptions` extensión agregado a. `IConfiguration`

Para crear un cliente de servicio a partir de estas opciones, llame a `CreateServiceClient`. En el siguiente ejemplo se muestra cómo crear un cliente de servicio de Amazon S3 (Asegúrese de añadir el [AWSSDKpaquete.S3](https://www.nuget.org/packages/AWSSDK.S3) NuGet a su proyecto).

```
var options = Configuration.GetAWSOptions();
IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();
```

También puede crear varios clientes de servicio con ajustes incompatibles utilizando varias entradas en el archivo `appsettings.Development.json`, tal y como se muestra en los siguientes ejemplos, donde la configuración de `service1` incluye la región `us-west-2` y la configuración de `service2` incluye la *URL* del punto de conexión especial.

```
{
  "service1": {
    "Profile": "default",
    "Region": "us-west-2"
  },
  "service2": {
    "Profile": "default",
    "ServiceURL": "URL"
  }
}
```

A continuación, puede obtener las opciones para un servicio específico mediante la entrada del archivo JSON. Por ejemplo, utilice lo siguiente para obtener la configuración de `service1`.

```
var options = Configuration.GetAWSOptions("service1");
```

### Valores permitidos en el archivo appsettings
<a name="net-core-appsettings-values"></a>

Los siguientes valores de configuración de la aplicación se pueden establecer en el archivo `appsettings.Development.json`. Los nombres de los campos deben escribirse con las mayúsculas y minúsculas mostradas aquí. Para obtener más información sobre esta configuración, consulte la clase `[AWS.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html)`.
+ Region
+ Profile
+ ProfilesLocation
+ SignatureVersion
+ RegionEndpoint
+ UseHttp
+ ServiceURL
+ AuthenticationRegion
+ AuthenticationServiceName
+ MaxErrorRetry
+ LogResponse
+ BufferSize
+ ProgressUpdateInterval
+ ResignRetries
+ AllowAutoRedirect
+ LogMetrics
+ DisableLogging
+ UseDualstackEndpoint

## Inserción de dependencias de ASP.NET Core
<a name="net-core-dependency-injection"></a>

Las *AWSSDK.Extensions. NETCore NuGet El paquete .Setup* también se integra con un nuevo sistema de inyección de dependencias en ASP.NET Core. El método `ConfigureServices` de la clase `Startup` de la aplicación es donde se agregan los servicios MVC. Si la aplicación usa Entity Framework, también es donde se inicializa.

```
public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();
}
```

**nota**  
Hay disponible información general sobre la inserción de dependencias en .NET Core en el [sitio de documentación de .NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection).

El `AWSSDK.Extensions.NETCore.Setup` NuGet paquete agrega nuevos métodos de extensión `IServiceCollection` que puede usar para agregar AWS servicios a la inyección de dependencias. El siguiente código muestra cómo añadir las AWS opciones de lectura `IConfiguration` para añadir Amazon S3 y DynamoDB a la lista de servicios. (Asegúrese de añadir los DBv2 NuGet paquetes [AWSSDK.S3 y [AWSSDK.Dynamo](https://www.nuget.org/packages/AWSSDK.DynamoDBv2)](https://www.nuget.org/packages/AWSSDK.S3) a su proyecto).

```
public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();

    services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
    services.AddAWSService<IAmazonS3>();
    services.AddAWSService<IAmazonDynamoDB>();
}
```

Ahora, si sus controladores MVC usan `IAmazonS3` o `IAmazonDynamoDB` como parámetros en sus constructores, el sistema de inserción de dependencias pasa esos servicios.

```
public class HomeController : Controller
{
    IAmazonS3 S3Client { get; set; }

    public HomeController(IAmazonS3 s3Client)
    {
        this.S3Client = s3Client;
    }

    ...

}
```