¡Ya está disponible la AWS SDK para .NET versión 4 (V4) del!
Para obtener información sobre los cambios importantes y la migración de sus aplicaciones, consulte el tema sobre https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html migración.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso AWSSDK.Extensions.NETCore.Setup y la interfaz iConfiguration
(Este tema se titulaba anteriormente «Configuración AWS SDK para .NET con .NET Core»)
Uno de los cambios más importantes en .NET Core es la eliminación del estándar ConfigurationManager app.config y los web.config archivos que se utilizaban con .NET Framework y ASP.NET las aplicaciones.
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
Para facilitar su uso AWS SDK para .NET con .NET Core, puede usar el AWSSDK.Extensions.NETCore.Setup IConfiguration interfaz para que la AWS configuración sea perfecta.
El código fuente de este paquete se encuentra GitHub enhttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup
Utilizando AWSSDK.Extensions.NETCore.Setup
Supongamos que crea una aplicación ASP.NET Core Model-View-Controller (MVC), lo que puede lograrse con la plantilla ASP.NET Core Web Application de 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 AWSSDK.Extensions.NETCore.Setup NuGet paquete. 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 que está EnvironmentName configurada como de producción, este archivo se ignora y, a continuación, se AWS SDK para .NET recurre a las credenciales 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 configuradas en el archivo desde el código, llame al método de GetAWSOptions extensión agregado al. 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 agregar el AWSSDK.S3
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
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.
-
Region
-
Profile
-
ProfilesLocation
-
SignatureVersion
-
RegionEndpoint
-
UseHttp
-
ServiceURL
-
AuthenticationRegion
-
AuthenticationServiceName
-
MaxErrorRetry
-
LogResponse
-
BufferSize
-
ProgressUpdateInterval
-
ResignRetries
-
AllowAutoRedirect
-
LogMetrics
-
DisableLogging
-
UseDualstackEndpoint
ASP.NET Inyección de dependencia básica
El AWSSDK.Extensions.NETCore.Setup NuGet paquete 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
El AWSSDK.Extensions.NETCore.Setup NuGet paquete agrega nuevos métodos de extensión IServiceCollection que puedes usar para agregar AWS servicios a la inyección de dependencias. El siguiente código muestra cómo añadir AWS las opciones desde las que se lee IConfiguration para añadir Amazon S3 y DynamoDB a la lista de servicios. (Asegúrese de añadir los AWSSDK.DynamoDBv2
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; } ... }
nota
De forma predeterminada, AddAWSService registra el cliente de servicio como único, que es el tiempo de vida recomendado, ya que los clientes de servicio son seguros para subprocesos y su construcción es relativamente cara. Para obtener más información sobre la reutilización de clientes y otras recomendaciones de rendimiento, consulte. Prácticas recomendadas de rendimiento