

La version 4 (V4) du AWS SDK pour .NET est sortie \!

Pour plus d'informations sur l'interruption des modifications et la migration de vos applications, consultez la rubrique [ sur la ](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html) migration.

 [![Orange button with text "Click here for details".](https://docs.aws.amazon.com/fr_fr/sdk-for-net/v4/developer-guide/images/BannerButton_less-round.png)](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation AWSSDK.Extensions.NETCore.Setup et interface iConfiguration
<a name="net-dg-config-netcore"></a>

(Cette rubrique était auparavant intitulée « Configuration du AWS SDK pour .NET avec .NET Core »)

L'un des changements les plus importants apportés à .NET Core est la suppression `ConfigurationManager` et la suppression de la norme `app.config` et `web.config` des fichiers utilisés avec .NET Framework et ses ASP.NET applications.

La configuration dans .NET Core est basée sur des paires clé-valeur établies par les fournisseurs de configuration. Les fournisseurs de configuration lisent les données de configuration en paires clé-valeur à partir de diverses sources de configuration, y compris des arguments de ligne de commande, des fichiers de répertoire, des variables d'environnement et des fichiers de paramètres.

**Note**  
Pour plus d'informations, consultez [ la section Configuration dans ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration).

Pour faciliter son utilisation AWS SDK pour .NET avec .NET Core, vous pouvez utiliser le [ AWSSDK.Extensions.NETCore.Setup ](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) NuGet package. Comme de nombreuses bibliothèques .NET Core, elle ajoute des méthodes d'extension à l'`IConfiguration`interface pour faciliter la AWS configuration.

Le code source de ce package se trouve GitHub à l'adresse[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).

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

Supposons que vous créiez une application ASP.NET Core Model-View-Controller (MVC), ce qui peut être réalisé à l'aide du ** modèle d'application Web ** ASP.NET Core dans Visual Studio ou en l'exécutant `dotnet new mvc ...` dans la CLI .NET Core. Lorsque vous créez une telle application, le constructeur `Startup.cs` gère la configuration en lisant diverses sources d'entrée provenant de fournisseurs de configuration tels que`appsettings.json`.

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

Pour utiliser l'`Configuration`objet afin d'obtenir les *AWS* options, ajoutez d'abord le `AWSSDK.Extensions.NETCore.Setup` NuGet package. Ajoutez ensuite vos options au fichier de configuration comme décrit ci-dessous.

Notez que l'un des fichiers ajoutés à votre projet est`appsettings.Development.json`. Cela correspond à un `EnvironmentName` ensemble correspondant à ** Développement**. Pendant le développement, vous placez votre configuration dans ce fichier, qui n'est lu que lors des tests locaux. Lorsque vous déployez une instance Amazon EC2 `EnvironmentName` définie sur ** Production**, ce fichier est ignoré et AWS SDK pour .NET revient aux informations d'identification IAM et à la région configurées pour l'instance Amazon EC2.

Les paramètres de configuration suivants présentent des exemples de valeurs que vous pouvez ajouter dans le `appsettings.Development.json` fichier de votre projet pour fournir des AWS paramètres.

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

Pour accéder à un paramètre dans un * fichier * CSHTML, utilisez la directive. `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>
```

Pour accéder aux AWS options définies dans le fichier à partir du code, appelez la méthode d'`GetAWSOptions`extension ajoutée à`IConfiguration`.

Pour construire un client de service à partir de ces options, appelez `CreateServiceClient`. L'exemple suivant montre comment créer un client de service Amazon S3. (Assurez-vous d'ajouter le [ AWSSDK.S3 ](https://www.nuget.org/packages/AWSSDK.S3) NuGet package à votre projet.)

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

Vous pouvez également créer plusieurs clients de service avec des paramètres incompatibles en utilisant plusieurs entrées dans le `appsettings.Development.json` fichier, comme indiqué dans les exemples suivants où la configuration pour `service1` inclut la `us-west-2` région et la configuration pour `service2` inclut l'*URL de point de terminaison spéciale*.

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

Vous pouvez ensuite obtenir les options pour un service spécifique en utilisant l'entrée dans le fichier JSON. Par exemple, pour obtenir les paramètres nécessaires, `service1` utilisez ce qui suit.

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

### Valeurs autorisées dans le fichier appsettings
<a name="net-core-appsettings-values"></a>

Les valeurs de configuration d'application suivantes peuvent être définies dans le fichier `appsettings.Development.json`. Les noms des champs doivent utiliser le boîtier indiqué. Pour plus de détails sur ces paramètres, consultez le `[AWS.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)` cours.
+ Région
+ Profil
+ ProfilesLocation
+ SignatureVersion
+ RegionEndpoint
+ UseHttp
+ ServiceURL
+ AuthenticationRegion
+ AuthenticationServiceName
+ MaxErrorRetry
+ LogResponse
+ BufferSize
+ ProgressUpdateInterval
+ ResignRetries
+ AllowAutoRedirect
+ LogMetrics
+ DisableLogging
+ UseDualstackEndpoint

## ASP.NET Injection de dépendance de base
<a name="net-core-dependency-injection"></a>

Le * AWSSDK.Extensions.NETCore.Setup * NuGet package s'intègre également à un nouveau système d'injection de dépendances dans ASP.NET Core. La `ConfigureServices` méthode de la `Startup` classe de votre application est l'endroit où les services MVC sont ajoutés. Si l'application utilise Entity Framework, c'est également là que l'initialisation se produit.

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

**Note**  
Des informations sur l'injection de dépendances dans .NET Core sont disponibles sur le site de documentation de [ .NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection).

Le `AWSSDK.Extensions.NETCore.Setup` NuGet package ajoute de nouvelles méthodes d'extension `IServiceCollection` que vous pouvez utiliser pour ajouter AWS des services à l'injection de dépendances. Le code suivant vous montre comment ajouter les AWS options lues `IConfiguration` pour ajouter Amazon S3 et DynamoDB à la liste des services. (Assurez-vous d'ajouter les [ AWSSDK.DynamoDBv2 ](https://www.nuget.org/packages/AWSSDK.DynamoDBv2) NuGet packages [ AWSSDK.S3 ](https://www.nuget.org/packages/AWSSDK.S3) et à votre projet.)

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

    services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
    services.AddAWSService<IAmazonS3>();
    services.AddAWSService<IAmazonDynamoDB>();
}
```

Désormais, si vos contrôleurs MVC utilisent `IAmazonS3` ou `IAmazonDynamoDB` en tant que paramètres dans leurs constructeurs, le système d'injection de dépendances transmet ces services.

```
public class HomeController : Controller
{
    IAmazonS3 S3Client { get; set; }

    public HomeController(IAmazonS3 s3Client)
    {
        this.S3Client = s3Client;
    }

    ...

}
```

**Note**  
Par défaut, `AddAWSService` enregistre le client de service en tant que singleton, ce qui correspond à la durée de vie recommandée car les clients de service sont sûrs pour les threads et leur construction est relativement coûteuse. Pour plus d'informations sur la réutilisation des clients et d'autres recommandations de performances, consultez[Bonnes pratiques en matière de performances](net-dg-performance.md).