Utilizzo di AWSSDK .extensions.netcore.setup e dell'interfaccia IConfiguration - AWS SDK for .NET

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di AWSSDK .extensions.netcore.setup e dell'interfaccia IConfiguration

(Questo argomento era precedentemente intitolato «Configurazione di con.NET Core») AWS SDK for .NET

Una delle principali modifiche apportate a.NET Core è la rimozione degli standard ConfigurationManager e dei web.config file utilizzati con le app.config applicazioni.NET Framework e ASP.NET.

La configurazione in .NET Core si basa su coppie chiave-valore stabilite dai provider di configurazione. I provider di configurazione leggono i dati di configurazione nelle coppie chiave-valore da una serie di origini di configurazione, inclusi gli argomenti della riga comando, file directory, variabili d'ambiente e file di impostazioni.

Nota

Per ulteriori informazioni, consulta Configuration in ASP.NET Core.

Per semplificare l'utilizzo AWS SDK for .NET con .NET Core, è possibile utilizzare il pacchetto AWSSDK.extensions.NETCORE.setup. NuGet Come molte librerie.NET Core, aggiunge metodi di estensione all'IConfigurationinterfaccia per semplificare la configurazione. AWS

Utilizzando .extensions.netcore.setup AWSSDK

Si supponga di creare un'applicazione ASP.NET Core Model-View-Controller (MVC), che può essere eseguita con il modello di applicazione Web ASP.NET Core in Visual Studio o eseguendo in.NET Core CLI. dotnet new mvc ... Quando si crea un'applicazione di questo tipo, il costruttore di Startup.cs gestisce la configurazione leggendo varie fonti di input da provider di configurazione come. appsettings.json

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

Per utilizzare l'Configurationoggetto per ottenere le AWSopzioni, aggiungete prima il AWSSDK.Extensions.NETCore.Setup NuGet pacchetto. Quindi, aggiungete le vostre opzioni al file di configurazione come descritto di seguito.

Nota che uno dei file aggiunti al tuo progetto èappsettings.Development.json. Ciò corrisponde a un EnvironmentName set di Development. Durante lo sviluppo, si inserisce la configurazione in questo file, che viene letto solo durante i test locali. Quando si distribuisce un'istanza Amazon EC2 EnvironmentName impostata su Production, questo file viene ignorato e torna alle credenziali e AWS SDK for .NET alla regione IAM configurate per l'istanza Amazon EC2.

Le seguenti impostazioni di configurazione mostrano esempi dei valori che puoi aggiungere al appsettings.Development.json file nel tuo progetto per fornire le impostazioni. AWS

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

Per accedere a un'impostazione in un file CSHTML, utilizzate la direttiva. 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>

Per accedere alle AWS opzioni impostate nel file dal codice, chiamate il metodo di GetAWSOptions estensione aggiunto a. IConfiguration

Per costruire un client di servizio da queste opzioni, chiama il codice CreateServiceClient. L'esempio seguente mostra come creare un client di servizio Amazon S3. (Assicurati di aggiungere il AWSSDK NuGet pacchetto.S3 al tuo progetto.)

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

È inoltre possibile creare più client di servizio con impostazioni incompatibili utilizzando più voci nel appsettings.Development.json file, come illustrato negli esempi seguenti, in cui la configurazione per service1 include la us-west-2 regione e la configurazione per include l'URL speciale dell'endpoint. service2

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

È possibile ottenere le opzioni per un servizio specifico utilizzando la voce nel file JSON. Ad esempio, per ottenere le impostazioni service1 utilizzate quanto segue.

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

Valori consentiti nel file appsettings

I seguenti valori di configurazione delle app possono essere impostate nel file appsettings.Development.json. I nomi dei campi devono utilizzare la maiuscola mostrata. Per i dettagli su queste impostazioni, consultate la AWS.Runtime.ClientConfig classe.

  • Region

  • Profilo

  • ProfilesLocation

  • SignatureVersion

  • RegionEndpoint

  • UseHttp

  • ServiceURL

  • AuthenticationRegion

  • AuthenticationServiceName

  • MaxErrorRetry

  • LogResponse

  • BufferSize

  • ProgressUpdateInterval

  • ResignRetries

  • AllowAutoRedirect

  • LogMetrics

  • DisableLogging

  • UseDualstackEndpoint

Iniezione delle dipendenze di ASP.NET Core

Il NuGet pacchetto AWSSDK.extensions.netcore.setup si integra anche con un nuovo sistema di iniezione delle dipendenze in ASP.NET Core. Il ConfigureServices metodo nella classe dell'applicazione è quello in cui vengono aggiunti i servizi MVC. Startup Se l'applicazione utilizza Entity Framework, è qui che viene inizializzata.

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

Le informazioni sull'iniezione delle dipendenze in .NET Core sono disponibili nel sito di documentazione di .NET Core.

Il AWSSDK.Extensions.NETCore.Setup NuGet pacchetto aggiunge nuovi metodi di estensione IServiceCollection che è possibile utilizzare per aggiungere AWS servizi all'iniezione di dipendenze. Il codice seguente mostra come aggiungere le AWS opzioni da cui vengono lette IConfiguration per aggiungere Amazon S3 e DynamoDB all'elenco dei servizi. (Assicurati di aggiungere i AWSSDKpacchetti.S3 e AWSSDK NuGet .DynamoDBv2 al tuo progetto.)

public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddDefaultAWSOptions(Configuration.GetAWSOptions()); services.AddAWSService<IAmazonS3>(); services.AddAWSService<IAmazonDynamoDB>(); }

Ora, se i controller MVC utilizzano IAmazonS3 o IAmazonDynamoDB come parametri nei costruttori, il sistema di inserimento delle dipendenze trasferisce questi servizi.

public class HomeController : Controller { IAmazonS3 S3Client { get; set; } public HomeController(IAmazonS3 s3Client) { this.S3Client = s3Client; } ... }