Configuración de otros parámetros de la aplicación - AWS SDK para .NET (V3)

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

Para empezar a usar la nueva versión del SDK, consulte la Guía para desarrolladores de AWS SDK para .NET (versión 4), especialmente el tema Migración a la versión 4.

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 de otros parámetros de la aplicación

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.

Hay varios parámetros de la aplicación que se pueden configurar:

Estos parámetros se pueden configurar en el archivo App.config o Web.config de la aplicación. Aunque también puede configurarlos en la API del AWS SDK para .NET, le recomendamos que utilice el archivo .config de la aplicación. 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.

AWSLogging

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. Esta es la opción predeterminada.

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"/>

De forma alternativa, al utilizar la API del AWS SDK para .NET, combine los valores de la enumeración LoggingOptions y defina la propiedad AWSConfigs.Logging:

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

Los cambios en esta configuración solo son efectivos para las instancias del cliente AWS nuevas.

AWSLogMetrics

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">

De forma alternativa, para definir el registro de las métricas con la API del AWS SDK para .NET, defina la propiedad AWSConfigs.LogMetrics:

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 son efectivos para las instancias del cliente AWS nuevas.

AWSRegion

Configura la región de AWS predeterminada para 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"/>

De forma alternativa, para definir la región con la API del AWS SDK para .NET, defina la propiedad AWSConfigs.AWSRegion:

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

Para obtener más información sobre cómo crear un cliente de AWS para una región específica, consulte Selección de la región de AWS. Los cambios en esta configuración solo son efectivos para las instancias del cliente AWS nuevas.

AWSResponseLogging

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

Never

No registrar nunca respuestas del servicio. Esta es la opción predeterminada.

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>

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

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

De forma alternativa, para definir el registro de servicios con la API del AWS SDK para .NET, defina la propiedad AWSConfigs.ResponseLogging con uno de los valores de la enumeración ResponseLoggingOption:

AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;

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

AWS.DynamoDBContext.TableNamePrefix

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-"/>

De forma alternativa, para definir el prefijo del nombre de tabla con la API del AWS SDK para .NET, defina la propiedad AWSConfigs.DynamoDBContextTableNamePrefix:

AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";

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

AWS.S3.UseSignatureVersion4

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"/>

De forma alternativa, para definir la versión 4 de Signature con la API del AWS SDK para .NET, defina la propiedad AWSConfigs.S3UseSignatureVersion4 como 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.

AWSEndpointDefinition

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"/>

De forma alternativa, puede definir la clave AWSEndpointDefinition en la sección <appSettings>:

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

De forma alternativa, para definir el archivo de definición del punto de enlace con la API del AWS SDK para .NET, defina la propiedad AWSConfigs.EndpointDefinition:

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 son efectivos para las instancias del cliente AWS 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.

Puntos de conexión generados por servicios de AWS

Algunos servicios de AWS generan sus propios puntos de conexión en lugar de consumir un punto de conexión de región. 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 puntos de conexión de Amazon CloudSearch

El cliente de Amazon CloudSearch se utiliza para acceder al servicio de configuración de Amazon CloudSearch. Debe utilizar el servicio de configuración de Amazon CloudSearch para crear, configurar y administrar los dominios de búsqueda. Para crear un dominio de búsqueda, cree un objeto CreateDomainRequest y proporcione la propiedad DomainName. Cree un objeto AmazonCloudSearchClient mediante el objeto de la solicitud. Llame al método CreateDomain. El objeto CreateDomainResponse devuelto por la llamada contiene una propiedad DomainStatus que incluye los puntos de enlace DocService y SearchService. Cree un objeto AmazonCloudSearchDomainConfig y utilícelo para inicializar las instancias DocService y SearchService de la clase AmazonCloudSearchDomainClient.

// 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 IoTEjemplo de puntos de enlace de

Para obtener el punto de enlace para AWS IoT, cree un objeto AmazonIoTClient y llame al método DescribeEndPoint. El objeto DescribeEndPointResponse devuelto contiene la EndpointAddress. Cree un objeto AmazonIotDataConfig, defina la propiedad ServiceURL y utilice el objeto para crear una instancia de la clase AmazonIotDataClient.

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"); }