

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

# Menggunakan platform Elastic Beanstalk .NET Windows
<a name="create_deploy_NET.container.console"></a>

Topik ini menjelaskan cara mengkonfigurasi, membangun, dan menjalankan aplikasi web ASP.NET dan .NET Core Windows Anda di Elastic Beanstalk.

AWS Elastic Beanstalk mendukung sejumlah platform untuk berbagai versi kerangka pemrograman .NET dan Windows Server. Lihat [.NET di Windows Server dengan IIS](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net) di dokumen *Platform AWS Elastic Beanstalk * untuk daftar yang lengkap.

Elastic [Beanstalk menyediakan](command-options.md) opsi konfigurasi yang dapat Anda gunakan untuk menyesuaikan perangkat lunak yang berjalan EC2 pada instance di lingkungan Elastic Beanstalk Anda. Anda dapat mengonfigurasi variabel lingkungan yang dibutuhkan oleh aplikasi Anda, mengaktifkan rotasi log ke Amazon S3, dan mengatur pengaturan kerangka kerja .NET.

Opsi konfigurasi tersedia di konsol Elastic Beanstalk untuk [memodifikasi konfigurasi dari lingkungan yang sedang berjalan](environment-configuration-methods-after.md). Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan [konfigurasi tersimpan](environment-configuration-savedconfig.md) untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.

Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan [file konfigurasi](ebextensions.md). Pengaturan di file konfigurasi diterapkan setiap kali Anda membuat lingkungan atau men-deploy aplikasi Anda. Anda juga dapat menggunakan file konfigurasi untuk menginstal paket, menjalankan penulisan, dan melakukan operasi penyesuaian instans lainnya selama deployment.

Pengaturan yang diterapkan di konsol Elastic Beanstalk mengganti pengaturan yang sama di file konfigurasi, jika ada. Hal tersebut memungkinkan Anda memiliki pengaturan default di file konfigurasi, dan mengganti keduanya dengan pengaturan khusus lingkungan di konsol tersebut. Untuk informasi selengkapnya tentang yang diutamakan, dan metode lain untuk mengubah pengaturan, lihat [Opsi konfigurasi](command-options.md).

## Mengonfigurasi lingkungan .NET Anda di konsol Elastic Beanstalk
<a name="dotnet-console"></a>

Anda dapat menggunakan konsol Elastic Beanstalk untuk mengaktifkan rotasi log ke Amazon S3, mengonfigurasi variabel yang dapat dibaca aplikasi dari lingkungan, dan mengubah pengaturan kerangka kerja .NET.

**Untuk mengonfigurasi lingkungan .NET Anda di konsol Elastic Beanstalk**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

### Opsi kontainer
<a name="dotnet-console-framework"></a>
+ **Target waktu aktif .NET** – Atur ke `2.0` untuk menjalankan CLR v2.
+ **Aktifkan aplikasi 32-bit** – Atur ke `True` untuk menjalankan aplikasi 32-bit.

### Opsi log
<a name="dotnet-console-logs"></a>

Bagian Opsi Log memiliki dua pengaturan:
+ **Profil instans** – Menentukan profil instans yang memiliki izin untuk mengakses bucket Amazon S3 yang terkait dengan aplikasi Anda.
+ **Aktifkan rotasi file log ke Amazon S3** — Menentukan apakah file log untuk EC2 instans Amazon aplikasi Anda disalin ke bucket Amazon S3 yang terkait dengan aplikasi Anda.

### Properti lingkungan
<a name="dotnet-console-properties"></a>

Bagian **Properti Lingkungan** memungkinkan Anda menentukan pengaturan konfigurasi lingkungan pada EC2 instance Amazon yang menjalankan aplikasi Anda. Pengaturan ini diteruskan sebagai pasangan nilai kunci ke aplikasi. Gunakan `System.GetEnvironmentVariable` untuk membacanya. Kunci identik dapat ada di kedua `web.config` dan sebagai properti lingkungan. Gunakan namespace `System.Configuration` untuk membaca nilai-nilai dari `web.config`.

```
NameValueCollection appConfig = ConfigurationManager.AppSettings;
string endpoint = appConfig["API_ENDPOINT"];
```

Lihat [Variabel lingkungan dan pengaturan perangkat lunak lainnya](environments-cfg-softwaresettings.md) untuk informasi selengkapnya.

## Namespace aws:elasticbeanstalk:container:dotnet:apppool
<a name="dotnet-namespaces"></a>

Anda dapat menggunakan [file konfigurasi](ebextensions.md) untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa [platform khusus](command-options-specific.md) atau berlaku untuk [semua platform di layanan](command-options-general.md) Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam *ruang nama*.

Platform .NET menentukan opsi di namespace `aws:elasticbeanstalk:container:dotnet:apppool` yang dapat Anda gunakan untuk mengonfigurasi waktu aktif .NET.

File konfigurasi contoh berikut menunjukkan pengaturan untuk masing-masing opsi yang tersedia di namespace ini:

**Example .ebextensions/go-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:container:dotnet:apppool:
    Target Runtime: 2.0
    Enable 32-bit Applications: True
```

Elastic Beanstalk memberikan banyak opsi konfigurasi untuk menyesuaikan lingkungan Anda. Selain file konfigurasi, Anda juga dapat mengatur opsi konfigurasi menggunakan konsol tersebut, konfigurasi tersimpan, EB CLI, atau AWS CLI. Lihat [Opsi konfigurasi](command-options.md) untuk informasi selengkapnya.

# Migrasi di versi utama dari platform server Elastic Beanstalk Windows
<a name="dotnet-v2migration"></a>

AWS Elastic Beanstalk telah memiliki beberapa versi utama dari platform Windows Server-nya. Halaman ini mencakup perbaikan utama untuk setiap versi utama, dan hal yang harus dipertimbangkan sebelum Anda memigrasi ke versi yang lebih baru.

Platform Windows Server saat ini di versi 2 (v2). Jika aplikasi Anda menggunakan versi platform Windows Server sebelum versi v2, kami sarankan Anda bermigrasi ke v2.

## Apa yang baru di versi utama platform server Windows
<a name="dotnet-v2migration.diffs"></a>

### Platform server Windows V2
<a name="dotnet-v2migration.diffs.v2"></a>

Versi 2 (v2) platform Elastic Beanstalk Windows Server [dirilis pada bulan Februari 2019](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2019-02-21-windows-v2.html). V2 membawa perilaku platform Windows Server lebih dekat dengan platform Elastic Beanstalk berbasis Linux dalam beberapa cara penting. V2 sepenuhnya kompatibel dengan v1, membuat migrasi dari v1 mudah.

Platform Windows Server sekarang mendukung hal berikut:
+ *Versioning* – Setiap rilis mendapat nomor versi baru, dan Anda dapat mengacu ke versi sebelumnya (yang masih tersedia untuk Anda) saat membuat dan mengelola lingkungan.
+ *Peningkatan kondisi* – Untuk detailnya, lihat [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md).
+ Deployment *Tetap* dan *Bergulir dengan Batch Tambahan* – Untuk detail tentang kebijakan deployment, lihat [Men-deploy aplikasi ke lingkungan Elastic Beanstalk](using-features.deploy-existing-version.md).
+ *Pembaruan tetap* – Untuk detail tentang tipe pembaruan, lihat [Perubahan konfigurasi](environments-updating.md).
+ *Pembaruan platform terkelola* – Untuk detailnya, lihat [Pembaruan platform yang dikelola](environment-platform-update-managed.md).

**catatan**  
Fitur deployment dan pembaruan baru tergantung pada peningkatan kondisi. Aktifkan peningkatan kondisi untuk menggunakannya. Untuk detailnya, lihat [Mengaktifkan pelaporan kondisi yang ditingkatkan Elastic Beanstalk](health-enhanced-enable.md).

### Platform server Windows V1
<a name="dotnet-v2migration.diffs.v1"></a>

Versi 1.0.0 (v1) platform Elastic Beanstalk Windows Server dirilis pada bulan Oktober 2015. Versi ini mengubah urutan tempat Elastic Beanstalk memproses perintah di [file konfigurasi](ebextensions.md) selama pembuatan dan pembaruan lingkungan.

Versi platform sebelumnya tidak memiliki nomor versi di nama tumpukan solusi:
+ 64bit Windows Server 2012 R2 menjalankan IIS 8.5
+ 64bit Windows Server Core 2012 R2 menjalankan IIS 8.5
+ 64bit Windows Server 2012 menjalankan IIS 8
+ 64bit Windows Server 2008 R2 menjalankan IIS 7.5

Di versi sebelumnya, urutan pemrosesan file konfigurasi tidak konsisten. Selama pembuatan lingkungan, `Container Commands` yang menjalankan sumber aplikasi di-deploy ke IIS. Selama deployment ke lingkungan berjalan, perintah kontainer dijalankan sebelum versi baru di-deploy. Selama menaikkan skala, file konfigurasi tidak diproses sama sekali.

Selain itu, IIS dimulai sebelum perintah kontainer berjalan. Perilaku ini menyebabkan beberapa pelanggan untuk menerapkan solusi di kontainer perintah, menghentikan server IIS sebelum menjalankan perintah, dan memulai lagi setelah mereka selesai.

Versi 1 memperbaiki ketidakkonsistenan dan membawa perilaku platform Windows Server lebih dekat dengan platform Elastic Beanstalk berbasis Linux. Di platform v1, Elastic Beanstalk selalu menjalankan kontainer perintah sebelum memulai server IIS.

Tumpukan solusi platform v1 memiliki `v1` setelah versi Windows Server:
+ 64bit Windows Server 2012 R2 v1.1.0 menjalankan IIS 8.5
+ 64bit Windows Server Core 2012 R2 v1.1.0 menjalankan IIS 8.5
+ 64bit Windows Server 2012 v1.1.0 menjalankan IIS 8
+ 64bit Windows Server 2008 R2 v1.1.0 menjalankan IIS 7.5

Selain itu, platform v1 mengekstrak isi paket sumber aplikasi Anda ke `C:\staging\` sebelum menjalankan kontainer perintah. Setelah kontainer perintah selesai, isi folder ini dikompresi ke dalam file .zip dan di-deploy ke IIS. Alur kerja ini mengizinkan Anda untuk memodifikasi isi paket sumber aplikasi Anda dengan perintah atau tulisan sebelum deployment.

## Migrasi dari versi utama sebelumnya dari platform server Windows
<a name="dotnet-v2migration.migration"></a>

Baca bagian ini untuk pertimbangan migrasi sebelum memperbarui lingkungan. Untuk memperbarui platform lingkungan Anda ke versi yang lebih baru, lihat [Memperbarui versi platform lingkungan Elastic Beanstalk Anda](using-features.platform.upgrade.md).

### Dari V1 ke V2
<a name="dotnet-v2migration.migration.fromv1"></a>

Platform Windows Server v2 tidak mendukung .NET Core 1.x dan 2.0. Jika Anda memigrasi aplikasi Anda dari Windows Server v1 ke v2, dan aplikasi Anda menggunakan salah satu versi .NET Core ini, perbarui aplikasi Anda ke versi .NET Core yang didukung v2. Untuk daftar versi yang didukung, lihat [.NET di Windows Server dengan IIS](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net) di *Platform AWS Elastic Beanstalk *.

Jika aplikasi Anda menggunakan Amazon Machine Image (AMI) khusus, buat AMI khusus baru berdasarkan platform Windows Server v2 AMI. Untuk pelajari selengkapnya, lihat [Menggunakan image mesin Amazon kustom (AMI) di lingkungan Elastic Beanstalk Anda](using-features.customenv.md).

**catatan**  
Fitur deployment dan pembaruan yang baru bagi Windows Server v2 bergantung pada peningkatan kondisi. Ketika Anda memigrasi lingkungan ke v2, peningkatan kondisi dinonaktifkan. Aktifkan untuk menggunakan fitur ini. Untuk detailnya, lihat [Mengaktifkan pelaporan kondisi yang ditingkatkan Elastic Beanstalk](health-enhanced-enable.md).

### Dari pre-V1
<a name="dotnet-v2migration.migration.fromv0"></a>

Selain pertimbangan untuk migrasi dari v1, jika Anda memigrasi aplikasi Anda dari tumpukan solusi Windows Server sebelum versi v1, dan Anda saat ini menggunakan kontainer perintah, hapus perintah yang ditambahkan untuk mengatasi masalah sekitar ketidakkonsistenan pengolahan ketika Anda bermigrasi ke versi yang lebih baru. Dimulai dengan v1, kontainer perintah dijamin untuk berjalan sepenuhnya sebelum sumber aplikasi yang di-deploy dan sebelum IIS dimulai. Hal ini memungkinkan Anda untuk membuat perubahan ke sumber di `C:\staging` dan memodifikasi file konfigurasi IIS selama langkah ini tanpa masalah.

Misalnya, Anda dapat menggunakan file AWS CLI untuk mengunduh file DLL ke sumber aplikasi Anda dari Amazon S3:

`.ebextensions\copy-dll.config`

```
container_commands:
  copy-dll:
    command: aws s3 cp s3://amzn-s3-demo-bucket/dlls/large-dll.dll .\lib\
```

Untuk informasi selengkapnya tentang menggunakan file konfigurasi, lihat [Penyesuaian lingkungan lanjutan dengan file konfigurasi (`.ebextensions`)](ebextensions.md).

# Menjalankan beberapa aplikasi dan aplikasi ASP.NET Core dengan manifes deployment
<a name="dotnet-manifest"></a>

Anda dapat menggunakan manifes deployment untuk memberitahu Elastic Beanstalk cara men-deploy aplikasi Anda. Dengan menggunakan metode ini, Anda tidak perlu menggunakan `MSDeploy` untuk menghasilkan paket sumber untuk satu aplikasi ASP.NET yang berjalan di jalur akar situs web Anda. Sebaliknya, Anda dapat menggunakan file manifes untuk menjalankan beberapa aplikasi di jalur yang berbeda. Atau, Anda dapat memberitahu Elastic Beanstalk untuk men-deploy dan menjalankan aplikasi dengan ASP.NET Core. Anda juga dapat menggunakan manifes deployment untuk mengonfigurasi kolam aplikasi tempat aplikasi Anda dijalankan.

Manifes deployment menambahkan dukungan untuk [Aplikasi .NET Core](#dotnet-manifest-dotnetcore) ke Elastic Beanstalk. Anda dapat men-deploy aplikasi .NET Framework tanpa manifes deployment. Namun, aplikasi .NET Core memerlukan manifes deployment untuk berjalan di Elastic Beanstalk. Ketika Anda menggunakan manifes deployment, Anda membuat arsip situs untuk setiap aplikasi, dan kemudian memaketkan arsip situs di arsip ZIP kedua yang berisi manifes deployment.

Manifes deployment juga menambahkan kemampuan untuk [menjalankan beberapa aplikasi di jalur yang berbeda](#dotnet-manifest-multiapp). Manifes deployment mendefinisikan array target deployment, masing-masing dengan arsip situs dan jalur tempat IIS harus menjalankannya. Sebagai contoh, Anda dapat menjalankan API web di jalur `/api` untuk melayani permintaan asinkron, dan aplikasi web di jalur akar yang mengonsumsi API.

Anda dapat menggunakan manifes penerapan untuk [mengonfigurasi situs web IIS dengan binding kustom](#dotnet-manifest-websites) dan jalur fisik. Ini memungkinkan Anda untuk mengatur situs web yang mendengarkan port atau nama host tertentu sebelum menerapkan aplikasi Anda.

Anda juga dapat menggunakan manifes deployment untuk [menjalankan beberapa aplikasi menggunakan kolam aplikasi di IIS atau Kestrel](#dotnet-manifest-apppool). Anda dapat mengonfigurasi kolam aplikasi untuk memulai ulang aplikasi Anda secara berkala, menjalankan aplikasi 32-bit, atau menggunakan versi tertentu dari waktu aktif .NET Framework.

Untuk kustomisasi penuh, Anda dapat [menulis skrip penyebaran Anda sendiri](#dotnet-manifest-custom) di Windows PowerShell dan memberi tahu Elastic Beanstalk skrip mana yang harus dijalankan untuk menginstal, menghapus, dan memulai ulang aplikasi Anda.

Manifes deployment dan fitur terkait memerlukan platform Windows Server [versi 1.2.0 atau lebih baru](dotnet-v2migration.md).

Untuk informasi mendetail tentang semua opsi konfigurasi, properti, dan fitur lanjutan yang tersedia seperti melewatkan penyetelan ulang IIS, lihat referensi skema manifes [penerapan](dotnet-manifest-schema.md).

**Topics**
+ [Aplikasi .NET core](#dotnet-manifest-dotnetcore)
+ [Jalankan beberapa aplikasi](#dotnet-manifest-multiapp)
+ [Konfigurasikan situs web IIS](#dotnet-manifest-websites)
+ [Menggunakan Application Request Routing (ARR)](#dotnet-manifest-arr)
+ [Mengonfigurasi kolam aplikasi](#dotnet-manifest-apppool)
+ [Menentukan deployment khusus](#dotnet-manifest-custom)
+ [Referensi skema manifes penerapan](dotnet-manifest-schema.md)

## Aplikasi .NET core
<a name="dotnet-manifest-dotnetcore"></a>

Anda dapat menggunakan manifes deployment untuk menjalankan aplikasi .NET Core di Elastic Beanstalk. .NET Core adalah versi lintas platform dari .NET yang datang dengan alat baris perintah (`dotnet`). Anda dapat menggunakannya untuk menghasilkan aplikasi, menjalankannya secara lokal, dan menyiapkannya untuk penerbitan.

Untuk menjalankan aplikasi .NET Core di Elastic Beanstalk, Anda dapat menjalankan `dotnet publish` dan paket output di arsip ZIP, tidak termasuk direktori yang berisi. Menempatkan arsip situs di paket sumber dengan manifes deployment dengan target deployment tipe `aspNetCoreWeb`.

Manifes deployment berikut menjalankan aplikasi .NET Core dari arsip situs bernama `dotnet-core-app.zip` di jalur akar.

**Example aws-windows-deployment-manifest.json - .NET inti**  

```
{
  "manifestVersion": 1,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

Paketkan manifes dan arsip situs di arsip ZIP untuk membuat paket sumber.

**Example dotnet-core-bundle.zip**  

```
.
|-- aws-windows-deployment-manifest.json
`-- dotnet-core-app.zip
```

Arsip situs berisi kode aplikasi yang dikompilasi, dependensi, dan file `web.config`.

**Example dotnet-core-app.zip**  

```
.
|-- Microsoft.AspNetCore.Hosting.Abstractions.dll
|-- Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
|-- Microsoft.AspNetCore.Hosting.dll
|-- Microsoft.AspNetCore.Http.Abstractions.dll
|-- Microsoft.AspNetCore.Http.Extensions.dll
|-- Microsoft.AspNetCore.Http.Features.dll
|-- Microsoft.AspNetCore.Http.dll
|-- Microsoft.AspNetCore.HttpOverrides.dll
|-- Microsoft.AspNetCore.Server.IISIntegration.dll
|-- Microsoft.AspNetCore.Server.Kestrel.dll
|-- Microsoft.AspNetCore.WebUtilities.dll
|-- Microsoft.Extensions.Configuration.Abstractions.dll
|-- Microsoft.Extensions.Configuration.EnvironmentVariables.dll
|-- Microsoft.Extensions.Configuration.dll
|-- Microsoft.Extensions.DependencyInjection.Abstractions.dll
|-- Microsoft.Extensions.DependencyInjection.dll
|-- Microsoft.Extensions.FileProviders.Abstractions.dll
|-- Microsoft.Extensions.FileProviders.Physical.dll
|-- Microsoft.Extensions.FileSystemGlobbing.dll
|-- Microsoft.Extensions.Logging.Abstractions.dll
|-- Microsoft.Extensions.Logging.dll
|-- Microsoft.Extensions.ObjectPool.dll
|-- Microsoft.Extensions.Options.dll
|-- Microsoft.Extensions.PlatformAbstractions.dll
|-- Microsoft.Extensions.Primitives.dll
|-- Microsoft.Net.Http.Headers.dll
|-- System.Diagnostics.Contracts.dll
|-- System.Net.WebSockets.dll
|-- System.Text.Encodings.Web.dll
|-- dotnet-core-app.deps.json
|-- dotnet-core-app.dll
|-- dotnet-core-app.pdb
|-- dotnet-core-app.runtimeconfig.json
`-- web.config
```

## Jalankan beberapa aplikasi
<a name="dotnet-manifest-multiapp"></a>

Anda dapat menjalankan beberapa aplikasi menggunakan manifes deployment dengan mendefinisikan beberapa target deployment.

Manifes deployment berikut mengonfigurasi dua aplikasi .NET Core. `WebApiSampleApp`Aplikasi ini mengimplementasikan API web sederhana dan menyajikan permintaan asinkron di jalur. `/api` Aplikasi `DotNetSampleApp` adalah aplikasi web yang melayani permintaan di jalur akar.

**Example aws-windows-deployment-manifest.json - beberapa aplikasi**  

```
{
  "manifestVersion": 1,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "WebAPISample",
        "parameters": {
          "appBundle": "WebApiSampleApp.zip",
          "iisPath": "/api"
        }
      },
      {
        "name": "DotNetSample",
        "parameters": {
          "appBundle": "DotNetSampleApp.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

Aplikasi sampel dengan beberapa aplikasi tersedia di sini:
+ **Bundel sumber yang dapat digunakan** [- -v2.zip dotnet-multiapp-sample-bundle](samples/dotnet-multiapp-sample-bundle-v2.zip)
+ **Kode sumber** - [dotnet-multiapp-sample-source-v2.zip](samples/dotnet-multiapp-sample-source-v2.zip)

## Konfigurasikan situs web IIS
<a name="dotnet-manifest-websites"></a>

Anda dapat mengonfigurasi situs web IIS dengan binding kustom dan jalur fisik menggunakan manifes penerapan. Ini berguna saat Anda perlu menyiapkan situs web yang mendengarkan port tertentu, menggunakan nama host khusus, atau menyajikan konten dari direktori tertentu.

Manifes penerapan berikut mengonfigurasi situs web IIS kustom yang mendengarkan HTTP dengan nomor port tertentu dan jalur fisik khusus:

**Example aws-windows-deployment-manifest.json - Konfigurasi situs web IIS**  

```
{
  "manifestVersion": 1,
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          }
        ]
      }
    ]
  },
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "appBundle": "dotnet-core-app.zip",
          "iisWebSite": "MyCustomSite",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

Dalam contoh ini:
+ Sebuah situs web bernama MyCustomSite "" dibuat dengan jalur fisik khusus
+ Situs web ini memiliki pengikatan HTTP pada port 8080 dengan nama host tertentu
+ Aplikasi ASP.NET Core diterapkan ke situs web khusus ini menggunakan parameter `iisWebSite`

## Menggunakan Application Request Routing (ARR)
<a name="dotnet-manifest-arr"></a>

Modul Application Request Routing (ARR) dan URL Rewrite sudah diinstal sebelumnya dan tersedia di Elastic Beanstalk Windows. AMIs Modul-modul ini memungkinkan skenario routing lanjutan dan manipulasi URL melalui konfigurasi IIS menggunakan ebextensions atau konfigurasi aplikasi.

Contoh berikut menunjukkan manifes penerapan sederhana yang mengonfigurasi situs web dengan port khusus, dikombinasikan dengan konfigurasi ebextensions yang mengatur perutean ARR dasar:

**Example aws-windows-deployment-manifest.json - Pengaturan ARR sederhana**  

```
{
  "manifestVersion": 1,
  "iisConfig": {
    "websites": [
      {
        "name": "ARRSite",
        "physicalPath": "C:\\inetpub\\wwwroot\\arrsite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "localhost"
          }
        ]
      }
    ]
  },
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "BackendApp",
        "parameters": {
          "appBundle": "backend-app.zip",
          "iisWebSite": "ARRSite",
          "iisPath": "/backend"
        }
      }
    ]
  }
}
```

Konfigurasi ARR dilakukan melalui ebextensions. Konfigurasi berikut mengatur aturan perutean ARR dasar:

**Example .ebextensions/arr-config.config - Konfigurasi ARR dasar**  

```
files:
  "C:\\temp\\configure-arr.ps1":
    content: |
      # Enable ARR proxy at server level
      Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/proxy' -Name 'enabled' -Value 'True'
      
      # Clear any existing global rules to avoid conflicts
      Clear-WebConfiguration -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/rewrite/globalRules'

      # Add global rule to route all requests to backend
      Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' `
        -Filter 'system.webServer/rewrite/globalRules' `
        -Name '.' `
        -Value @{
          name = 'Route_to_Backend'
          stopProcessing = 'True'
          match = @{ url = '^(?!backend/)(.*)' }
          action = @{
            type = 'Rewrite'
            url = 'http://localhost:8080/backend/{R:1}'
          }
        }

container_commands:
  01_configure_arr:
    command: powershell -ExecutionPolicy Bypass -File "C:\\temp\\configure-arr.ps1"
    waitAfterCompletion: 0
```

Konfigurasi ini membuat situs web pada port 8080 dan menyiapkan ARR untuk merutekan semua permintaan yang masuk ke aplikasi backend yang berjalan di situs itu.

## Mengonfigurasi kolam aplikasi
<a name="dotnet-manifest-apppool"></a>

Anda dapat mendukung beberapa aplikasi di lingkungan Windows Anda. Dua pendekatan yang tersedia:
+ Anda dapat menggunakan model out-of-process hosting dengan server web Kestrel. Dengan model ini, Anda mengonfigurasi beberapa aplikasi untuk berjalan dalam satu kolam aplikasi.
+ Anda dapat menggunakan model hosting dalam proses. Dengan model ini, Anda menggunakan beberapa kolam aplikasi untuk menjalankan beberapa aplikasi hanya dengan satu aplikasi di setiap kolam. Jika Anda menggunakan server IIS dan perlu menjalankan beberapa aplikasi, Anda harus menggunakan pendekatan ini.

Untuk mengonfigurasi Kestrel agar menjalankan beberapa aplikasi di satu kolam aplikasi, tambahkan `hostingModel="OutofProcess"` di file `web.config`. Pertimbangkan contoh berikut.

**Example web.config - untuk model hosting Kestrel out-of-process**  

```
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add 
    name="aspNetCore" 
    path="*" verb="*" 
    modules="AspNetCoreModuleV2" 
    resourceType="Unspecified" />
</handlers>
<aspNetCore 
    processPath="dotnet" 
    arguments=".\CoreWebApp-5-0.dll" 
    stdoutLogEnabled="false" 
    stdoutLogFile=".\logs\stdout" 
    hostingModel="OutofProcess" />
</system.webServer>
</location>
</configuration>
```

**Example aws-windows-deployment-manifest.json - beberapa aplikasi**  

```
{
"manifestVersion": 1,
  "deployments": {"msDeploy": [
      {"name": "Web-app1",
        "parameters": {"archive": "site1.zip",
          "iisPath": "/"
        }
      },
      {"name": "Web-app2",
        "parameters": {"archive": "site2.zip",
          "iisPath": "/app2"
        }
      }
    ]
  }
}
```

IIS tidak mendukung beberapa aplikasi dalam di satu kolam aplikasi karena menggunakan model hosting dalam proses. Oleh karena itu, Anda perlu mengonfigurasi beberapa aplikasi dengan menetapkan setiap aplikasi ke satu kolam aplikasi. Dengan kata lain, tetapkan hanya satu aplikasi ke satu kolam aplikasi.

Anda dapat mengonfigurasi IIS untuk menggunakan kolam aplikasi yang berbeda di file `aws-windows-deployment-manifest.json`. Lakukan pembaruan berikut saat Anda merujuk ke file contoh berikutnya:
+ Tambahkan bagian `iisConfig` yang mencakup subbagian yang disebut `appPools`.
+ Di blok `appPools`, buat daftar kolam aplikasi. 
+ Di bagian `deployments`, definisikan sebuah bagian `parameters` untuk setiap aplikasi.
+ Untuk setiap aplikasi bagian `parameters` menentukan sebuah arsip, sebuah jalur untuk menjalankannya, dan sebuah `appPool` tempat untuk menjalankannya.

Manifes deployment berikut mengonfigurasi dua kolam aplikasi yang memulai ulang aplikasi mereka setiap 10 menit. Mereka juga melampirkan aplikasi mereka ke aplikasi web .NET Framework yang berjalan di jalur yang ditentukan.

**Example aws-windows-deployment-manifest.json - satu aplikasi per kumpulan aplikasi**  

```
{
"manifestVersion": 1,
  "iisConfig": {"appPools": [
      {"name": "MyFirstPool",
       "recycling": {"regularTimeInterval": 10}
      },
      {"name": "MySecondPool",
       "recycling": {"regularTimeInterval": 10}
      }
     ]
    },
  "deployments": {"msDeploy": [
      {"name": "Web-app1",
        "parameters": {
           "archive": "site1.zip",
           "iisPath": "/",
           "appPool": "MyFirstPool"
           }
      },
      {"name": "Web-app2",
        "parameters": {
           "archive": "site2.zip",
           "iisPath": "/app2",
           "appPool": "MySecondPool"
          }
      }
     ]
    }
}
```

## Menentukan deployment khusus
<a name="dotnet-manifest-custom"></a>

Untuk kontrol lebih, Anda dapat sepenuhnya menyesuaikan deployment aplikasi dengan mendefinisikan *deployment khusus*.

Manifes penerapan ini menginstruksikan Elastic Beanstalk untuk mengeksekusi skrip dalam mode 32-bit. PowerShell Ini menentukan tiga skrip: `install` script (`siteInstall.ps1`) yang berjalan selama peluncuran dan penerapan instance, `uninstall` script (`siteUninstall.ps1`) yang dijalankan sebelum menginstal versi baru selama penerapan, dan `restart` script (`siteRestart.ps1`) yang berjalan saat Anda memilih [Restart](environments-dashboard-actions.md) App Server di konsol manajemen. AWS 

**Example aws-windows-deployment-manifest.json - penyebaran kustom**  

```
{
  "manifestVersion": 1,
  "deployments": {
    "custom": [
      {
        "name": "Custom site",
        "architecture" : 32,
        "scripts": {
          "install": {
            "file": "siteInstall.ps1"
          },
          "restart": {
            "file": "siteRestart.ps1"
          },
          "uninstall": {
            "file": "siteUninstall.ps1"
          }
        }
      }
    ]
  }
}
```

Sertakan Artifact yang diperlukan untuk menjalankan aplikasi dalam paket sumber Anda dengan manifes dan penulisan.

**Example C. ustom-site-bundle Zip**  

```
.
|-- aws-windows-deployment-manifest.json
|-- siteInstall.ps1
|-- siteRestart.ps1
|-- siteUninstall.ps1
`-- site-contents.zip
```

# Referensi skema manifes penerapan
<a name="dotnet-manifest-schema"></a>

Manifes penyebaran adalah file JSON yang mendefinisikan bagaimana Elastic Beanstalk harus menyebarkan dan mengkonfigurasi aplikasi Windows Anda. Bagian ini menyediakan referensi komprehensif untuk semua properti yang didukung dan opsi konfigurasi dalam skema manifes.

## Struktur manifes
<a name="dotnet-manifest-schema-structure"></a>

Manifes penerapan mengikuti skema JSON tertentu dengan struktur tingkat atas berikut:

**Example Struktur manifes dasar**  

```
{
  "manifestVersion": 1,
  "skipIISReset": false,
  "iisConfig": {
    "websites": [...],
    "appPools": [...]
  },
  "deployments": {
    "msDeploy": [...],
    "aspNetCoreWeb": [...],
    "custom": [...]
  }
}
```

### Properti tingkat atas
<a name="dotnet-manifest-schema-top-level"></a>

`manifestVersion`(Diperlukan)  
*Jenis*: Angka  
*Default:* 1  
*Nilai yang valid:* 1  
Menentukan versi skema manifes. Saat ini, hanya versi 1 yang didukung.

`skipIISReset` (opsional)  
*Jenis:* Boolean  
*Default:* false  
Mengontrol apakah IIS disetel ulang selama penerapan aplikasi. Bendera ini memengaruhi keduanya `msDeploy` dan jenis `aspNetCoreWeb` penerapan.  
*Perilaku:*  
+ *Tidak ditentukan atau `false` (default):* Reset IIS dilakukan selama operasi penginstalan, uninstall, dan pembaruan. Ini adalah perilaku tradisional.
+ *`true`:* Reset IIS dilewati selama operasi penerapan.
*Manfaat:*  
+ *Mengurangi waktu henti* - Aplikasi mengalami interupsi layanan yang lebih pendek selama penerapan.
+ *Penerapan yang lebih cepat* — Menghilangkan waktu yang diperlukan IIS untuk memulai ulang dan menginisialisasi ulang sepenuhnya.
Saat menggunakan`skipIISReset`, [RestartAppServer](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html)operasi melakukan reset IIS terlepas dari pengaturan bendera ini.
*Contoh:*  

```
{
  "manifestVersion": 1,
  "skipIISReset": true,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

`deployments`(Diperlukan)  
*Jenis:* Objek  
Berisi konfigurasi penerapan untuk aplikasi Anda. Objek ini dapat mencakup`msDeploy`,`aspNetCoreWeb`, dan jenis `custom` penyebaran.

`iisConfig` (opsional)  
*Jenis:* Objek  
Mendefinisikan pengaturan konfigurasi IIS untuk diterapkan sebelum menerapkan aplikasi. Mendukung konfigurasi situs web dan kumpulan aplikasi.

## Konfigurasi IIS
<a name="dotnet-manifest-schema-iis-config"></a>

`iisConfig`Bagian ini memungkinkan Anda untuk mengkonfigurasi pengaturan IIS sebelum menerapkan aplikasi Anda. Ini termasuk menyiapkan kumpulan aplikasi dengan konfigurasi khusus dan mengonfigurasi situs web IIS dengan binding khusus.

### Situs web IIS
<a name="dotnet-manifest-schema-websites"></a>

Situs web IIS memungkinkan Anda mengonfigurasi pengaturan situs web khusus termasuk jalur fisik dan binding jaringan sebelum menerapkan aplikasi Anda.

**Pertimbangan penting untuk membuat situs web IIS yang berbeda**  
*Urutan penyiapan situs web:* Situs web dikonfigurasi secara berurutan sesuai urutan kemunculannya dalam array. `websites` Platform memproses setiap konfigurasi situs web secara berurutan, jadi pastikan pemesanan yang tepat jika Anda memiliki ketergantungan antar situs web.
*Firewall dan akses port:* Hanya port 80 yang secara otomatis diekspos melalui konfigurasi firewall Elastic Beanstalk Windows default. Jika Anda mengonfigurasi situs web untuk menggunakan port non-standar, Anda harus menentukan aturan firewall khusus melalui ebextensions atau skrip penerapan khusus untuk memungkinkan akses eksternal ke port ini.

**Example Konfigurasi situs web**  

```
{
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          },
          {
            "protocol": "https",
            "port": 8443
          }
        ]
      }
    ]
  }
}
```Properti situs web

`name`(Diperlukan)  
*Tipe*: String  
Nama situs web IIS. Nama ini digunakan untuk mengidentifikasi situs web di Manajer IIS dan harus unik dalam konfigurasi IIS.

`physicalPath`(Diperlukan)  
*Tipe*: String  
Jalur fisik di server tempat file situs web disimpan. Jalur ini harus dapat diakses oleh proses pekerja IIS.

`bindings`(Diperlukan)  
*Tipe*: Array  
*Item minimum:* 1  
Array konfigurasi pengikatan yang menentukan bagaimana situs web merespons permintaan jaringan. Setiap pengikatan menentukan protokol, port, dan nama host opsional.

#### Binding situs web
<a name="dotnet-manifest-schema-bindings"></a>

Binding situs web menentukan titik akhir jaringan tempat situs web IIS Anda akan mendengarkan permintaan yang masuk.

`protocol`(Diperlukan)  
*Tipe*: String  
*Nilai yang valid:* “http”, “https”  
Protokol yang digunakan untuk mengikat.

`port`(Diperlukan)  
*Tipe*: Integer  
*Rentang yang valid: 1-65535*  
Nomor port tempat situs web akan mendengarkan permintaan.

`hostName` (opsional)  
*Tipe*: String  
Nama host (nama domain) untuk pengikatan.

### Kolam aplikasi
<a name="dotnet-manifest-schema-app-pools"></a>

Kumpulan aplikasi menyediakan isolasi antar aplikasi dan memungkinkan Anda mengonfigurasi pengaturan runtime untuk grup aplikasi.

**Example Konfigurasi kolam aplikasi**  

```
{
  "iisConfig": {
    "appPools": [
      {
        "name": "MyAppPool",
        "enable32Bit": false,
        "managedPipelineMode": "Integrated",
        "managedRuntimeVersion": "v4.0",
        "queueLength": 1000,
        "cpu": {
          "limitPercentage": 80,
          "limitAction": "Throttle",
          "limitMonitoringInterval": 5
        },
        "recycling": {
          "regularTimeInterval": 1440,
          "requestLimit": 10000,
          "memory": 1048576,
          "privateMemory": 524288
        }
      }
    ]
  }
}
```Properti kolam aplikasi

`name`(Diperlukan)  
*Tipe*: String  
Nama kolam aplikasi. Nama ini digunakan untuk mereferensikan kumpulan dalam konfigurasi penerapan.

`enable32Bit` (opsional)  
*Jenis:* Boolean  
Memungkinkan aplikasi 32-bit untuk berjalan pada versi 64-bit Windows. Setel ke aplikasi `true` lama yang membutuhkan kompatibilitas 32-bit.

`managedPipelineMode` (opsional)  
*Tipe*: String  
*Nilai yang valid:* “Terintegrasi”, “Klasik”  
Menentukan modus permintaan-pemrosesan untuk kumpulan aplikasi.

`managedRuntimeVersion` (opsional)  
*Tipe*: String  
*Nilai yang valid:* “Tidak Ada Kode Terkelola”, “v2.0", “v4.0"  
Menentukan versi.NET Framework untuk kolam aplikasi.

`queueLength` (opsional)  
*Tipe*: Integer  
Jumlah maksimum permintaan yang HTTP.sys antrian untuk kumpulan aplikasi sebelum menolak permintaan tambahan.

#### Konfigurasi CPU
<a name="dotnet-manifest-schema-cpu-config"></a>

`cpu`Objek mengonfigurasi batas penggunaan CPU dan pemantauan untuk kumpulan aplikasi.

`limitPercentage` (opsional)  
*Jenis*: Angka  
Persentase maksimum waktu CPU yang dapat dikonsumsi oleh proses pekerja di kumpulan aplikasi.

`limitAction` (opsional)  
*Tipe*: String  
*Nilai yang valid:* "NoAction“, “KillW3wp”, “Throttle”, "” ThrottleUnderLoad  
Tindakan yang harus diambil ketika batas CPU tercapai.

`limitMonitoringInterval` (opsional)  
*Jenis*: Angka  
Atur ulang periode (dalam menit) untuk pemantauan CPU dan batas pelambatan.

#### Konfigurasi daur ulang
<a name="dotnet-manifest-schema-recycling-config"></a>

`recycling`Objek mengonfigurasi kapan dan bagaimana proses pekerja kumpulan aplikasi didaur ulang.

`regularTimeInterval` (opsional)  
*Tipe*: Integer  
Interval waktu (dalam menit) setelah itu kolam aplikasi didaur ulang. Setel ke 0 untuk menonaktifkan daur ulang berbasis waktu.

`requestLimit` (opsional)  
*Tipe*: Integer  
Jumlah maksimum permintaan yang diproses kumpulan aplikasi sebelum didaur ulang.

`memory` (opsional)  
*Tipe*: Integer  
Jumlah memori virtual (dalam kilobyte) yang memicu daur ulang proses pekerja.

`privateMemory` (opsional)  
*Tipe*: Integer  
Jumlah memori pribadi (dalam kilobyte) yang memicu daur ulang proses pekerja.

## Jenis deployment
<a name="dotnet-manifest-schema-deployments"></a>

`deployments`Objek berisi array konfigurasi penerapan untuk berbagai jenis aplikasi. Setiap jenis penerapan memiliki properti dan kasus penggunaan tertentu.

### MSDeploy penyebaran
<a name="dotnet-manifest-schema-msdeploy"></a>

MSDeploy deployment digunakan untuk aplikasi.NET Framework tradisional yang dapat digunakan menggunakan Web Deploy (). MSDeploy

**Example MSDeploy konfigurasi penerapan**  

```
{
  "deployments": {
    "msDeploy": [
      {
        "name": "WebApp",
        "description": "Main web application",
        "parameters": {
          "appBundle": "webapp.zip",
          "iisPath": "/",
          "appPool": "DefaultAppPool"
        }
      }
    ]
  }
}
```MSDeploy properti penyebaran

`name`(Diperlukan)  
*Tipe*: String  
Nama unik untuk penyebaran. Nama ini harus unik di semua penerapan dalam manifes.

`description` (opsional)  
*Tipe*: String  
Deskripsi penyebaran yang dapat dibaca manusia.

`parameters`(Diperlukan)  
*Jenis:* Objek  
Parameter konfigurasi untuk MSDeploy operasi.

`scripts` (opsional)  
*Jenis:* Objek  
PowerShell skrip untuk dijalankan pada berbagai tahap siklus hidup penerapan.

#### MSDeploy parameter
<a name="dotnet-manifest-schema-msdeploy-parameters"></a>

`appBundle`(Diperlukan)  
*Tipe*: String  
Path ke bundel aplikasi (file ZIP) relatif terhadap file manifes. Bundel ini berisi file aplikasi untuk menyebarkan.

`iisWebSite` (opsional)  
*Tipe*: String  
*Default:* “Situs Web Default”  
Situs web IIS untuk menyebarkan aplikasi ke. Secara default, aplikasi dikerahkan ke “Situs Web Default”. Secara opsional, Anda dapat menentukan nama situs web yang berbeda, seperti yang dikonfigurasi di `iisConfig.websites` bagian.

`iisPath` (opsional)  
*Tipe*: String  
*Default:* “/”  
Jalur direktori virtual di IIS tempat aplikasi akan digunakan. Gunakan “/” untuk jalur root atau “/api” untuk subdirektori.

`appPool` (opsional)  
*Tipe*: String  
Nama kumpulan aplikasi untuk menjalankan aplikasi ini.

### Penerapan ASP.NET Core
<a name="dotnet-manifest-schema-aspnetcore"></a>

Penerapan ASP.NET Core dirancang khusus untuk aplikasi.NET Core dan .NET 5\$1.

**Example Konfigurasi penerapan ASP.NET Core**  

```
{
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "CoreAPI",
        "description": "ASP.NET Core Web API",
        "parameters": {
          "appBundle": "coreapi.zip",
          "iisPath": "/api",
          "appPool": "CoreAppPool"
        }
      }
    ]
  }
}
```

Penerapan ASP.NET Core menggunakan struktur properti yang sama dengan MSDeploy penerapan, dengan perbedaan utamanya adalah lingkungan runtime dan model hosting yang digunakan untuk aplikasi.Parameter penyebaran ASP.NET Core

`appBundle`(Diperlukan)  
*Tipe*: String  
Path ke bundel aplikasi relatif terhadap file manifes. Ini bisa berupa arsip ZIP atau jalur direktori yang berisi aplikasi ASP.NET Core yang diterbitkan.

`iisWebSite` (opsional)  
*Tipe*: String  
*Default:* “Situs Web Default”  
Situs web IIS untuk menyebarkan aplikasi ASP.NET Core ke. Secara default, aplikasi dikerahkan ke “Situs Web Default”. Secara opsional, Anda dapat menentukan nama situs web yang berbeda, seperti yang dikonfigurasi di `iisConfig.websites` bagian.

`iisPath` (opsional)  
*Tipe*: String  
*Default:* “/”  
Jalur direktori virtual di IIS untuk aplikasi ASP.NET Core.

`appPool` (opsional)  
*Tipe*: String  
Kumpulan aplikasi untuk aplikasi ASP.NET Core. Pool akan dikonfigurasi dengan tepat untuk hosting ASP.NET Core.

### Penerapan kustom
<a name="dotnet-manifest-schema-custom"></a>

Penerapan khusus memberikan kontrol penuh atas proses penyebaran melalui skrip. PowerShell Jenis penerapan ini berguna untuk skenario kompleks yang memerlukan instalasi, konfigurasi, atau logika penerapan khusus.

**Example Konfigurasi penerapan kustom**  

```
{
  "deployments": {
    "custom": [
      {
        "name": "CustomService",
        "description": "Custom Windows service deployment",
        "architecture": 32,
        "scripts": {
          "install": {
            "file": "install-service.ps1"
          },
          "restart": {
            "file": "restart-service.ps1"
          },
          "uninstall": {
            "file": "uninstall-service.ps1",
            "ignoreErrors": true
          }
        }
      }
    ]
  }
}
```Properti penyebaran kustom

`name`(Diperlukan)  
*Tipe*: String  
Nama unik untuk penerapan kustom.

`description` (opsional)  
*Tipe*: String  
Deskripsi penerapan kustom.

`architecture` (opsional)  
*Tipe*: Integer  
*Default:* 32  
*Nilai yang valid:* 32, 64  
Spesifikasi arsitektur untuk mode eksekusi skrip PowerShell

`scripts`(Diperlukan)  
*Jenis:* Objek  
PowerShell skrip yang menentukan perilaku penerapan. Penerapan khusus mendukung jenis skrip tambahan dibandingkan dengan jenis penerapan lainnya.

## Skrip penyebaran
<a name="dotnet-manifest-schema-scripts"></a>

Skrip penerapan adalah PowerShell skrip yang berjalan pada titik-titik tertentu selama siklus hidup penerapan. Jenis penyebaran yang berbeda mendukung kumpulan peristiwa skrip yang berbeda.

### Acara skrip
<a name="dotnet-manifest-schema-script-events"></a>

Peristiwa skrip berikut tersedia tergantung pada jenis penerapan:Skrip penerapan standar (MSDeploy dan Web) aspNetCore

`preInstall`  
Berjalan sebelum aplikasi diinstal atau diperbarui.

`postInstall`  
Berjalan setelah aplikasi diinstal atau diperbarui.

`preRestart`  
Berjalan sebelum aplikasi dimulai ulang.

`postRestart`  
Berjalan setelah aplikasi dimulai ulang.

`preUninstall`  
Berjalan sebelum aplikasi dihapus.

`postUninstall`  
Berjalan setelah aplikasi dihapus.Skrip penerapan khusus (hanya penerapan khusus)

`install`  
Skrip instalasi utama untuk penerapan kustom. Skrip ini bertanggung jawab untuk menginstal aplikasi atau layanan.

`restart`  
Script untuk me-restart aplikasi atau layanan. Disebut ketika lingkungan dimulai ulang.

`uninstall`  
Script untuk menghapus instalasi aplikasi atau layanan. Dipanggil selama penghentian lingkungan atau penghapusan aplikasi.

### Properti skrip
<a name="dotnet-manifest-schema-script-properties"></a>

Setiap skrip didefinisikan sebagai objek dengan properti berikut:

`file`(Diperlukan)  
*Tipe*: String  
Path ke file PowerShell skrip relatif terhadap file manifes. Script harus memiliki `.ps1` ekstensi.

`ignoreErrors` (opsional)  
*Jenis:* Boolean  
*Default:* false  
Saat disetel ke`true`, penerapan berlanjut meskipun skrip gagal. Gunakan ini untuk skrip non-kritis atau operasi pembersihan.

**Example Contoh konfigurasi skrip**  

```
{
  "scripts": {
    "preInstall": {
      "file": "backup-config.ps1",
      "ignoreErrors": true
    },
    "postInstall": {
      "file": "configure-app.ps1"
    }
  }
}
```

# Menggunakan Peluncuran EC2 Cepat dengan cabang platform Windows
<a name="dotnet-ec2fastlaunch"></a>

Fitur Peluncuran EC2 Cepat mengurangi waktu peluncuran instans Windows di lingkungan Elastic Beanstalk Anda. Tujuan dari topik ini adalah untuk memandu Anda menggunakan fitur ini dengan lingkungan Elastic Beanstalk Anda. Dimulai dengan platform Windows versi 2.16.2, dirilis pada [22 Januari 2025,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-01-22-windows.html) rilis platform Elastic Beanstalk menyertakan basis dengan Peluncuran Cepat diaktifkan. AMIs EC2 

## Ketersediaan Peluncuran EC2 Cepat Default
<a name="dotnet-ec2fastlaunch-default"></a>

Versi platform Elastic Beanstalk Windows terbaru AMIs menyertakan EC2 basis dengan Peluncuran Cepat diaktifkan secara otomatis, tanpa biaya tambahan. Namun, ketika versi platform yang lebih baru dirilis, Peluncuran EC2 Cepat mungkin tidak tetap diaktifkan secara otomatis berdasarkan AMIs versi platform yang lebih lama.

Kami merekomendasikan untuk meningkatkan ke versi platform Windows terbaru untuk menggunakan basis AMIs dengan Peluncuran EC2 Cepat diaktifkan secara otomatis. Namun, jika Anda perlu terus menggunakan versi platform yang ada, Anda dapat mengaktifkan Peluncuran EC2 Cepat secara manual di AMI dasar lingkungan Anda. Untuk petunjuk, lihat [Mengkonfigurasi Peluncuran EC2 Cepat secara manual](#dotnet-ec2fastlaunch-manual).

## Mengkonfigurasi Peluncuran EC2 Cepat secara manual
<a name="dotnet-ec2fastlaunch-manual"></a>

**catatan**  
Mengaktifkan Peluncuran EC2 Cepat secara manual dapat menimbulkan biaya tambahan dibandingkan dengan menggunakan versi platform dengan Peluncuran EC2 Cepat diaktifkan secara otomatis. Untuk informasi selengkapnya tentang biaya Peluncuran EC2 Cepat, lihat halaman [Mengelola biaya untuk Peluncuran EC2 Cepat sumber daya dasar](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/win-fast-launch-manage-costs.html) di *Panduan EC2 Pengguna Amazon*.

Ikuti langkah-langkah ini untuk mengaktifkan Peluncuran EC2 Cepat pada AMI basis Windows yang digunakan oleh lingkungan Elastic Beanstalk Anda:

**Untuk mengaktifkan Peluncuran EC2 Cepat secara manual untuk lingkungan Elastic Beanstalk Anda**

1. Identifikasi AMI dasar lingkungan Anda:

   Ikuti langkah-langkah dalam [Membuat AMI Kustom](using-features.customenv.md) untuk mengidentifikasi ID AMI dasar lingkungan Anda. Perhatikan bahwa Anda tidak perlu membuat AMI khusus - Anda hanya perlu mengikuti langkah-langkah untuk menemukan ID AMI dasar Anda saat ini.

1. Aktifkan Peluncuran EC2 Cepat di AMI:

   Gunakan petunjuk di [Aktifkan Peluncuran EC2 Cepat](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/win-fast-launch-configure.html) di *Panduan EC2 Pengguna Amazon* untuk mengonfigurasi Peluncuran EC2 Cepat untuk AMI Anda.