Khusus ASP.NET Core Elastic Beanstalk deployment - AWS Toolkit dengan Amazon Q

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

Khusus ASP.NET Core Elastic Beanstalk deployment

Topik ini menjelaskan bagaimana penyebaran bekerja dan apa yang dapat Anda lakukan menyesuaikan penyebaran saat membuat aplikasi ASP.NET Core dengan Elastic Beanstalk dan Toolkit for Visual Studio.

Setelah Anda menyelesaikan wizard penyebaran di Toolkit for Visual Studio, toolkit bundel 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 menggunakanmenerbitkanperintah. Kerangka kerja dan konfigurasi diturunkan dari pengaturan di wizard kemenerbitkanperintah. Jadi jika Anda memilihRilisuntukconfigurationdannetcoreapp1.0untukframework, toolkit akan menjalankan perintah berikut:

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

Saatmenerbitkanperintah selesai, toolkit menulis manifes penyebaran baru ke dalam folder penerbitan. Manifes penyebaran adalah file JSON bernamaaws-windows-deployment-manifest.json, yang Elastic Beanstalk Windows container (versi 1.2 atau yang lebih baru) dibaca untuk menentukan cara menyebarkan aplikasi. Misalnya, untuk aplikasi ASP.NET Core Anda ingin menyebarkan pada akar IIS, toolkit menghasilkan file manifes yang terlihat seperti ini:

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

ParameterappBundleproperti menunjukkan di mana bit aplikasi dalam kaitannya dengan file manifes. Properti ini dapat menunjuk ke direktori atau arsip ZIP. ParameteriisPathdaniisWebSiteproperti menunjukkan di mana di IIS untuk meng-host aplikasi.

Menyesuaikan manifes

Toolkit hanya menulis file manifes jika salah satu belum ada di folder penerbitan. Jika file tidak ada, toolkit akan memperbaruiappBundle,iisPathdaniisWebSiteproperti dalam aplikasi pertama yang tercantum di bawahaspNetCoreWebbagian manifes. Hal ini memungkinkan Anda untuk menambahkanaws-windows-deployment-manifest.jsonuntuk proyek Anda dan menyesuaikan manifes. Untuk melakukan hal ini untuk aplikasi ASP.NET Core Web di Visual Studio menambahkan file JSON baru ke akar proyek dan nama ituaws-windows-deployment-manifest.json.

Manifes harus diberi namaaws-windows-deployment-manifest.jsondan itu harus menjadi akar proyek. Kontainer Elastic Beanstalk mencari manifes di root dan jika menemukan itu akan memanggil perkakas penyebaran. Jika file tidak ada, kontainer Elastic Beanstalk jatuh kembali ke perkakas penyebaran lama, yang mengasumsikan arsip adalahmsdeployarsip.

Untuk memastikan dotnet CLIpublishperintah termasuk manifes, memperbaruiproject.jsonfile untuk menyertakan file manifes di bagian include di bawahincludedipublishOptions.

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

Sekarang setelah Anda mendeklarasikan manifes sehingga disertakan dalam app bundle, Anda dapat mengkonfigurasi lebih lanjut bagaimana Anda ingin menyebarkan aplikasi. Anda dapat menyesuaikan penyebaran di luar apa yang didukung oleh wizard penyebaran.AWStelah mendefinisikan skema JSON untukaws-windows-deployment-manifest.json, dan ketika Anda menginstal Toolkit for Visual Studio, setup mendaftarkan URL untuk skema.

Ketika Anda membukawindows-deployment-manifest.json, Anda akan melihat URL skema yang dipilih di kotak drop down Schema. 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.

Satu kustomisasi yang dapat Anda lakukan adalah untuk mengkonfigurasi kolam aplikasi IIS tempat aplikasi akan berjalan. Contoh berikut menunjukkan bagaimana Anda dapat menentukan kolam Aplikasi IIS (“CustomPool”) yang mendaur ulang proses setiap 60 menit, dan menugaskan 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 skrip Windows PowerShell untuk dijalankan sebelum dan sesudah tindakan penginstalan, restart, dan uninstall. Misalnya, manifes berikut menjalankan skrip Windows PowerShellPostInstallSetup.ps1untuk melakukan pekerjaan setup lebih lanjut setelah aplikasi ASP.NET Core dikerahkan ke IIS. Saat menambahkan skrip seperti ini, pastikan skrip ditambahkan ke bagian include di bawah publishOptions diproject.jsonfile, seperti yang Anda lakukan denganaws-windows-deployment-manifest.jsonberkas. Jika tidak, skrip tidak akan disertakan sebagai bagian dari CLI dotnetmenerbitkanperintah.

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

Bagaimana dengan .ebextensions?

Pohon Kacang Elastic.ebextensionsfile konfigurasi didukung sebagai dengan semua kontainer Elastic Beanstalk lainnya. Untuk menyertakan .ebextensions dalam aplikasi ASP.NET Core, tambahkan.ebextensionsdirektori keincludebagian bawahpublishOptionsdi dalamproject.jsonberkas. Untuk informasi lebih lanjut tentang .ebextensions checkoutPanduan Pengembang Elastic Beanstalk.