

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.

# Configuración avanzada para su proyecto de AWS SDK para .NET
<a name="net-dg-advanced-config"></a>

Los temas de esta sección contienen información sobre más tareas y métodos de configuración que podrían interesarle.

**Topics**
+ [AWSSDK.Extensiones. NETCore.Configuración y IConfiguration](net-dg-config-netcore.md)
+ [Configuración de otros parámetros de la aplicación](net-dg-config-other.md)
+ [Referencia de los archivos de configuración para el AWS SDK para .NET](net-dg-config-ref.md)

# 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;
    }

    ...

}
```

# Configuración de otros parámetros de la aplicación
<a name="net-dg-config-other"></a>

**nota**  
La información de este tema es específica de proyectos basados en .NET Framework. Los archivos `App.config` y `Web.config` no están presentes de forma predeterminada en proyectos basados en .NET Core.

## Abrir para ver el contenido de .NET Framework
<a name="w2aab9c31b9b5b1"></a>

Hay varios parámetros de la aplicación que se pueden configurar:
+  `AWSLogging` 
+  `AWSLogMetrics` 
+  `AWSRegion` 
+  `AWSResponseLogging` 
+  `AWS.DynamoDBContext.TableNamePrefix` 
+  `AWS.S3.UseSignatureVersion4` 
+  `AWSEndpointDefinition` 
+  [AWS Terminales generados por el servicio](#config-setting-service-generated-awsendpointdefinition) 

Estos parámetros se pueden configurar en el archivo `App.config` o `Web.config` de la aplicación. Aunque también puedes configurarlos con la AWS SDK para .NET API, te recomendamos que utilices el archivo de la aplicación. `.config` Aquí se describen ambos enfoques.

Para obtener más información sobre cómo usar el elemento `<aws>` tal como se describe más adelante en este tema, consulte [Referencia de archivos de configuración de AWS SDK para .NET](net-dg-config-ref.md).

### AWSLogging
<a name="config-setting-awslogging"></a>

Configura la manera en que el SDK debe registrar los eventos, si es que debe hacerlo. Por ejemplo, el enfoque recomendado es utilizar el elemento `<logging>`, que es un elemento secundario del elemento `<aws>`:

```
<aws>
  <logging logTo="Log4Net"/>
</aws>
```

Otra opción:

```
<add key="AWSLogging" value="log4net"/>
```

Los valores posibles son:

** `None` **  
Desactivación del registro de eventos. Este es el valor predeterminado.

** `log4net` **  
Registro mediante log4net.

** `SystemDiagnostics` **  
Registro mediante la clase `System.Diagnostics`.

Puede definir diferentes valores para el atributo `logTo`, separado por comas. El siguiente ejemplo define los registros `log4net` y `System.Diagnostics` en el archivo `.config`:

```
<logging logTo="Log4Net, SystemDiagnostics"/>
```

Otra opción:

```
<add key="AWSLogging" value="log4net, SystemDiagnostics"/>
```

Como alternativa, mediante la AWS SDK para .NET API, combine los valores de la [LoggingOptions](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TLoggingOptions.html)enumeración y establezca la propiedad [AWSConfigs.Logging](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html):

```
AWSConfigs.Logging = LoggingOptions.Log4Net | LoggingOptions.SystemDiagnostics;
```

Los cambios en esta configuración solo se aplican a las instancias de AWS cliente nuevas.

### AWSLogMétricas
<a name="config-setting-awslogmetrics"></a>

Especifica si el SDK debería o no registrar métricas de desempeño. Para definir la configuración de registro de las métricas en el archivo `.config`, defina el valor del atributo `logMetrics` en el elemento `<logging>`, que es un elemento secundario del elemento `<aws>`:

```
<aws>
  <logging logMetrics="true"/>
</aws>
```

De forma alternativa, defina la clave `AWSLogMetrics` en la sección `<appSettings>`:

```
<add key="AWSLogMetrics" value="true">
```

Como alternativa, para configurar el registro de métricas con la AWS SDK para .NET API, configure [AWSConfigs. LogMetrics](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html)propiedad:

```
AWSConfigs.LogMetrics = true;
```

Esta opción configura la propiedad `LogMetrics` de forma predeterminada para todos los clientes y configuraciones. Los cambios en esta configuración solo se aplican a las instancias de AWS clientes nuevas.

### AWSRegion
<a name="config-setting-awsregion"></a>

Configura la AWS región predeterminada para los clientes que no han especificado una región de forma explícita. Para definir la región en el archivo `.config`, le recomendamos especificar el valor del atributo `region` en el elemento `aws`:

```
<aws region="us-west-2"/>
```

De forma alternativa, defina la clave *AWSRegion* en la sección `<appSettings>`:

```
<add key="AWSRegion" value="us-west-2"/>
```

[Como alternativa, para configurar la región con la AWS SDK para .NET API, defina. AWSConfigs AWSRegion](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html)propiedad:

```
AWSConfigs.AWSRegion = "us-west-2";
```

Para obtener más información sobre la creación de un AWS cliente para una región específica, consulte [Selección de AWS regiones](net-dg-region-selection.md). Los cambios en esta configuración solo se aplican a las instancias de AWS clientes nuevas.

### AWSResponseRegistro
<a name="config-setting-awsresponselogging"></a>

Se configura cuando el SDK debería registrar respuestas del servicio. Los valores posibles son:

** `Never` **  
No registrar nunca respuestas del servicio. Es el valor predeterminado.

** `Always` **  
Registrar siempre respuestas del servicio.

** `OnError` **  
Registrar solo respuestas del servicio cuando se produzcan errores.

Para definir la configuración del registro de servicios en el archivo `.config`, le recomendamos que defina el valor del atributo `logResponses` en el elemento `<logging>`, que es un elemento secundario del elemento `<aws>`:

```
<aws>
  <logging logResponses="OnError"/>
</aws>
```

También puede configurar la clave de *AWSResponseregistro* en la `<appSettings>` sección:

```
<add key="AWSResponseLogging" value="OnError"/>
```

Como alternativa, para configurar el registro del servicio con la AWS SDK para .NET API, configure [AWSConfigs. ResponseLogging](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html)propiedad en uno de los valores de la [ResponseLoggingOption](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TResponseLoggingOption.html)enumeración:

```
AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;
```

Los cambios en esta configuración surtirán efecto de inmediato.

### `AWS.DynamoDBContext.TableNamePrefix`
<a name="config-setting-aws-dynamodbcontext-tablenameprefix"></a>

Configura el `TableNamePrefix` predeterminado. Se utilizará `DynamoDBContext` si no se ha configurado manualmente.

Para definir el prefijo del nombre de tabla en el archivo `.config`, le recomendamos definir el valor del atributo `tableNamePrefix` en el elemento `<dynamoDBContext>`, que es un elemento secundario del elemento `<dynamoDB>`, que a su vez es un elemento secundario del elemento `<aws>`:

```
<dynamoDBContext tableNamePrefix="Test-"/>
```

De forma alternativa, defina la clave `AWS.DynamoDBContext.TableNamePrefix` en la sección `<appSettings>`:

```
<add key="AWS.DynamoDBContext.TableNamePrefix" value="Test-"/>
```

Como alternativa, para establecer el prefijo del nombre de la tabla con la AWS SDK para .NET API, establezca la propiedad [AWSConfigsDBContextTableNamePrefix.Dynamo](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html):

```
AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";
```

Los cambios en esta configuración solo serán efectivos en las instancias `DynamoDBContextConfig` y `DynamoDBContext` creadas recientemente.

### `AWS.S3.UseSignatureVersion4`
<a name="config-setting-aws-s3-usesignatureversion4"></a>

Configura si el cliente de Amazon S3 debería utilizar o no la versión 4 de Signature con solicitudes.

Para establecer la versión 4 de Signature para Amazon S3 en el archivo `.config`, el método recomendado es establecer el valor del atributo `useSignatureVersion4` del elemento `<s3>`, que es un elemento secundario del elemento `<aws>`:

```
<aws>
  <s3 useSignatureVersion4="true"/>
</aws>
```

De forma alternativa, establezca la clave `AWS.S3.UseSignatureVersion4` en `true` en la sección `<appSettings>`:

```
<add key="AWS.S3.UseSignatureVersion4" value="true"/>
```

Como alternativa, para configurar la firma en la versión 4 de la firma con la AWS SDK para .NET API, establezca la [AWSConfigspropiedad.S3 UseSignatureVersion](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 4 en: `true`

```
AWSConfigs.S3UseSignatureVersion4 = true;
```

De forma predeterminada, esta configuración es `false`, pero la versión 4 de Signature puede utilizarse de forma predeterminada en algunos casos o en algunas regiones. Si la configuración es `true`, se utilizará la versión 4 de Signature para todas las solicitudes. Los cambios en esta configuración solo surten efecto en las instancias de cliente de Amazon S3 nuevas.

### AWSEndpointDefinición
<a name="config-setting-awsendpointdefinition"></a>

Configura si el SDK debería utilizar un archivo de configuración personalizado que define las regiones y los puntos de enlace.

Para definir el archivo de definición del punto de enlace en el archivo `.config`, le recomendamos configurar el valor del atributo `endpointDefinition` en el elemento `<aws>`.

```
<aws endpointDefinition="c:\config\endpoints.json"/>
```

Como alternativa, puede configurar la clave de *AWSEndpointdefinición* en la `<appSettings>` sección:

```
<add key="AWSEndpointDefinition" value="c:\config\endpoints.json"/>
```

Como alternativa, para configurar el archivo de definición del punto final con la AWS SDK para .NET API, configure el [AWSConfigs. EndpointDefinition](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html)propiedad:

```
AWSConfigs.EndpointDefinition = @"c:\config\endpoints.json";
```

Si no se proporciona ningún nombre de archivo, no se utilizará el archivo de configuración personalizado. Los cambios en esta configuración solo se aplican a las instancias de AWS clientes nuevas. El archivo endpoint.json está disponible en [https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/endpoints.json](https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/endpoints.json).

### AWS Puntos finales generados por el servicio
<a name="config-setting-service-generated-awsendpointdefinition"></a>

Algunos AWS servicios generan sus propios puntos de enlace en lugar de consumir un punto final regional. Los clientes de estos servicios consumen una URL de servicio específica de dicho servicio y sus recursos. Dos ejemplos de estos servicios son Amazon CloudSearch y AWS IoT. Los siguientes ejemplos muestran cómo puede obtener los puntos de enlace para dichos servicios.

#### Ejemplo de Amazon CloudSearch Endpoints
<a name="cs-endpoints-example"></a>

El CloudSearch cliente de Amazon se utiliza para acceder al servicio de CloudSearch configuración de Amazon. Utiliza el servicio de CloudSearch configuración de Amazon para crear, configurar y gestionar los dominios de búsqueda. Para crear un dominio de búsqueda, cree un [CreateDomainRequest](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCreateDomainRequest.html)objeto y proporcione la `DomainName` propiedad. Cree un [AmazonCloudSearchClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCloudSearchClient.html)objeto mediante el objeto de solicitud. Llame al método [CreateDomain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/MCloudSearchCreateDomainCreateDomainRequest.html). El [CreateDomainResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCreateDomainResponse.html)objeto devuelto por la llamada contiene una `DomainStatus` propiedad que tiene los `SearchService` puntos finales `DocService` y los extremos. Crea un [AmazonCloudSearchDomainConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearchDomain/TCloudSearchDomainConfig.html)objeto y úsalo para inicializar cualquier `SearchService` instancia `DocService` de la [AmazonCloudSearchDomainClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearchDomain/TCloudSearchDomainClient.html)clase.

```
// Create domain and retrieve DocService and SearchService endpoints
DomainStatus domainStatus;
using (var searchClient = new AmazonCloudSearchClient())
{
    var request = new CreateDomainRequest
    {
        DomainName = "testdomain"
    };
    domainStatus = searchClient.CreateDomain(request).DomainStatus;
    Console.WriteLine(domainStatus.DomainName + " created");
}

// Test the DocService endpoint
var docServiceConfig = new AmazonCloudSearchDomainConfig
{
    ServiceURL = "https://" + domainStatus.DocService.Endpoint
};
using (var domainDocService = new AmazonCloudSearchDomainClient(docServiceConfig))
{
    Console.WriteLine("Amazon CloudSearchDomain DocService client instantiated using the DocService endpoint");
    Console.WriteLine("DocService endpoint = " + domainStatus.DocService.Endpoint);

    using (var docStream = new FileStream(@"C:\doc_source\XMLFile4.xml", FileMode.Open))
    {
        var upload = new UploadDocumentsRequest
        {
            ContentType = ContentType.ApplicationXml,
            Documents = docStream
        };
        domainDocService.UploadDocuments(upload);
    }
}

// Test the SearchService endpoint
var searchServiceConfig = new AmazonCloudSearchDomainConfig
{
    ServiceURL = "https://" + domainStatus.SearchService.Endpoint
};
using (var domainSearchService = new AmazonCloudSearchDomainClient(searchServiceConfig))
{
    Console.WriteLine("Amazon CloudSearchDomain SearchService client instantiated using the SearchService endpoint");
    Console.WriteLine("SearchService endpoint = " + domainStatus.SearchService.Endpoint);

    var searchReq = new SearchRequest
    {
        Query = "Gambardella",
        Sort = "_score desc",
        QueryParser = QueryParser.Simple
    };
    var searchResp = domainSearchService.Search(searchReq);
}
```

#### AWS IoT Ejemplo de puntos finales
<a name="iotlong-endpoints-example"></a>

Para obtener el punto final AWS IoT, cree un [AmazonIoTClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TIoTClient.html)objeto y llame al [DescribeEndPoint](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/MIoTDescribeEndpointDescribeEndpointRequest.html)método. El [DescribeEndPointResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TDescribeEndpointResponse.html)objeto devuelto contiene el`EndpointAddress`. Cree un [AmazonIotDataConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IotData/TIotDataConfig.html)objeto, establezca la `ServiceURL` propiedad y utilice el objeto para crear una instancia de la [AmazonIotDataClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IotData/TIotDataClient.html)clase.

```
string iotEndpointAddress;
using (var iotClient = new AmazonIoTClient())
{
    var endPointResponse = iotClient.DescribeEndpoint();
    iotEndpointAddress = endPointResponse.EndpointAddress;
}

var ioTdocServiceConfig = new AmazonIotDataConfig
{
    ServiceURL = "https://" + iotEndpointAddress
};
using (var dataClient = new AmazonIotDataClient(ioTdocServiceConfig))
{
    Console.WriteLine("AWS IoTData client instantiated using the endpoint from the IotClient");
}
```

# Referencia de los archivos de configuración para el AWS SDK para .NET
<a name="net-dg-config-ref"></a>

**nota**  
La información de este tema es específica de proyectos basados en .NET Framework. Los archivos `App.config` y `Web.config` no están presentes de forma predeterminada en proyectos basados en .NET Core.

## Abrir para ver el contenido de .NET Framework
<a name="w2aab9c31c11b5b1"></a>

Puede usar un archivo `App.config` o `Web.config` del proyecto de .NET para especificar la configuración de AWS, como credenciales de AWS, opciones de registro, puntos de conexión de servicio de AWS y regiones de AWS, así como algunos ajustes de servicios de AWS, como Amazon DynamoDB, Amazon EC2 y Amazon S3. En la siguiente información se describe cómo dar formato correctamente a un archivo `App.config` o `Web.config` para especificar estos tipos de configuración.

**nota**  
Aunque puede continuar usando el elemento `<appSettings>` en un archivo `App.config` o `Web.config` para especificar la configuración de AWS, recomendamos usar los elementos `<configSections>` y `<aws>`, como se describe posteriormente en este tema. Para obtener más información sobre el elemento `<appSettings>`, consulte los ejemplos del elemento `<appSettings>` en [Configuración de la aplicación de AWS SDK para .NET](net-dg-config.md).

**nota**  
Aunque puede continuar usando las siguientes propiedades de la clase [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) en un archivo de código para especificar la configuración de AWS, las siguientes propiedades están en desuso y es posible que no se admitan en versiones futuras:  
 `DynamoDBContextTableNamePrefix` 
 `EC2UseSignatureVersion4` 
 `LoggingOptions` 
 `LogMetrics` 
 `ResponseLoggingOption` 
 `S3UseSignatureVersion4` 
En general, recomendamos que, en lugar de usar propiedades de la clase `AWSConfigs` en un archivo de código para especificar la configuración de AWS, debe usar los elementos `<configSections>` y `<aws>` en un archivo `App.config` o `Web.config` para especificar la configuración de AWS, como se describe posteriormente en este tema. Para obtener más información sobre las propiedades anteriores, consulte los ejemplos de código de `AWSConfigs` en [Configuración de la aplicación de AWS SDK para .NET](net-dg-config.md).

**Topics**
+ [Declaración de una sección de configuración de AWS](#net-dg-config-ref-declaring)
+ [Elementos permitidos](#net-dg-config-ref-elements)
+ [Referencia de elementos](#net-dg-config-ref-elements-ref)

### Declaración de una sección de configuración de AWS
<a name="net-dg-config-ref-declaring"></a>

La configuración de AWS se especifica en un archivo `App.config` o `Web.config` desde el elemento `<aws>`. Antes de que pueda empezar a usar el elemento `<aws>`, debe crear un elemento `<section>` (que es un elemento secundario del elemento `<configSections>`) y establecer su atributo `name` en `aws` y su atributo `type` en `Amazon.AWSSection, AWSSDK.Core`, como se muestra en el siguiente ejemplo:

```
<?xml version="1.0"?>
<configuration>
  ...
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws>
    <!-- Add your desired AWS settings declarations here. -->
  </aws>
  ...
</configuration>
```

El editor de Visual Studio no proporciona relleno de código automático (IntelliSense) para el elemento `<aws>` o sus elementos secundarios.

Para ayudarle a crear una versión con formato correcto del elemento `<aws>`, llame al método `Amazon.AWSConfigs.GenerateConfigTemplate`. De este modo se devuelve una versión canónica del elemento `<aws>` como una cadena bien escrita, que puede adaptar a sus necesidades. En las siguientes secciones se describen los atributos y elementos secundarios del elemento `<aws>`.

### Elementos permitidos
<a name="net-dg-config-ref-elements"></a>

A continuación se muestra una lista de las relaciones lógicas entre los elementos permitidos en una sección de configuración de AWS. Puede generar la versión más reciente de esta lista llamando al método `Amazon.AWSConfigs.GenerateConfigTemplate`, que devuelve una versión canónica del elemento `<aws>` como una cadena que puede adaptar a sus necesidades.

```
<aws
  endpointDefinition="string value"
  region="string value"
  profileName="string value"
  profilesLocation="string value">
  <logging
    logTo="None, Log4Net, SystemDiagnostics"
    logResponses="Never | OnError | Always"
    logMetrics="true | false"
    logMetricsFormat="Standard | JSON"
    logMetricsCustomFormatter="NameSpace.Class, Assembly" />
  <dynamoDB
    conversionSchema="V1 | V2">
    <dynamoDBContext
      tableNamePrefix="string value">
      <tableAliases>
        <alias
          fromTable="string value"
          toTable="string value" />
      </tableAliases>
      <map
        type="NameSpace.Class, Assembly"
        targetTable="string value">
        <property
          name="string value"
          attribute="string value"
          ignore="true | false"
          version="true | false"
          converter="NameSpace.Class, Assembly" />
      </map>
    </dynamoDBContext>
  </dynamoDB>
  <s3
    useSignatureVersion4="true | false" />
  <ec2
    useSignatureVersion4="true | false" />
  <proxy
    host="string value"
    port="1234"
    username="string value"
    password="string value" />
</aws>
```

### Referencia de elementos
<a name="net-dg-config-ref-elements-ref"></a>

A continuación se muestra una lista de los elementos permitidos en una sección de configuración de AWS. Para cada elemento, se listan sus atributos y elementos principales y secundarios permitidos.

**Topics**
+ [alias](#net-dg-config-ref-elements-alias)
+ [`aws`](#net-dg-config-ref-elements-aws)
+ [dynamoDB](#net-dg-config-ref-elements-dynamodb)
+ [dynamoDBContext](#net-dg-config-ref-elements-ddbcontext)
+ [ec2](#net-dg-config-ref-elements-ec2)
+ [registrar](#net-dg-config-ref-elements-logging)
+ [map](#net-dg-config-ref-elements-map)
+ [propiedad](#net-dg-config-ref-elements-property)
+ [proxy](#net-dg-config-ref-elements-proxy)
+ [s3](#net-dg-config-ref-elements-s3)

#### alias
<a name="net-dg-config-ref-elements-alias"></a>

El elemento `<alias>` representa un solo elemento de una colección de uno o varios mapeos a la tabla y desde la tabla que especifica una tabla distinta de una configurada para un tipo. Este elemento se asigna a una instancia de la clase `Amazon.Util.TableAlias` a partir de la propiedad `Amazon.AWSConfigs.DynamoDBConfig.Context.TableAliases` en el AWS SDK para .NET. La reasignación se lleva a cabo antes de la aplicación de un prefijo de nombre de tabla.

Este elemento puede incluir los siguientes atributos:

** `fromTable` **  
La parte desde la tabla del mapeo a la tabla y desde la tabla. Este atributo se asigna a la propiedad `Amazon.Util.TableAlias.FromTable` en AWS SDK para .NET.

** `toTable` **  
La parte a la tabla de la asignación a la tabla y desde la tabla. Este atributo se asigna a la propiedad `Amazon.Util.TableAlias.ToTable` en AWS SDK para .NET.

El elemento principal del elemento `<alias>` es el elemento `<tableAliases>`.

El elemento `<alias>` no contiene ningún elemento secundario.

A continuación, mostramos un ejemplo del elemento `<alias>` en uso:

```
<alias
  fromTable="Studio"
  toTable="Studios" />
```

#### `aws`
<a name="net-dg-config-ref-elements-aws"></a>

El elemento `<aws>` representa el elemento superior en una sección de configuración de AWS. Este elemento puede incluir los siguientes atributos:

** `endpointDefinition` **  
Ruta absoluta a un archivo de configuración personalizado que define las regiones y los puntos de conexión de AWS que se van a usar. Este atributo se asigna a la propiedad `Amazon.AWSConfigs.EndpointDefinition` en AWS SDK para .NET.

** `profileName` **  
Nombre de perfil de las credenciales de AWS almacenadas que se usarán para realizar llamadas a servicios. Este atributo se asigna a la propiedad `Amazon.AWSConfigs.AWSProfileName` en AWS SDK para .NET.

** `profilesLocation` **  
Ruta absoluta a la ubicación del archivo de credenciales compartido con otros AWS SDK. De forma predeterminada, el archivo de credenciales se almacena en el directorio `.aws` del directorio de inicio del usuario actual. Este atributo se asigna a la propiedad `Amazon.AWSConfigs.AWSProfilesLocation` en AWS SDK para .NET.

** `region` **  
ID de región de AWS predeterminado para clientes que no han especificado una región de forma explícita. Este atributo se asigna a la propiedad `Amazon.AWSConfigs.AWSRegion` en AWS SDK para .NET.

El elemento `<aws>` no tiene elemento principal.

El elemento `<aws>` puede incluir los siguientes elementos secundarios:
+  `<dynamoDB>` 
+  `<ec2>` 
+  `<logging>` 
+  `<proxy>` 
+  `<s3>` 

A continuación, mostramos un ejemplo del elemento `<aws>` en uso:

```
<aws
  endpointDefinition="C:\Configs\endpoints.xml"
  region="us-west-2"
  profileName="development"
  profilesLocation="C:\Configs">
  <!-- ... -->
</aws>
```

#### dynamoDB
<a name="net-dg-config-ref-elements-dynamodb"></a>

El elemento `<dynamoDB>` representa una colección de ajustes de Amazon DynamoDB. Este elemento puede incluir el atributo *conversionSchema*, que representa la versión que se va a usar para la conversión entre objetos de .NET y DynamoDB. Los valores permitidos son V1 y V2. Este atributo se asigna a la clase `Amazon.DynamoDBv2.DynamoDBEntryConversion` en AWS SDK para .NET. Para obtener más información, consulte [Serie DynamoDB: esquemas de conversión](http://blogs.aws.amazon.com/net/post/Tx2TCOGWG7ARUH5/DynamoDB-Series-Conversion-Schemas).

El elemento principal del elemento `<dynamoDB>` es el elemento `<aws>`.

El elemento `<dynamoDB>` puede incluir el elemento secundario `<dynamoDBContext>`.

A continuación, mostramos un ejemplo del elemento `<dynamoDB>` en uso:

```
<dynamoDB
  conversionSchema="V2">
  <!-- ... -->
</dynamoDB>
```

#### dynamoDBContext
<a name="net-dg-config-ref-elements-ddbcontext"></a>

El elemento `<dynamoDBContext>` representa una colección de ajustes específicos del contexto de Amazon DynamoDB. Este elemento puede incluir el atributo *tableNamePrefix*, que representa el prefijo de nombre de tabla predeterminado que usará el contexto de DynamoDB si no se configura manualmente. Este atributo se asigna a la propiedad `Amazon.Util.DynamoDBContextConfig.TableNamePrefix` a partir de la propiedad `Amazon.AWSConfigs.DynamoDBConfig.Context.TableNamePrefix` de AWS SDK para .NET. Para obtener más información, consulte la sección sobre las [mejoras realizadas en el SDK de DynamoDB](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK).

El elemento principal del elemento `<dynamoDBContext>` es el elemento `<dynamoDB>`.

El elemento `<dynamoDBContext>` puede incluir los siguientes elementos secundarios:
+  `<alias>` (una o varias instancias)
+  `<map>` (una o varias instancias)

A continuación, mostramos un ejemplo del elemento `<dynamoDBContext>` en uso:

```
<dynamoDBContext
  tableNamePrefix="Test-">
  <!-- ... -->
</dynamoDBContext>
```

#### ec2
<a name="net-dg-config-ref-elements-ec2"></a>

El elemento `<ec2>` representa una colección de ajustes de Amazon EC2. El elemento puede incluir el atributo *useSignatureVersion4*, que especifica si la versión 4 de Signature se usará para todas las solicitudes (true) o no (false, el valor predeterminado). Este atributo se asigna a la propiedad `Amazon.Util.EC2Config.UseSignatureVersion4` a partir de la propiedad `Amazon.AWSConfigs.EC2Config.UseSignatureVersion4` de AWS SDK para .NET.

El elemento principal del elemento `<ec2>` es el elemento.

El elemento `<ec2>` no contiene ningún elemento secundario.

A continuación, mostramos un ejemplo del elemento `<ec2>` en uso:

```
<ec2
  useSignatureVersion4="true" />
```

#### registrar
<a name="net-dg-config-ref-elements-logging"></a>

El elemento `<logging>` representa una colección de ajustes para el registro de respuestas y el registro de métricas de desempeño. Este elemento puede incluir los siguientes atributos:

** `logMetrics` **  
Si las métricas de desempeño se van a registrar para todos los clientes y configuraciones (true); de lo contrario, false. Este atributo se asigna a la propiedad `Amazon.Util.LoggingConfig.LogMetrics` a partir de la propiedad `Amazon.AWSConfigs.LoggingConfig.LogMetrics` de AWS SDK para .NET.

** `logMetricsCustomFormatter` **  
Tipo de datos y nombre del ensamblado de un formateador personalizado para registrar métricas. Este atributo se asigna a la propiedad `Amazon.Util.LoggingConfig.LogMetricsCustomFormatter` a partir de la propiedad `Amazon.AWSConfigs.LoggingConfig.LogMetricsCustomFormatter` de AWS SDK para .NET.

** `logMetricsFormat` **  
Formato en que se presentan las métricas de registro (se asigna a la propiedad `Amazon.Util.LoggingConfig.LogMetricsFormat` a partir de la propiedad `Amazon.AWSConfigs.LoggingConfig.LogMetricsFormat` del AWS SDK para .NET).  
Entre los valores permitidos se incluyen:    
** `JSON` **  
Utilizar el formato JSON.  
** `Standard` **  
Utilizar el formato predeterminado.

** `logResponses` **  
Cuándo se deben registrar respuestas del servicio (se asigna a la propiedad `Amazon.Util.LoggingConfig.LogResponses` a partir de la propiedad `Amazon.AWSConfigs.LoggingConfig.LogResponses` en AWS SDK para .NET).  
Entre los valores permitidos se incluyen:    
** `Always` **  
Registrar siempre respuestas del servicio.  
** `Never` **  
No registrar nunca respuestas del servicio.  
** `OnError` **  
Registrar solo respuestas del servicio cuando haya errores.

** `logTo` **  
Dónde se deben registrar (se asigna a la propiedad `LogTo` a partir de la propiedad `Amazon.AWSConfigs.LoggingConfig.LogTo` en AWS SDK para .NET).  
Los valores permitidos incluyen una o varias de estas opciones:    
** `Log4Net` **  
Registrarse en log4net.  
** `None` **  
Deshabilitar el registro.  
** `SystemDiagnostics` **  
Registrarse en System.Diagnostics.

El elemento principal del elemento `<logging>` es el elemento `<aws>`.

El elemento `<logging>` no contiene ningún elemento secundario.

A continuación, mostramos un ejemplo del elemento `<logging>` en uso:

```
<logging
  logTo="SystemDiagnostics"
  logResponses="OnError"
  logMetrics="true"
  logMetricsFormat="JSON"
  logMetricsCustomFormatter="MyLib.Util.MyMetricsFormatter, MyLib" />
```

#### map
<a name="net-dg-config-ref-elements-map"></a>

El elemento `<map>` representa un solo elemento de una colección de mapeos de tipo a tabla de tipos de .NET a tablas de DynamoDB (se asigna a una instancia de la clase `TypeMapping` a partir de la propiedad `Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings` en AWS SDK para .NET). Para obtener más información, consulte la sección sobre las [mejoras realizadas en el SDK de DynamoDB](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK).

Este elemento puede incluir los siguientes atributos:

** `targetTable` **  
Tabla de DynamoDB a la que se aplica el mapeo. Este atributo se asigna a la propiedad `Amazon.Util.TypeMapping.TargetTable` en AWS SDK para .NET.

** `type` **  
Tipo y nombre del ensamblado al que se aplica el mapeo. Este atributo se asigna a la propiedad `Amazon.Util.TypeMapping.Type` en AWS SDK para .NET.

El elemento principal del elemento `<map>` es el elemento `<dynamoDBContext>`.

El elemento `<map>` puede incluir una o varias instancias del elemento secundario `<property>`.

A continuación, mostramos un ejemplo del elemento `<map>` en uso:

```
<map
  type="SampleApp.Models.Movie, SampleDLL"
  targetTable="Movies">
  <!-- ... -->
</map>
```

#### propiedad
<a name="net-dg-config-ref-elements-property"></a>

El elemento `<property>` representa una propiedad DynamoDB. (Este elemento se asigna a una instancia de la clase Amazon.Util.PropertyConfig a partir del método `AddProperty` en el AWS SDK para .NET). Para obtener más información, consulte las secciones sobre las [mejoras realizadas en el SDK de DynamoDB](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK) y los [atributos de DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DeclarativeTagsList.html).

Este elemento puede incluir los siguientes atributos:

** `attribute` **  
Nombre de un atributo para la propiedad, como el nombre de una clave de rango. Este atributo se asigna a la propiedad `Amazon.Util.PropertyConfig.Attribute` en AWS SDK para .NET.

** `converter` **  
Tipo de convertidor que se debe usar para esta propiedad. Este atributo se asigna a la propiedad `Amazon.Util.PropertyConfig.Converter` en AWS SDK para .NET.

** `ignore` **  
Si debe hacerse caso omiso de la propiedad asociada (true); de lo contrario, false. Este atributo se asigna a la propiedad `Amazon.Util.PropertyConfig.Ignore` en AWS SDK para .NET.

** `name` **  
El nombre de la propiedad. Este atributo se asigna a la propiedad `Amazon.Util.PropertyConfig.Name` en AWS SDK para .NET.

** `version` **  
Si esta propiedad debe almacenar el número de versión del elemento (true); de lo contrario, false. Este atributo se asigna a la propiedad `Amazon.Util.PropertyConfig.Version` en AWS SDK para .NET.

El elemento principal del elemento `<property>` es el elemento `<map>`.

El elemento `<property>` no contiene ningún elemento secundario.

A continuación, mostramos un ejemplo del elemento `<property>` en uso:

```
<property
  name="Rating"
  converter="SampleApp.Models.RatingConverter, SampleDLL" />
```

#### proxy
<a name="net-dg-config-ref-elements-proxy"></a>

El elemento `<proxy>` representa los ajustes para configurar un proxy que AWS SDK para .NET usará. Este elemento puede incluir los siguientes atributos:

**host**  
Nombre de host o dirección IP del servidor proxy. Estos atributos se asignan a la propiedad `Amazon.Util.ProxyConfig.Host` a partir de la propiedad `Amazon.AWSConfigs.ProxyConfig.Host` de AWS SDK para .NET.

**contraseña**  
Contraseña para autenticarse con el servidor proxy. Estos atributos se asignan a la propiedad `Amazon.Util.ProxyConfig.Password` a partir de la propiedad `Amazon.AWSConfigs.ProxyConfig.Password` de AWS SDK para .NET.

**puerto**  
Número de puerto del proxy. Estos atributos se asignan a la propiedad `Amazon.Util.ProxyConfig.Port` a partir de la propiedad `Amazon.AWSConfigs.ProxyConfig.Port` de AWS SDK para .NET.

**nombre de usuario**  
Nombre de usuario para autenticarse con el servidor proxy. Estos atributos se asignan a la propiedad `Amazon.Util.ProxyConfig.Username` a partir de la propiedad `Amazon.AWSConfigs.ProxyConfig.Username` de AWS SDK para .NET.

El elemento principal del elemento `<proxy>` es el elemento `<aws>`.

El elemento `<proxy>` no contiene ningún elemento secundario.

A continuación, mostramos un ejemplo del elemento `<proxy>` en uso:

```
<proxy
  host="192.0.2.0"
  port="1234"
  username="My-Username-Here"
  password="My-Password-Here" />
```

#### s3
<a name="net-dg-config-ref-elements-s3"></a>

El elemento `<s3>` representa una colección de ajustes de Amazon S3. El elemento puede incluir el atributo *useSignatureVersion4*, que especifica si la versión 4 de Signature se usará para todas las solicitudes (true) o no (false, el valor predeterminado). Este atributo se asigna a la propiedad `Amazon.AWSConfigs.S3Config.UseSignatureVersion4` en AWS SDK para .NET.

El elemento principal del elemento `<s3>` es el elemento `<aws>`.

El elemento `<s3>` no contiene ningún elemento secundario.

A continuación, mostramos un ejemplo del elemento `<s3>` en uso:

```
<s3 useSignatureVersion4="true" />
```