

Versi 4 (V4) dari AWS SDK untuk .NET telah dirilis\$1

Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat [topik migrasi](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)

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

# Memulai dengan AWS SDK untuk .NET
<a name="net-dg-config"></a>

Pelajari cara menginstal, mengatur, dan menggunakan AWS SDK untuk .NET. Anda harus menginstal toolchain Anda dan menyiapkan sejumlah hal penting yang dibutuhkan aplikasi Anda untuk mengakses AWS layanan. Ini termasuk:
+ Akun atau peran pengguna yang sesuai
+ Informasi otentikasi untuk akun pengguna tersebut atau untuk mengambil peran itu

Untuk informasi tentang cara mengkonfigurasi proyek dan bagian penting lainnya, lihat[Mengkonfigurasi AWS SDK untuk .NET](configuring-the-sdk.md).

**Topics**
+ [Menginstal dan mengonfigurasi rantai alat Anda](net-dg-dev-env.md)
+ [Autentikasi dengan AWS](creds-idc.md)
+ [Membuat aplikasi sederhana](quick-start.md)

# Menginstal dan mengonfigurasi toolchain Anda untuk AWS SDK untuk .NET
<a name="net-dg-dev-env"></a>

Untuk menggunakannya AWS SDK untuk .NET, Anda harus menginstal alat pengembangan tertentu.

## Pengembangan lintas platform
<a name="net-dg-dev-env-cross"></a>

Berikut ini diperlukan untuk pengembangan .NET lintas platform di Windows, Linux, atau macOS:
+ Microsoft [.NET Core SDK](https://learn.microsoft.com/en-us/dotnet/fundamentals/), versi 2.1, 3.1, atau yang lebih baru, yang mencakup antarmuka baris perintah .NET (CLI) **`dotnet`**() dan runtime .NET Core.
+ Editor kode atau lingkungan pengembangan terintegrasi (IDE) yang sesuai untuk sistem operasi dan persyaratan Anda. Ini biasanya salah satu yang menyediakan beberapa dukungan untuk .NET Core.

  Contohnya termasuk [Microsoft Visual Studio Code (VS Code)](https://code.visualstudio.com/), [JetBrains Rider](https://www.jetbrains.com/rider/), dan [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/).
+ (Opsional) AWS Toolkit jika tersedia untuk editor yang Anda pilih dan sistem operasi Anda.

  Contohnya termasuk [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html), [AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html), dan [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html).

## Windows dengan Visual Studio dan .NET Core
<a name="net-dg-dev-env-winvs"></a>

Berikut ini diperlukan untuk pengembangan pada Windows dengan Visual Studio dan .NET Core:
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/)
+ Microsoft .NET Core 2.1, 3.1 atau yang lebih baru

  Ini biasanya disertakan secara default saat menginstal versi terbaru Visual Studio.
+ (Opsional) AWS Toolkit for Visual Studio, yang merupakan plugin yang menyediakan antarmuka pengguna untuk mengelola AWS sumber daya dan profil lokal Anda dari Visual Studio. Untuk menginstal toolkit, lihat [Menyiapkan file. AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/getting-set-up.html)

  Untuk informasi selengkapnya, silakan lihat [Panduan Pengguna AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/).

## Langkah berikutnya
<a name="net-dg-dev-env-next"></a>

[Mengautentikasi dengan AWS SDK untuk .NET AWS](creds-idc.md)

# Mengautentikasi dengan AWS SDK untuk .NET AWS
<a name="creds-idc"></a>

Anda harus menetapkan bagaimana kode Anda mengautentikasi AWS saat mengembangkan dengan Layanan AWS. Ada berbagai cara di mana Anda dapat mengonfigurasi akses terprogram ke AWS sumber daya, tergantung pada lingkungan dan AWS akses yang tersedia untuk Anda. 

Untuk melihat berbagai metode otentikasi SDK, lihat [Autentikasi dan akses](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) di Panduan Referensi *Alat AWS SDKs dan Alat*.

Topik ini mengasumsikan bahwa pengguna baru sedang berkembang secara lokal, belum diberikan metode otentikasi oleh majikan mereka, dan akan digunakan AWS IAM Identity Center untuk mendapatkan kredensil sementara. Jika lingkungan Anda tidak termasuk dalam asumsi ini, beberapa informasi dalam topik ini mungkin tidak berlaku untuk Anda, atau beberapa informasi mungkin telah diberikan kepada Anda.

 Mengkonfigurasi lingkungan ini memerlukan beberapa langkah, yang dirangkum sebagai berikut:

1. [Login menggunakan kredenal konsol](#login-con-creds)

1. [Aktifkan dan konfigurasikan Pusat Identitas IAM](#idc-config-sso)

1. [Konfigurasikan SDK untuk menggunakan IAM Identity Center.](#idc-config-sdk)

1. [Mulai sesi portal AWS akses](#idc-start-portal)

## Login menggunakan kredenal konsol
<a name="login-con-creds"></a>

Anda dapat menggunakan kredenal masuk Konsol AWS Manajemen yang ada untuk akses terprogram ke layanan. AWS Setelah alur otentikasi berbasis browser, buat kredenal AWS sementara yang berfungsi di seluruh alat pengembangan lokal seperti AWS CLI, dan SDK Alat AWS untuk PowerShell for .NET v4. AWS 

Dengan proses ini, Anda dapat mengautentikasi menggunakan kredensi root yang dibuat selama pengaturan akun awal, pengguna IAM, atau identitas federasi dari penyedia identitas Anda, dan AWS CLI atau Alat AWS untuk PowerShell secara otomatis mengelola kredensil sementara untuk Anda. Pendekatan ini meningkatkan keamanan dengan menghilangkan kebutuhan untuk menyimpan kredensil jangka panjang secara lokal. Ketika Anda menjalankan `Invoke-AWSLogin ` cmdlet dari Alat AWS untuk PowerShell atau `aws login` perintah dari AWS CLI, Anda dapat memilih dari sesi konsol aktif Anda, atau masuk melalui alur otentikasi berbasis browser dan ini akan secara otomatis menghasilkan kredensi sementara. Token kredenal sementara akan kedaluwarsa dalam 15 menit, tetapi AWS SDK for .NET v4 secara otomatis menyegarkan token saat diperlukan selama permintaan Anda. 

**penting**  
Jika Anda menggunakan kredensi konsol untuk autentikasi, aplikasi Anda harus mereferensikan NuGet paket berikut agar resolusi AWS Signin dapat berfungsi:  
**AWSSDK.Masuk**
Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian runtime.
+ [Alat AWS untuk PowerShell login creds Panduan Pengembang.](https://docs.aws.amazon.com/powershell/v5/userguide/creds-idc.html#login-con-creds)
+ [Login untuk pengembangan AWS lokal menggunakan kredensil konsol menggunakan CLI AWS .](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)

`config`File akan terlihat seperti ini setelah Anda masuk mengikuti langkah-langkah yang diberikan di atas untuk Alat AWS untuk PowerShell atau AWS CLI. 

```
[default]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1

[my-dev-profile]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1
```

## Aktifkan dan konfigurasikan Pusat Identitas IAM
<a name="idc-config-sso"></a>

Untuk menggunakan IAM Identity Center, pertama-tama harus diaktifkan dan dikonfigurasi. Untuk melihat detail tentang cara melakukannya untuk SDK, lihat **Langkah 1** dalam topik [autentikasi Pusat Identitas IAM](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) di Panduan Referensi *Alat AWS SDKs dan Alat*. Secara khusus, ikuti instruksi yang diperlukan di bawah **Saya tidak memiliki akses yang ditetapkan melalui Pusat Identitas IAM**.

## Konfigurasikan SDK untuk menggunakan IAM Identity Center.
<a name="idc-config-sdk"></a>

Informasi tentang cara mengonfigurasi SDK untuk menggunakan IAM Identity Center ada di **Langkah 2** dalam topik [autentikasi Pusat Identitas IAM](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) di Panduan Referensi Alat *AWS SDKs dan* Alat. Setelah Anda menyelesaikan konfigurasi ini, sistem Anda harus berisi elemen-elemen berikut:
+ Itu AWS CLI, yang Anda gunakan untuk memulai sesi portal AWS akses sebelum Anda menjalankan aplikasi Anda.
+  AWS `config`File bersama yang berisi [`[default]`profil](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile) dengan serangkaian nilai konfigurasi yang dapat direferensikan dari SDK. Untuk menemukan lokasi file ini, lihat [Lokasi file bersama di](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html) *Panduan Referensi Alat AWS SDKs dan*. AWS SDK untuk .NET Menggunakan penyedia token SSO profil untuk memperoleh kredensil sebelum mengirim permintaan ke. AWS`sso_role_name`Nilai, yang merupakan peran IAM yang terhubung ke set izin Pusat Identitas IAM, harus memungkinkan akses ke yang Layanan AWS digunakan dalam aplikasi Anda.

  `config`File contoh berikut menunjukkan profil default yang disiapkan dengan penyedia token SSO. `sso_session`Pengaturan profil mengacu pada `sso-session` bagian bernama. `sso-session`Bagian ini berisi pengaturan untuk memulai sesi portal AWS akses.

  ```
  [default]
  sso_session = my-sso
  sso_account_id = 111122223333
  sso_role_name = SampleRole
  region = us-east-1
  output = json
  
  [sso-session my-sso]
  sso_region = us-east-1
  sso_start_url = https://provided-domain.awsapps.com/start
  sso_registration_scopes = sso:account:access
  ```

**penting**  
Jika Anda menggunakan AWS IAM Identity Center untuk otentikasi, aplikasi Anda harus mereferensikan NuGet paket-paket berikut agar resolusi SSO dapat berfungsi:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian *runtime*.

## Mulai sesi portal AWS akses
<a name="idc-start-portal"></a>

Sebelum menjalankan aplikasi yang mengakses Layanan AWS, Anda memerlukan sesi portal AWS akses aktif agar SDK menggunakan autentikasi IAM Identity Center untuk menyelesaikan kredensialnya. Bergantung pada panjang sesi yang dikonfigurasi, akses Anda pada akhirnya akan kedaluwarsa dan SDK akan mengalami kesalahan otentikasi. Untuk masuk ke portal AWS akses, jalankan perintah berikut di AWS CLI.

```
aws sso login
```

Karena Anda memiliki pengaturan profil default, Anda tidak perlu memanggil perintah dengan `--profile` opsi. Jika konfigurasi penyedia token SSO Anda menggunakan profil bernama, perintahnya adalah`aws sso login --profile named-profile`.

Untuk menguji apakah Anda sudah memiliki sesi aktif, jalankan AWS CLI perintah berikut.

```
aws sts get-caller-identity
```

Respons terhadap perintah ini harus melaporkan akun IAM Identity Center dan set izin yang dikonfigurasi dalam `config` file bersama.

**catatan**  
Jika Anda sudah memiliki sesi portal AWS akses aktif dan menjalankan`aws sso login`, Anda tidak akan diminta untuk memberikan kredensil.  
Proses masuk mungkin meminta Anda untuk mengizinkan AWS CLI akses ke data Anda. Karena AWS CLI dibangun di atas SDK untuk Python, pesan izin mungkin berisi variasi nama. `botocore`

## Informasi tambahan
<a name="idc-additional-info"></a>
+ Untuk informasi tambahan tentang penggunaan IAM Identity Center dan SSO di lingkungan pengembangan, lihat [Sign-on tunggal](sso.md) di bagian[Autentikasi tingkat lanjut](advanced-auth.md). Informasi ini mencakup metode alternatif dan lebih canggih, serta tutorial yang menunjukkan kepada Anda cara menggunakan metode ini.
+ Untuk opsi lainnya tentang otentikasi SDK, seperti penggunaan profil dan variabel lingkungan, lihat bagian [konfigurasi](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) di Panduan *Referensi Alat AWS SDKs dan Alat*.
+ Untuk mempelajari lebih lanjut tentang praktik terbaik, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) di *Panduan Pengguna IAM*.
+ *Untuk membuat AWS kredensil jangka pendek, lihat [Kredenal Keamanan Sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) di Panduan Pengguna IAM.*
+ Untuk mempelajari tentang penyedia kredensi lainnya, lihat Penyedia kredensi [terstandarisasi di Panduan Referensi](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) Alat *AWS SDKs dan* Alat.

# Membuat aplikasi sederhana menggunakan AWS SDK untuk .NET
<a name="quick-start"></a>

Bagian ini menyediakan tutorial dasar untuk pengembang yang baru mengenal AWS SDK untuk .NET.

**catatan**  
Sebelum Anda menggunakan tutorial ini, Anda harus terlebih dahulu [menginstal toolchain Anda](net-dg-dev-env.md) dan [mengkonfigurasi otentikasi SDK](creds-idc.md).

Untuk informasi tentang mengembangkan perangkat lunak untuk AWS layanan tertentu bersama dengan contoh kode, lihat[ AWS Layanan panggilan](working-with-aws-services.md). Untuk contoh kode tambahan, lihat[SDK untuk .NET (v4) contoh kode](csharp_code_examples.md).

**Topics**
+ [Aplikasi lintas platform sederhana](quick-start-s3-1-cross.md)
+ [Aplikasi berbasis Windows sederhana](quick-start-s3-1-winvs.md)
+ [Langkah selanjutnya](quick-start-next-steps.md)

# Aplikasi lintas platform sederhana menggunakan AWS SDK untuk .NET
<a name="quick-start-s3-1-cross"></a>

Tutorial ini menggunakan AWS SDK untuk .NET dan .NET Core untuk pengembangan lintas platform. Tutorial ini menunjukkan cara menggunakan SDK untuk membuat daftar bucket [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/) yang Anda miliki dan, secara opsional, membuat bucket.

Anda akan melakukan tutorial ini menggunakan alat lintas platform seperti antarmuka baris perintah .NET (CLI). Untuk cara lain untuk mengonfigurasi lingkungan pengembangan Anda, lihat[Menginstal dan mengonfigurasi toolchain Anda untuk AWS SDK untuk .NET](net-dg-dev-env.md).

**Diperlukan untuk pengembangan .NET lintas platform di Windows, Linux, atau macOS:**
+ Microsoft [.NET Core SDK](https://learn.microsoft.com/en-us/dotnet/fundamentals/), versi 2.1, 3.1, atau yang lebih baru, yang mencakup antarmuka baris perintah .NET (CLI) **`dotnet`**() dan runtime .NET Core.
+ Editor kode atau lingkungan pengembangan terintegrasi (IDE) yang sesuai untuk sistem operasi dan persyaratan Anda. Ini biasanya salah satu yang menyediakan beberapa dukungan untuk .NET Core.

  Contohnya termasuk [Microsoft Visual Studio Code (VS Code)](https://code.visualstudio.com/), [JetBrains Rider](https://www.jetbrains.com/rider/), dan [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/).

**catatan**  
Sebelum Anda menggunakan tutorial ini, Anda harus terlebih dahulu [menginstal toolchain Anda](net-dg-dev-env.md) dan [mengkonfigurasi otentikasi SDK](creds-idc.md).

## Langkah-langkah
<a name="s3-1-cross-steps"></a>
+ [Buat proyek](#s3-1-cross-create-project)
+ [Buat kodenya](#s3-1-cross-code)
+ [Jalankan aplikasi](#s3-1-cross-run)
+ [Pembersihan](#s3-1-cross-clean-up)

## Buat proyek
<a name="s3-1-cross-create-project"></a>

1. Buka command prompt atau terminal. Temukan atau buat folder sistem operasi di mana Anda dapat membuat proyek.NET.

1. Dalam folder itu, jalankan perintah berikut untuk membuat proyek.NET.

   ```
   dotnet new console --name S3CreateAndList
   ```

1. Buka `S3CreateAndList` folder yang baru dibuat dan jalankan perintah berikut:

   ```
   dotnet add package AWSSDK.S3
   dotnet add package AWSSDK.SecurityToken
   dotnet add package AWSSDK.SSO
   dotnet add package AWSSDK.SSOOIDC
   ```

   Perintah sebelumnya menginstal NuGet paket dari manajer [NuGet paket](https://www.nuget.org/profiles/awsdotnet). Karena kita tahu persis NuGet paket apa yang kita butuhkan untuk tutorial ini, kita dapat melakukan langkah ini sekarang. Ini juga umum bahwa paket yang diperlukan diketahui selama pengembangan. Ketika ini terjadi, perintah serupa dapat dijalankan pada saat itu.

## Buat kodenya
<a name="s3-1-cross-code"></a>

1. Di `S3CreateAndList` folder, temukan dan buka `Program.cs` di editor kode Anda.

1. Ganti konten dengan kode berikut dan simpan file.

   ```
   using System;
   using System.Threading.Tasks;
   
   // NuGet packages: AWSSDK.S3, AWSSDK.SecurityToken, AWSSDK.SSO, AWSSDK.SSOOIDC
   using Amazon.Runtime;
   using Amazon.Runtime.CredentialManagement;
   using Amazon.S3;
   using Amazon.S3.Model;
   using Amazon.SecurityToken;
   using Amazon.SecurityToken.Model;
   
   namespace S3CreateAndList
   {
       class Program
       {
           // This code is part of the quick tour in the developer guide.
           // See https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/quick-start.html
           // for complete steps.
           // Requirements:
           // - An SSO profile in the SSO user's shared config file with sufficient privileges for
   		//   STS and S3 buckets.
           // - An active SSO Token.
           //    If an active SSO token isn't available, the SSO user should do the following:
           //    In a terminal, the SSO user must call "aws sso login".
   
           // Class members.
           static async Task Main(string[] args)
           {
               // Get SSO credentials from the information in the shared config file.
               // For this tutorial, the information is in the [default] profile.
               var ssoCreds = LoadSsoCredentials("default");
   
               // Display the caller's identity.
               var ssoProfileClient = new AmazonSecurityTokenServiceClient(ssoCreds);
               Console.WriteLine($"\nSSO Profile:\n {await ssoProfileClient.GetCallerIdentityArn()}");
   
               // Create the S3 client is by using the SSO credentials obtained earlier.
               var s3Client = new AmazonS3Client(ssoCreds);
   
               // Parse the command line arguments for the bucket name.
               if (GetBucketName(args, out String bucketName))
               {
                   // If a bucket name was supplied, create the bucket.
                   // Call the API method directly
                   try
                   {
                       Console.WriteLine($"\nCreating bucket {bucketName}...");
                       var createResponse = await s3Client.PutBucketAsync(bucketName);
                       Console.WriteLine($"Result: {createResponse.HttpStatusCode.ToString()}");
                   }
                   catch (Exception e)
                   {
                       Console.WriteLine("Caught exception when creating a bucket:");
                       Console.WriteLine(e.Message);
                   }
               }
   
               // Display a list of the account's S3 buckets.
               Console.WriteLine("\nGetting a list of your buckets...");
               var listResponse = await s3Client.ListBucketsAsync();
               Console.WriteLine($"Number of buckets: {listResponse.Buckets.Count}");
               foreach (S3Bucket b in listResponse.Buckets)
               {
                   Console.WriteLine(b.BucketName);
               }
               Console.WriteLine();
           }
   
           // 
           // Method to parse the command line.
           private static Boolean GetBucketName(string[] args, out String bucketName)
           {
               Boolean retval = false;
               bucketName = String.Empty;
               if (args.Length == 0)
               {
                   Console.WriteLine("\nNo arguments specified. Will simply list your Amazon S3 buckets." +
                     "\nIf you wish to create a bucket, supply a valid, globally unique bucket name.");
                   bucketName = String.Empty;
                   retval = false;
               }
               else if (args.Length == 1)
               {
                   bucketName = args[0];
                   retval = true;
               }
               else
               {
                   Console.WriteLine("\nToo many arguments specified." +
                     "\n\ndotnet_tutorials - A utility to list your Amazon S3 buckets and optionally create a new one." +
                     "\n\nUsage: S3CreateAndList [bucket_name]" +
                     "\n - bucket_name: A valid, globally unique bucket name." +
                     "\n - If bucket_name isn't supplied, this utility simply lists your buckets.");
                   Environment.Exit(1);
               }
               return retval;
           }
   
           //
           // Method to get SSO credentials from the information in the shared config file.
           static AWSCredentials LoadSsoCredentials(string profile)
           {
               var chain = new CredentialProfileStoreChain();
               if (!chain.TryGetAWSCredentials(profile, out var credentials))
                   throw new Exception($"Failed to find the {profile} profile");
               return credentials;
           }
       }
   
       // Class to read the caller's identity.
       public static class Extensions
       {
           public static async Task<string> GetCallerIdentityArn(this IAmazonSecurityTokenService stsClient)
           {
               var response = await stsClient.GetCallerIdentityAsync(new GetCallerIdentityRequest());
               return response.Arn;
           }
       }
   }
   ```

## Jalankan aplikasi
<a name="s3-1-cross-run"></a>

1. Jalankan perintah berikut.

   ```
   dotnet run
   ```

1. Periksa output untuk melihat jumlah ember Amazon S3 yang Anda miliki, jika ada, dan namanya.

1. Pilih nama untuk ember Amazon S3 baru. Gunakan "dotnet-quicktour-s3-1-cross-” sebagai basis dan tambahkan sesuatu yang unik ke dalamnya, seperti GUID atau nama Anda. Pastikan untuk mengikuti aturan untuk nama bucket, seperti yang dijelaskan dalam [Aturan untuk penamaan bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules) di [Panduan Pengguna Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/).

1. Jalankan perintah berikut, ganti *amzn-s3-demo-bucket* dengan nama bucket yang Anda pilih.

   ```
   dotnet run amzn-s3-demo-bucket
   ```

1. Periksa output untuk melihat bucket baru yang telah dibuat.

## Pembersihan
<a name="s3-1-cross-clean-up"></a>

Saat melakukan tutorial ini, Anda membuat beberapa sumber daya yang dapat Anda pilih untuk dibersihkan saat ini.
+ Jika Anda tidak ingin menyimpan bucket yang dibuat aplikasi pada langkah sebelumnya, hapus dengan menggunakan konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)
+ Jika Anda tidak ingin menyimpan proyek .NET Anda, hapus `S3CreateAndList` folder dari lingkungan pengembangan Anda.

## Ke mana harus pergi selanjutnya
<a name="s3-1-cross-next"></a>

Kembali ke [menu tur cepat](quick-start.md) atau langsung ke [akhir tur singkat ini](quick-start-next-steps.md).

# Aplikasi berbasis Windows sederhana menggunakan AWS SDK untuk .NET
<a name="quick-start-s3-1-winvs"></a>

Tutorial ini menggunakan AWS SDK untuk .NET pada Windows dengan Visual Studio dan .NET Core. Tutorial ini menunjukkan cara menggunakan SDK untuk membuat daftar bucket [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/) yang Anda miliki dan secara opsional membuat bucket.

Anda akan melakukan tutorial ini pada Windows menggunakan Visual Studio dan .NET Core. Untuk cara lain untuk mengonfigurasi lingkungan pengembangan Anda, lihat[Menginstal dan mengonfigurasi toolchain Anda untuk AWS SDK untuk .NET](net-dg-dev-env.md).

**Diperlukan untuk pengembangan pada Windows dengan Visual Studio dan .NET Core:**
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/vs/)
+ Microsoft .NET Core 2.1, 3.1 atau yang lebih baru

  Ini biasanya disertakan secara default saat menginstal versi terbaru Visual Studio.

**catatan**  
Sebelum Anda menggunakan tutorial ini, Anda harus terlebih dahulu [menginstal toolchain Anda](net-dg-dev-env.md) dan [mengkonfigurasi otentikasi SDK](creds-idc.md).

## Langkah-langkah
<a name="s3-1-winvs-steps"></a>
+ [Buat proyek](#s3-1-winvs-create-project)
+ [Buat kodenya](#s3-1-winvs-code)
+ [Jalankan aplikasi](#s3-1-winvs-run)
+ [Pembersihan](#s3-1-winvs-clean-up)

## Buat proyek
<a name="s3-1-winvs-create-project"></a>

1. Buka Visual Studio dan buat proyek baru yang menggunakan versi C \$1 dari template **Aplikasi Konsol**; yaitu, dengan deskripsi: “... untuk membuat aplikasi baris perintah yang dapat berjalan di .NET...”. Beri nama proyek`S3CreateAndList`.
**catatan**  
Jangan memilih versi .NET Framework dari template aplikasi konsol, atau, jika Anda melakukannya, pastikan untuk menggunakan .NET Framework 4.7.2 atau yang lebih baru.

1. Dengan proyek yang baru dibuat dimuat, pilih **Tools**, **NuGetPackage Manager**, **Manage NuGet Packages for Solution**.

1. Jelajahi NuGet paket-paket berikut dan instal ke dalam proyek:`AWSSDK.S3`,`AWSSDK.SecurityToken`,`AWSSDK.SSO`, dan `AWSSDK.SSOOIDC`

   Proses ini menginstal NuGet paket dari [manajer NuGet paket](https://www.nuget.org/profiles/awsdotnet). Karena kita tahu persis NuGet paket apa yang kita butuhkan untuk tutorial ini, kita dapat melakukan langkah ini sekarang. Ini juga umum bahwa paket yang diperlukan diketahui selama pengembangan. Ketika ini terjadi, ikuti proses serupa untuk menginstalnya pada saat itu.

1. Jika Anda bermaksud menjalankan aplikasi dari command prompt, buka command prompt sekarang dan navigasikan ke folder yang akan berisi output build. Ini biasanya sesuatu seperti`S3CreateAndList\S3CreateAndList\bin\Debug\net6.0`, tetapi akan tergantung pada lingkungan Anda.

## Buat kodenya
<a name="s3-1-winvs-code"></a>

1. Dalam `S3CreateAndList` proyek, temukan dan buka `Program.cs` di IDE.

1. Ganti konten dengan kode berikut dan simpan file.

   ```
   using System;
   using System.Threading.Tasks;
   
   // NuGet packages: AWSSDK.S3, AWSSDK.SecurityToken, AWSSDK.SSO, AWSSDK.SSOOIDC
   using Amazon.Runtime;
   using Amazon.Runtime.CredentialManagement;
   using Amazon.S3;
   using Amazon.S3.Model;
   using Amazon.SecurityToken;
   using Amazon.SecurityToken.Model;
   
   namespace S3CreateAndList
   {
       class Program
       {
           // This code is part of the quick tour in the developer guide.
           // See https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/quick-start.html
           // for complete steps.
           // Requirements:
           // - An SSO profile in the SSO user's shared config file with sufficient privileges for
   		//   STS and S3 buckets.
           // - An active SSO Token.
           //    If an active SSO token isn't available, the SSO user should do the following:
           //    In a terminal, the SSO user must call "aws sso login".
   
           // Class members.
           static async Task Main(string[] args)
           {
               // Get SSO credentials from the information in the shared config file.
               // For this tutorial, the information is in the [default] profile.
               var ssoCreds = LoadSsoCredentials("default");
   
               // Display the caller's identity.
               var ssoProfileClient = new AmazonSecurityTokenServiceClient(ssoCreds);
               Console.WriteLine($"\nSSO Profile:\n {await ssoProfileClient.GetCallerIdentityArn()}");
   
               // Create the S3 client is by using the SSO credentials obtained earlier.
               var s3Client = new AmazonS3Client(ssoCreds);
   
               // Parse the command line arguments for the bucket name.
               if (GetBucketName(args, out String bucketName))
               {
                   // If a bucket name was supplied, create the bucket.
                   // Call the API method directly
                   try
                   {
                       Console.WriteLine($"\nCreating bucket {bucketName}...");
                       var createResponse = await s3Client.PutBucketAsync(bucketName);
                       Console.WriteLine($"Result: {createResponse.HttpStatusCode.ToString()}");
                   }
                   catch (Exception e)
                   {
                       Console.WriteLine("Caught exception when creating a bucket:");
                       Console.WriteLine(e.Message);
                   }
               }
   
               // Display a list of the account's S3 buckets.
               Console.WriteLine("\nGetting a list of your buckets...");
               var listResponse = await s3Client.ListBucketsAsync();
               Console.WriteLine($"Number of buckets: {listResponse.Buckets.Count}");
               foreach (S3Bucket b in listResponse.Buckets)
               {
                   Console.WriteLine(b.BucketName);
               }
               Console.WriteLine();
           }
   
           // 
           // Method to parse the command line.
           private static Boolean GetBucketName(string[] args, out String bucketName)
           {
               Boolean retval = false;
               bucketName = String.Empty;
               if (args.Length == 0)
               {
                   Console.WriteLine("\nNo arguments specified. Will simply list your Amazon S3 buckets." +
                     "\nIf you wish to create a bucket, supply a valid, globally unique bucket name.");
                   bucketName = String.Empty;
                   retval = false;
               }
               else if (args.Length == 1)
               {
                   bucketName = args[0];
                   retval = true;
               }
               else
               {
                   Console.WriteLine("\nToo many arguments specified." +
                     "\n\ndotnet_tutorials - A utility to list your Amazon S3 buckets and optionally create a new one." +
                     "\n\nUsage: S3CreateAndList [bucket_name]" +
                     "\n - bucket_name: A valid, globally unique bucket name." +
                     "\n - If bucket_name isn't supplied, this utility simply lists your buckets.");
                   Environment.Exit(1);
               }
               return retval;
           }
   
           //
           // Method to get SSO credentials from the information in the shared config file.
           static AWSCredentials LoadSsoCredentials(string profile)
           {
               var chain = new CredentialProfileStoreChain();
               if (!chain.TryGetAWSCredentials(profile, out var credentials))
                   throw new Exception($"Failed to find the {profile} profile");
               return credentials;
           }
       }
   
       // Class to read the caller's identity.
       public static class Extensions
       {
           public static async Task<string> GetCallerIdentityArn(this IAmazonSecurityTokenService stsClient)
           {
               var response = await stsClient.GetCallerIdentityAsync(new GetCallerIdentityRequest());
               return response.Arn;
           }
       }
   }
   ```

1. Bangun aplikasi.
**catatan**  
Jika Anda menggunakan versi Visual Studio yang lebih lama, Anda mungkin mendapatkan error build yang mirip dengan berikut ini:  
“Fitur 'async main' tidak tersedia di C \$1 7.0. Silakan gunakan bahasa versi 7.1 atau lebih tinggi.”  
Jika Anda mendapatkan kesalahan ini, siapkan proyek Anda untuk menggunakan versi bahasa yang lebih baru. Ini biasanya dilakukan di properti proyek, **Build**, **Advanced**.

## Jalankan aplikasi
<a name="s3-1-winvs-run"></a>

1. Jalankan aplikasi tanpa argumen baris perintah. Lakukan ini baik di command prompt (jika Anda membukanya sebelumnya) atau dari IDE.

1. Periksa output untuk melihat jumlah ember Amazon S3 yang Anda miliki, jika ada, dan namanya.

1. Pilih nama untuk ember Amazon S3 baru. Gunakan "dotnet-quicktour-s3-1-winvs-” sebagai basis dan tambahkan sesuatu yang unik ke dalamnya, seperti GUID atau nama Anda. Pastikan untuk mengikuti aturan untuk nama bucket, seperti yang dijelaskan dalam [Aturan untuk Penamaan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules) di [Panduan Pengguna Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/).

1. Jalankan aplikasi lagi, kali ini memasok nama bucket.

   Di baris perintah, ganti *amzn-s3-demo-bucket* perintah berikut dengan nama bucket yang Anda pilih.

   ```
   S3CreateAndList amzn-s3-demo-bucket
   ```

   Atau, jika Anda menjalankan aplikasi di IDE, pilih **Project**, **S3 CreateAndList Properties**, **Debug** dan masukkan nama bucket di sana.

1. Periksa output untuk melihat bucket baru yang telah dibuat.

## Pembersihan
<a name="s3-1-winvs-clean-up"></a>

Saat melakukan tutorial ini, Anda membuat beberapa sumber daya yang dapat Anda pilih untuk dibersihkan saat ini.
+ Jika Anda tidak ingin menyimpan bucket yang dibuat aplikasi pada langkah sebelumnya, hapus dengan menggunakan konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)
+ Jika Anda tidak ingin menyimpan proyek .NET Anda, hapus `S3CreateAndList` folder dari lingkungan pengembangan Anda.

## Ke mana harus pergi selanjutnya
<a name="s3-1-winvs-next"></a>

Kembali ke [menu tur cepat](quick-start.md) atau langsung ke [akhir tur singkat ini](quick-start-next-steps.md).

# Langkah selanjutnya
<a name="quick-start-next-steps"></a>

Pastikan untuk membersihkan sumber daya sisa yang Anda buat saat melakukan tutorial ini. Ini mungkin AWS sumber daya atau sumber daya di lingkungan pengembangan Anda seperti file dan folder.

Sekarang setelah Anda melakukan tur AWS SDK untuk .NET, Anda mungkin ingin [memulai proyek Anda](net-dg-start-new-project.md).