

Versi 4 (V4) AWS SDK untuk .NET telah dirilis\!

Untuk informasi tentang mengubah perubahan dan memigrasikan aplikasi Anda, lihat topik [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) migrasi.

 [![Orange button with text "Click here for details".](https://docs.aws.amazon.com/id_id/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)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan AWSSDK.Extensions.NETCore.Setup dan antarmuka IConfiguration
<a name="net-dg-config-netcore"></a>

(Topik ini sebelumnya berjudul, “Mengkonfigurasi AWS SDK untuk .NET dengan.NET Core”)

Salah satu perubahan terbesar di.NET Core adalah penghapusan `ConfigurationManager` dan standar `app.config` dan `web.config` file yang digunakan dengan.NET Framework dan ASP.NET aplikasi.

Konfigurasi di.NET Core didasarkan pada pasangan nilai kunci yang ditetapkan oleh penyedia konfigurasi. Penyedia konfigurasi membaca data konfigurasi menjadi pasangan kunci-nilai dari berbagai sumber konfigurasi, termasuk argumen baris perintah, file direktori, variabel lingkungan, dan file pengaturan.

**catatan**  
Untuk informasi lebih lanjut, lihat [ Konfigurasi di ASP.NET Inti](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration).

Untuk membuatnya mudah digunakan den AWS SDK untuk .NET gan.NET Core, Anda dapat menggunakan [ AWSSDK.Extensions.NETCore.Setup ](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) NuGet paket. Seperti banyak pustakan.NET Core, ia menambahkan metode ekstensi ke `IConfiguration` antarmuka untuk membuat AWS konfigurasi mulus.

Kode sumber untuk paket ini aktif GitHub di[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).

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

Misalkan Anda membuat aplikasi ASP.NET Core Model-View-Controller (MVC), yang dapat dilakukan dengan ** template ** ASP.NET Core Web Application di Visual Studio atau dengan menjalankan di `dotnet new mvc ...` .NET Core CLI. Ketika Anda membuat aplikasi seperti itu, konstruktor untuk `Startup.cs` menangani konfigurasi dengan membaca di berbagai sumber input dari penyedia konfigurasi seperti`appsettings.json`.

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

Untuk menggunakan `Configuration` objek untuk mendapatkan *AWS* opsi, pertama-tama tambahkan `AWSSDK.Extensions.NETCore.Setup` NuGet paket. Kemudian, tambahkan opsi Anda ke file konfigurasi seperti yang dijelaskan selanjutnya.

Perhatikan bahwa salah satu file yang ditambahkan ke proyek Anda adalah`appsettings.Development.json`. Ini sesuai dengan satu `EnvironmentName` set untuk Peng ** embangan**. Selama pengembangan, Anda menempatkan konfigurasi Anda di file ini, yang hanya dibaca selama pengujian lokal. Saat Anda menerapkan instans Amazon EC2 yang telah diset `EnvironmentName` el ke ** Produksi**, file ini diabaikan dan kembali ke AWS SDK untuk .NET kredenSIAL IAM dan Wilayah yang dikonfigurasi untuk instans Amazon EC2.

Pengaturan konfigurasi berikut menunjukkan contoh nilai yang dapat Anda tambahkan dalam `appsettings.Development.json` file dalam proyek Anda untuk menyediakan AWS pengaturan.

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

Untuk mengakses pengaturan dalam * file * CSHTML, gunakan direktif. `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>
```

Untuk mengakses AWS opsi yang ditetapkan dalam file dari kode, panggil metode `GetAWSOptions` ekstensi yang ditambahkan ke`IConfiguration`.

Untuk membangun klien layanan dari opsi ini, panggil`CreateServiceClient`. Contoh berikut menunjukkan cara membuat klien layanan Amazon S3. (Pastikan untuk menambahkan [ AWSSDK.S3 ](https://www.nuget.org/packages/AWSSDK.S3) NuGet paket ke proyek Anda.)

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

Anda juga dapat membuat beberapa klien layanan dengan pengaturan yang tidak kompatibel dengan menggunakan beberapa entri dalam `appsettings.Development.json` file, seperti yang ditunjukkan dalam contoh berikut di mana konfigurasi untuk `service1` menyertakan Wil `us-west-2` ayah dan konfigurasi untuk menyer `service2` takan * URL titik akhir khusus*.

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

Anda kemudian bisa mendapatkan opsi untuk layanan tertentu dengan menggunakan entri di file JSON. Misalnya, untuk mendapatkan pengaturan untuk `service1` menggunakan berikut ini.

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

### Nilai yang diizinkan dalam file appsettings
<a name="net-core-appsettings-values"></a>

Nilai konfigurasi aplikasi berikut dapat diatur dalam `appsettings.Development.json` file. Nama bidang harus menggunakan casing yang ditunjukkan. Untuk detail tentang pengaturan ini, lihat `[AWS.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)` kelas.
+ Region
+ Profil
+ ProfilesLocation
+ SignatureVersion
+ RegionEndpoint
+ UseHttp
+ LayananURL
+ AuthenticationRegion
+ AuthenticationServiceName
+ MaxErrorRetry
+ LogResponse
+ BufferSize
+ ProgressUpdateInterval
+ ResignRetries
+ AllowAutoRedirect
+ LogMetrics
+ DisableLogging
+ UseDualstackEndpoint

## ASP.NET Injeksi ketergantungan inti
<a name="net-core-dependency-injection"></a>

*AWSSDK.Extensions.NETCore.Setup* NuGet Paket ini juga terintegrasi dengan sistem injeksi ketergantungan baru di ASP.NET Core. `ConfigureServices`Metode di `Startup` kelas aplikasi Anda adalah tempat layanan MVC ditambahkan. Jika aplikasi menggunakan Entity Framework, ini juga di mana itu diinisialisasi.

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

**catatan**  
Latar belakang injeksi ketergantungan di.NET Core tersedia di situs dokumentasi [ .NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection).

`AWSSDK.Extensions.NETCore.Setup` NuGet Paket menambahkan metode ekstensi baru `IServiceCollection` yang dapat Anda gunakan untuk menambahkan AWS layanan ke injeksi ketergantungan. Kode berikut menunjukkan cara menambahkan AWS opsi yang dibaca `IConfiguration` untuk menambahkan Amazon S3 dan DynamoDB ke daftar layanan. (Pastikan untuk menambahkan [ AWSSDK.DynamoDBv2 ](https://www.nuget.org/packages/AWSSDK.DynamoDBv2) NuGet paket [ AWSSDK.S3 ](https://www.nuget.org/packages/AWSSDK.S3) dan ke proyek Anda.)

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

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

Sekarang, jika pengontrol MVC Anda menggunakan salah `IAmazonS3` satu atau `IAmazonDynamoDB` sebagai parameter dalam konstruktornya, sistem injeksi ketergantungan melewati layanan tersebut.

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

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

    ...

}
```

**catatan**  
Secara default, `AddAWSService` daftarkan klien layanan sebagai single, yang merupakan masa pakai yang disarankan karena klien layanan aman untuk thread dan relatif mahal untuk dibangun. Untuk informasi selengkapnya tentang menggunakan kembali klien dan rekomendasi kinerja lainnya, lihat[Praktik terbaik kinerja](net-dg-performance.md).