Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menjalankan beberapa aplikasi danASP. NETaplikasi inti dengan manifes penerapan
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 bundel sumber untuk satuASP. NETaplikasi yang berjalan di jalur root situs web Anda. Sebaliknya, Anda dapat menggunakan file manifes untuk menjalankan beberapa aplikasi di jalur yang berbeda. Atau, sebagai alternatif, Anda dapat memberi tahu Elastic Beanstalk untuk menerapkan dan menjalankan aplikasi. ASP NETInti. Anda juga dapat menggunakan manifes deployment untuk mengonfigurasi kolam aplikasi tempat aplikasi Anda dijalankan.
Manifes penerapan menambahkan dukungan untuk. NETAplikasi inti untuk Elastic Beanstalk. Anda dapat menerapkan. NETAplikasi kerangka kerja tanpa manifes penerapan. Namun,. NETAplikasi inti memerlukan manifes penerapan untuk berjalan di Elastic Beanstalk. Saat Anda menggunakan manifes penerapan, Anda membuat arsip situs untuk setiap aplikasi, lalu menggabungkan arsip situs dalam ZIP arsip kedua yang berisi manifes penerapan.
Manifes deployment juga menambahkan kemampuan untuk menjalankan beberapa aplikasi di jalur yang berbeda. Manifes penerapan mendefinisikan array target penerapan, masing-masing dengan arsip situs dan jalur yang IIS harus menjalankannya. Misalnya, Anda dapat menjalankan web API di /api
jalur untuk melayani permintaan asinkron, dan aplikasi web di jalur root yang menggunakan file. API
Anda juga dapat menggunakan manifes penerapan untuk menjalankan beberapa aplikasi menggunakan kumpulan aplikasi di IIS atau Kestrel. Anda dapat mengonfigurasi kumpulan aplikasi untuk memulai ulang aplikasi Anda secara berkala, menjalankan aplikasi 32-bit, atau menggunakan versi tertentu dari file. NETRuntime kerangka kerja.
Untuk kustomisasi penuh, Anda dapat menulis skrip penyebaran Anda sendiri 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.
Bagian-bagian
. NETaplikasi inti
Anda dapat menggunakan manifes penerapan untuk menjalankan. NETAplikasi inti pada Elastic Beanstalk. . NETCore adalah versi lintas platform dari. NETyang dilengkapi dengan alat baris perintah (dotnet
). Anda dapat menggunakannya untuk menghasilkan aplikasi, menjalankannya secara lokal, dan menyiapkannya untuk penerbitan.
Untuk menjalankan. NETAplikasi inti pada Elastic Beanstalk, Anda dotnet publish
dapat menjalankan dan mengemas output ZIP dalam arsip, tidak termasuk direktori yang berisi. Menempatkan arsip situs di paket sumber dengan manifes deployment dengan target deployment tipe aspNetCoreWeb
.
Manifes penerapan berikut menjalankan file. NETAplikasi inti dari arsip situs bernama dotnet-core-app.zip
di jalur root.
contoh aws-windows-deployment-manifest.json -. NETinti
{
"manifestVersion": 1,
"deployments": {
"aspNetCoreWeb": [
{
"name": "my-dotnet-core-app",
"parameters": {
"archive": "dotnet-core-app.zip",
"iisPath": "/"
}
}
]
}
}
Bundel manifes dan arsip situs dalam ZIP arsip untuk membuat bundel sumber.
contoh 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
.
contoh 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
Anda dapat menjalankan beberapa aplikasi menggunakan manifes deployment dengan mendefinisikan beberapa target deployment.
Manifes penerapan berikut mengonfigurasi dua. NETAplikasi inti. WebApiSampleApp
Aplikasi ini mengimplementasikan web sederhana API dan melayani permintaan asinkron di jalur. /api
Aplikasi DotNetSampleApp
adalah aplikasi web yang melayani permintaan di jalur akar.
contoh 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
-
Kode sumber - dotnet-multiapp-sample-source-v2.zip
Mengonfigurasi kolam aplikasi
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 IIS server 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.
contoh 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>
contoh 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"
}
}
]
}
}
IIStidak mendukung banyak aplikasi dalam satu kumpulan 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 kumpulan aplikasi yang berbeda dalam aws-windows-deployment-manifest.json
file. Lakukan pembaruan berikut saat Anda merujuk ke file contoh berikutnya:
-
Tambahkan bagian
iisConfig
yang mencakup subbagian yang disebutappPools
. -
Di blok
appPools
, buat daftar kolam aplikasi. -
Di bagian
deployments
, definisikan sebuah bagianparameters
untuk setiap aplikasi. -
Untuk setiap aplikasi bagian
parameters
menentukan sebuah arsip, sebuah jalur untuk menjalankannya, dan sebuahappPool
tempat untuk menjalankannya.
Manifes deployment berikut mengonfigurasi dua kolam aplikasi yang memulai ulang aplikasi mereka setiap 10 menit. Mereka juga melampirkan aplikasi mereka ke a. NETFramework aplikasi web yang berjalan di jalur yang ditentukan.
contoh 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
Untuk kontrol lebih, Anda dapat sepenuhnya menyesuaikan deployment aplikasi dengan mendefinisikan deployment khusus.
Manifes deployment berikut memberitahu Elastic Beanstalk untuk menjalankan tulisan install
bernama siteInstall.ps1
. Skrip ini megnisntal situs web selama peluncuran dan deployment instans. Selain itu, manifes penyebaran juga memberi tahu Elastic Beanstalk untuk uninstall
menjalankan skrip sebelum menginstal versi baru selama penerapan restart
dan skrip untuk memulai ulang aplikasi saat Anda memilih Restart App Server di konsol manajemen. AWS
contoh aws-windows-deployment-manifest.json - penyebaran kustom
{
"manifestVersion": 1,
"deployments": {
"custom": [
{
"name": "Custom site",
"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.
contoh C. ustom-site-bundle Zip
.
|-- aws-windows-deployment-manifest.json
|-- siteInstall.ps1
|-- siteRestart.ps1
|-- siteUninstall.ps1
`-- site-contents.zip