

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

# Penyebaran Elastic Beanstalk Inti ASP.NET Kustom
<a name="deployment-beanstalk-custom-netcore"></a>

Topik ini menjelaskan cara kerja penerapan dan apa yang dapat Anda lakukan untuk menyesuaikan penerapan saat membuat aplikasi ASP.NET Core dengan Elastic Beanstalk dan Toolkit for Visual Studio.

Setelah Anda menyelesaikan wizard penerapan di Toolkit for Visual Studio, toolkit akan membundel aplikasi dan mengirimkannya ke Elastic Beanstalk. **Langkah pertama Anda dalam membuat bundel aplikasi adalah dengan menggunakan CLI dotnet baru untuk mempersiapkan aplikasi untuk penerbitan dengan menggunakan perintah publish.** Kerangka kerja dan konfigurasi diturunkan dari pengaturan di wizard ke perintah **publish**. Jadi jika Anda memilih **Rilis** untuk `configuration` dan **netcoreapp1.0** untuk`framework`, toolkit akan menjalankan perintah berikut:

 `dotnet publish --configuration Release --framework netcoreapp1.0` 

Saat perintah **publish** selesai, toolkit akan menulis manifes penerapan baru ke dalam folder penerbitan. Manifes penyebaran adalah file JSON bernama **aws-windows-deployment-manifest.json**, yang dibaca oleh wadah Elastic Beanstalk Windows (versi 1.2 atau yang lebih baru) untuk menentukan cara menerapkan aplikasi. Misalnya, untuk aplikasi ASP.NET Core yang ingin Anda gunakan di root IIS, toolkit menghasilkan file manifes yang terlihat seperti ini:

```
{
  "manifestVersion": 1,
  "deployments": {

    "aspNetCoreWeb": [
      {
        "name": "app",
        "parameters": {
          "appBundle": ".",
          "iisPath": "/",
          "iisWebSite": "Default Web Site"
        }
      }
    ]
  }
}
```

`appBundle`Properti menunjukkan di mana bit aplikasi dalam kaitannya dengan file manifes. Properti ini dapat menunjuk ke direktori atau arsip ZIP. `iisWebSite`Properti `iisPath` dan menunjukkan di mana di IIS untuk meng-host aplikasi.

## Menyesuaikan Manifest
<a name="tkv-deploy-beanstalk-custom-netcore-manifest"></a>

Toolkit hanya menulis file manifes jika belum ada di folder penerbitan. Jika file memang ada, toolkit akan memperbarui `iisWebSite` properti`appBundle`, `iisPath` dan di aplikasi pertama yang tercantum di bawah `aspNetCoreWeb` bagian manifes. Ini memungkinkan Anda untuk menambahkan **aws-windows-deployment-manifest.json** ke proyek Anda dan menyesuaikan manifes. **Untuk melakukan ini untuk aplikasi ASP.NET Core Web di Visual Studio tambahkan file JSON baru ke root proyek dan beri nama .json. aws-windows-deployment-manifest**

Manifes harus diberi nama **aws-windows-deployment-manifest.json** dan harus berada di root proyek. Wadah Elastic Beanstalk mencari manifes di root dan jika menemukannya, ia akan memanggil perkakas penerapan. **Jika file tidak ada, wadah Elastic Beanstalk kembali ke perkakas penerapan yang lebih lama, yang mengasumsikan arsip adalah arsip msdeploy.**

Untuk memastikan `publish` perintah CLI dotnet menyertakan manifes, perbarui `project.json` file untuk menyertakan file manifes di bagian include di bawah. `include` `publishOptions`

```
{
   "publishOptions": {
     "include": [
       "wwwroot",
       "Views",
       "Areas/**/Views",
       "appsettings.json",
       "web.config",
       "aws-windows-deployment-manifest.json"
     ]
   }
 }
```

Sekarang setelah Anda mendeklarasikan manifes sehingga disertakan dalam bundel aplikasi, Anda dapat mengonfigurasi lebih lanjut bagaimana Anda ingin menerapkan aplikasi. Anda dapat menyesuaikan penerapan di luar apa yang didukung oleh wizard penerapan. AWS telah mendefinisikan skema JSON untuk **aws-windows-deployment-manifestfile.json**, dan ketika Anda menginstal Toolkit for Visual Studio, penyiapan mendaftarkan URL untuk skema tersebut.

Saat Anda membuka`windows-deployment-manifest.json`, Anda akan melihat URL skema yang dipilih di kotak tarik-turun Skema. Anda dapat menavigasi ke URL untuk mendapatkan deskripsi lengkap tentang apa yang dapat diatur dalam manifes. Dengan skema yang dipilih, Visual Studio akan menyediakan IntelliSense saat Anda mengedit manifes.

Salah satu penyesuaian yang dapat Anda lakukan adalah mengkonfigurasi kumpulan aplikasi IIS di mana aplikasi akan berjalan. Contoh berikut menunjukkan bagaimana Anda dapat menentukan kumpulan Aplikasi IIS (“CustomPool”) yang mendaur ulang proses setiap 60 menit, dan menetapkannya ke aplikasi menggunakan. `"appPool": "customPool"`

```
{
  "manifestVersion": 1,
  "iisConfig": {
    "appPools": [
      {
        "name": "customPool",
        "recycling": {
          "regularTimeInterval": 60
        }
      }
    ]
  },
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "app",
        "parameters": {
          "appPool": "customPool"
        }
      }
    ]
  }
}
```

Selain itu, manifes dapat mendeklarasikan PowerShell skrip Windows untuk dijalankan sebelum dan sesudah tindakan penginstalan, restart, dan hapus instalan. Misalnya, manifes berikut menjalankan PowerShell skrip Windows `PostInstallSetup.ps1` untuk melakukan pekerjaan penyiapan lebih lanjut setelah aplikasi ASP.NET Core dikerahkan ke IIS. Saat menambahkan skrip seperti ini, pastikan skrip ditambahkan ke bagian include di bawah PublisHoptions dalam file, seperti yang Anda lakukan dengan `project.json` file tersebut. `aws-windows-deployment-manifest.json` **Jika tidak, skrip tidak akan disertakan sebagai bagian dari perintah publikasi CLI dotnet.**

```
{
  "manifestVersion": 1,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "app",
        "scripts": {
          "postInstall": {
            "file": "SetupScripts/PostInstallSetup.ps1"
          }
        }
      }
    ]
  }
}
```

## Bagaimana dengan.ebextensions?
<a name="tkv-deploy-beanstalk-custom-netcore-ebextensions"></a>

File konfigurasi Elastic Beanstalk .ebextensions didukung seperti semua wadah **Elastic** Beanstalk lainnya. Untuk menyertakan.ebextensions dalam aplikasi ASP.NET Core, tambahkan `.ebextensions` direktori ke bagian di bawah file. `include` `publishOptions` `project.json` [Untuk informasi lebih lanjut tentang.ebextensions, lihat Panduan Pengembang Elastic Beanstalk.](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)