

È stata rilasciata la versione 4 (V4) di\$1 AWS SDK per .NET 

Per informazioni su come apportare modifiche e migrare le applicazioni, consulta l'argomento sulla [migrazione](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)

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 l'interfaccia IConfiguration
<a name="net-dg-config-netcore"></a>

(Questo argomento era precedentemente intitolato «Configurazione di con.NET Core») AWS SDK per .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](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration).

[Per semplificare l'utilizzo AWS SDK per .NET con .NET Core, puoi utilizzare le .Extensions. AWSSDK NETCorePacchetto .Setup](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) NuGet . Come molte librerie.NET Core, aggiunge metodi di estensione all'`IConfiguration`interfaccia per semplificare la AWS configurazione.

Il codice sorgente di questo pacchetto è disponibile GitHub all'indirizzo[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).

## Usare AWSSDK .Extensions. NETCore.Setup
<a name="net-core-configuration-builder"></a>

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 `dotnet new mvc ...` CLI. 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 *AWS*opzioni, 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 per .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](https://www.nuget.org/packages/AWSSDK.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
<a name="net-core-appsettings-values"></a>

I seguenti valori di configurazione delle app possono essere impostate nel file `appsettings.Development.json`. I nomi dei campi devono utilizzare il maiuscolo mostrato. Per i dettagli su queste impostazioni, consultate la `[AWS.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)` 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
<a name="net-core-dependency-injection"></a>

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

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

**Nota**  
Informazioni sull'iniezione delle dipendenze in .NET Core sono disponibili nel sito di [documentazione di .NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection).

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 pacchetti [AWSSDK.S3 e [AWSSDKDBv2 NuGet .Dynamo](https://www.nuget.org/packages/AWSSDK.DynamoDBv2)](https://www.nuget.org/packages/AWSSDK.S3) 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;
    }

    ...

}
```