

¡Se AWS SDK para .NET ha publicado la versión 4 (V4) del\$1

Para obtener información sobre los cambios más importantes y la migración de sus aplicaciones, consulte el [tema sobre migración](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)

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 AWS SDK para .NET proyecto
<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 archivos de configuración para 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/main/extensions/src/AWSSDK.Extensions.NETCore.Setup](https://github.com/aws/aws-sdk-net/tree/main/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/v4/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="w2aac11c29b9b5b1"></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/v4/apidocs/items/Amazon/TLoggingOptions.html)enumeración y establezca la propiedad [AWSConfigs.Logging](https://docs.aws.amazon.com/sdkfornet/v4/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/v4/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, configure. AWSConfigs AWSRegion](https://docs.aws.amazon.com/sdkfornet/v4/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/v4/apidocs/items/Amazon/TAWSConfigs.html)propiedad en uno de los valores de la [ResponseLoggingOption](https://docs.aws.amazon.com/sdkfornet/v4/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/v4/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/v4/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/v4/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 `endpoints.json` archivo está disponible en[https://github.com/aws/aws-sdk-net/blob/main/sdk/src/Core/endpoints.json](https://github.com/aws/aws-sdk-net/blob/main/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/v4/apidocs/items/CloudSearch/TCreateDomainRequest.html)objeto y proporcione la `DomainName` propiedad. Cree un [AmazonCloudSearchClient](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/CloudSearch/TCloudSearchClient.html)objeto mediante el objeto de solicitud. Llame al método [CreateDomain](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/CloudSearch/MCloudSearchCreateDomainCreateDomainRequest.html). El [CreateDomainResponse](https://docs.aws.amazon.com/sdkfornet/v4/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/v4/apidocs/items/CloudSearchDomain/TCloudSearchDomainConfig.html)objeto y úsalo para inicializar cualquier `SearchService` instancia `DocService` de la [AmazonCloudSearchDomainClient](https://docs.aws.amazon.com/sdkfornet/v4/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/v4/apidocs/items/IoT/TIoTClient.html)objeto y llame al [DescribeEndPoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/IoT/MIoTDescribeEndpointDescribeEndpointRequest.html)método. El [DescribeEndPointResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/IoT/TDescribeEndpointResponse.html)objeto devuelto contiene el`EndpointAddress`. Cree un [AmazonIotDataConfig](https://docs.aws.amazon.com/sdkfornet/v4/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/v4/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 archivos de configuración para 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="w2aac11c29c11b5b1"></a>

Puede usar un `Web.config` archivo `App.config` o un proyecto de.NET para especificar la AWS configuración, como AWS las credenciales, las opciones de registro, los puntos finales del AWS servicio y AWS las regiones, así como algunas configuraciones de los AWS servicios, como Amazon DynamoDB EC2, Amazon 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**  
Si bien puede seguir utilizando el `<appSettings>` elemento de un `Web.config` archivo `App.config` o para especificar la AWS configuración, le recomendamos que utilice los `<aws>` elementos `<configSections>` y tal como se describe más adelante en este tema. Para obtener más información sobre el `<appSettings>` elemento, consulte los ejemplos de `<appSettings>` elementos en [Configuración de AWS SDK para .NET la aplicación](net-dg-config.md).

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

**Topics**
+ [

### Declaración de una sección AWS de configuración
](#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 AWS de configuración
<a name="net-dg-config-ref-declaring"></a>

Los AWS ajustes de un `Web.config` archivo `App.config` o se especifican desde dentro del `<aws>` elemento. 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 la finalización automática del código (IntelliSense) para el `<aws>` elemento 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>

La siguiente es una lista de los elementos que están permitidos en una sección AWS de configuración. 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)
+ [

#### dinamo DBContext
](#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 el 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 el 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 `<aws>` elemento representa el elemento situado en la parte superior de una sección AWS de ajustes. Este elemento puede incluir los siguientes atributos:

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

** `profileName` **  
El nombre del perfil de AWS las credenciales almacenadas que se utilizarán para realizar llamadas de servicio. Este atributo se asigna a la propiedad `Amazon.AWSConfigs.AWSProfileName` en el AWS SDK para .NET.

** `profilesLocation` **  
La ruta absoluta a la ubicación del archivo de credenciales compartido con otros AWS SDKs. 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 el AWS SDK para .NET.

** `region` **  
El identificador de AWS región predeterminado para los clientes que no han especificado una región de forma explícita. Este atributo se asigna a la propiedad `Amazon.AWSConfigs.AWSRegion` en el 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 el 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>
```

#### dinamo DBContext
<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 *tableNamePrefix*atributo, que representa el prefijo de nombre de tabla predeterminado que utilizará 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` del 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 `<ec2>` elemento representa una colección de EC2 ajustes de Amazon. Este elemento puede incluir el atributo *useSignatureVersion4*, que especifica si la firma de la versión 4 de la firma se utilizará para todas las solicitudes (verdadero) o si la firma de la versión 4 de la firma no se utilizará para todas las solicitudes (falsa, la opción predeterminada). Este atributo se asigna a la propiedad `Amazon.Util.EC2Config.UseSignatureVersion4` a partir de la propiedad `Amazon.AWSConfigs.EC2Config.UseSignatureVersion4` del 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` del 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` del 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 el 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 iniciar sesión (se asigna a la `LogTo` propiedad desde la `Amazon.AWSConfigs.LoggingConfig.LogTo` propiedad que se encuentra 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 `<map>` elemento representa un único elemento de una colección de type-to-table asignaciones de tipos .NET a tablas de DynamoDB (se asigna a una instancia de la `TypeMapping` clase desde la propiedad de). `Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings` 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 el 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 el 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 Amazon.Util. PropertyConfig [clase del `AddProperty` método de AWS SDK para .NET) Para obtener más información, consulte [Mejoras en el SDK de DynamoDB y los atributos de DynamoDB](http://blogs.aws.amazon.com/net/post/Tx2C4MHH2H0SA5W/Enhancements-to-the-DynamoDB-SDK).](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 el 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 el 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 el AWS SDK para .NET.

** `name` **  
El nombre de la propiedad. Este atributo se asigna a la propiedad `Amazon.Util.PropertyConfig.Name` en el 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 el 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` del 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` del 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` del 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` del 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. Este elemento puede incluir el atributo *useSignatureVersion4*, que especifica si la firma de la versión 4 de la firma se utilizará para todas las solicitudes (true) o si la firma de la versión 4 de la firma no se utilizará para todas las solicitudes (false, la opción predeterminada). Este atributo se asigna a la propiedad `Amazon.AWSConfigs.S3Config.UseSignatureVersion4` en el 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" />
```