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.IConfiguration
interfaccia 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'Configuration
oggetto 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
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
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; } ... }