Menyebarkan aplikasi Formulir Web ASP.NET di AWS - AWS Bimbingan Preskriptif

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

Menyebarkan aplikasi Formulir Web ASP.NET di AWS

Mengelola NuGet paket

NuGet adalah repositori yang berisi dan mengelola paket kode untuk.NET. Aplikasi dapat memiliki dua jenis NuGet paket yang diinstal: paket yang tersedia untuk umum dari nuget.org atau paket custom-built yang dipublikasikan ke repositori internal. Menarik paket dari nuget.org mengharuskan instance yang membangun aplikasi memiliki akses internet keluar. Untuk beberapa pengguna, akses internet mungkin tidak diinginkan karena masalah keamanan atau pembatasan jaringan.

Untuk mengatasi masalah ini, Anda dapat menyediakan repositori artefak terkelola (NuGet) untuk mengunduh paket dari sumber eksternal seperti nuget.org. Anda dapat menggunakan AWS CodeArtifact, yang merupakan layanan repositori artefak yang dikelola sepenuhnya, sebagai repositori paket. NuGet Untuk informasi lebih lanjut, lihat posting AWS blog Menggunakan NuGet dengan AWS CodeArtifact. Opsi pihak ketiga populer lainnya termasuk Nexus dan Artifactory. Pendekatan ini memungkinkan Anda untuk menyimpan paket yang tersedia untuk umum dalam repositori pribadi Anda dan mengurangi kebutuhan akan akses internet langsung selama proses pembuatan. Jika Anda ingin lebih banyak kontrol atas paket mana yang dapat diunduh, Anda dapat menonaktifkan akses eksternal. Dalam hal ini, pengembang harus mendorong paket mereka sendiri dan NuGet paket pihak ketiga lainnya yang mereka butuhkan ke repositori.

Untuk mengkonfigurasi aplikasi Anda untuk menggunakan repositori NuGet paket, buat NuGet.config file di root proyek atau direktori root solusi. File ini menentukan sumber paket yang NuGet harus digunakan saat memulihkan paket. Contoh berikut menunjukkan cara mengkonfigurasi NuGet.config file yang akan digunakan CodeArtifact:

<?xml version="1.0" encoding="utf-8"?> <configuration> <packageRestore> <!-- Allow NuGet to download missing packages --> <add key="enabled" value="True" /> <!-- Automatically check for missing packages during build in Visual Studio --> <add key="automatic" value="True" /> </packageRestore> <packageSources> <add key="MyRepo" value="https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json" /> </packageSources> </configuration>

Dalam contoh ini, ganti https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json dengan URL sebenarnya dari CodeArtifact repositori Anda. Anda dapat menemukan URL ini di CodeArtifact konsol atau dengan menjalankan aws codeartifact get-repository-endpoint perintah.

penting
  • Mengkonfigurasi NuGet.config file mempengaruhi semua proyek dalam struktur direktori yang sama. Jika Anda ingin menggunakan sumber paket yang berbeda untuk proyek yang berbeda, buat NuGet.config file terpisah untuk setiap proyek atau solusi.

  • Pastikan bahwa instans membangun aplikasi memiliki izin yang diperlukan dan akses jaringan untuk terhubung ke repositori NuGet paket (seperti). CodeArtifact Untuk informasi selengkapnya tentang mendapatkan kredensil, lihat Menggunakan CodeArtifact dengan nuget atau dotnet CLI dalam dokumentasi. CodeArtifact

Membangun aplikasi

Saat Anda memigrasikan aplikasi ASP.NET Web Forms lama ke AWS, Anda terus menggunakan Microsoft Build Engine (MSBuild) sebagai alat utama untuk membangun aplikasi. MSBuild Biasanya dibundel dengan Visual Studio, tetapi Anda dapat mengunduh dan menggunakan MSBuild executable mandiri dari Microsoft tanpa menginstal Visual Studio. Pendekatan ini sangat berguna ketika Anda membangun aplikasi Formulir Web Anda AWS, di mana Anda dapat menggunakan instance Windows atau wadah Docker dengan MSBuild diinstal.

Ada dua langkah utama yang diperlukan untuk membangun aplikasi ASP.NET Web Forms: memulihkan NuGet paket dan membangun aplikasi. Spesifikasi bagaimana langkah-langkah ini dilakukan dapat bervariasi tergantung pada alat CI/CD yang Anda pilih untuk digunakan. Misalnya, jika Anda menggunakan AWS CodeBuild, proses build dijalankan di dalam wadah Docker.

Kembalikan NuGet paket

Sebelum Anda membangun aplikasi Anda, Anda harus mengembalikan NuGet paket yang diperlukan oleh proyek. Anda dapat melakukan ini dengan menggunakan salah satu MSBuild atau NuGet perintah Command Line Interface (CLI), dijalankan di direktori root proyek.

Menggunakan MSBuild:

msbuild -t:restore

Menggunakan NuGet CLI:

nuget restore

Membangun menggunakan MSBuild

Setelah memulihkan NuGet paket, Anda dapat melanjutkan dengan perintah build utama yang menghasilkan artefak penerapan. Perintah biasanya menentukan file proyek, konfigurasi build (misalnya,Release), dan direktori output untuk artefak yang dibangun.

msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>

Untuk informasi selengkapnya tentang MSBuild opsi, lihat referensi MSBuild baris perintah di dokumentasi Microsoft.

Untuk informasi lebih lanjut tentang membangun aplikasi ASP.NET dengan AWS CodeBuild, lihat posting AWS blog Membuat pipeline CI/CD untuk ASP.NET 4.x dengan dan. AWS CodePipeline AWS Elastic Beanstalk

Menerapkan aplikasi

Setelah Anda membangun aplikasi Formulir Web Anda, Anda menyebarkan artefak ke lingkungan target. AWS Dalam sebagian besar skenario, Anda dapat melakukan zip dan mengunggah artefak bawaan ke bucket Amazon Simple Storage Service (Amazon S3) untuk memudahkan distribusi dan penerapan. Untuk petunjuk, lihat dokumentasi Amazon S3.

Ada dua opsi utama untuk menyebarkan artefak ke EC2 instance Amazon: manual dan otomatis.

Penyebaran manual

Opsi ini melibatkan penggunaan data pengguna EC2 instance untuk menyertakan skrip yang akan melakukan tugas-tugas berikut:

  • Instal Layanan Informasi Internet (IIS)

  • Tarik dan bongkar artefak build dari bucket Amazon S3

  • Buat dan konfigurasikan aplikasi IIS

Meskipun pendekatan ini memberikan fleksibilitas, pendekatan ini memerlukan intervensi manual dan mungkin menjadi tantangan untuk dikelola sesuai skala aplikasi Anda atau jika sering mengalami pembaruan.

Otomatisasi deployment

Pendekatan yang disarankan adalah digunakan AWS CodeDeployuntuk penerapan otomatis dan berulang. CodeDeploy terintegrasi dengan mulus dengan yang lain Layanan AWS seperti AWS CodeBuild dan AWS CodePipeline, sehingga Anda dapat membuat CI/CD pipeline for your ASP.NET Web Forms application. With CodeDeploy, you can define deployment strategies such as rolling and blue/green pembaruan lengkap untuk memastikan downtime minimal dan transisi yang lancar antara versi aplikasi.

Untuk informasi lebih lanjut dan contoh tentang pengaturan pipeline CI/CD untuk aplikasi ASP.NET Web Forms dengan menggunakan CodePipeline,, dan CodeBuild CodeDeploy, lihat posting AWS blog Membuat pipeline CI/CD untuk ASP.NET 4.x dengan dan. AWS CodePipeline AWS Elastic Beanstalk

Dengan menggunakan Layanan AWS seperti CodeBuild,, dan CodeDeploy CodePipeline, Anda dapat merampingkan proses pembuatan dan penerapan untuk aplikasi Formulir Web ASP.NET yang dimigrasi, dan memastikan penerapan infrastruktur yang konsisten dan andal. AWS

Untuk informasi tambahan tentang penerapan otomatis, lihat posting AWS blog Menghasilkan Pipelines CI/CD untuk Aplikasi ASP.NET Containerized menggunakan AWS App2Container dan informasi tentang membangun pipeline CI/CD untuk aplikasi .NET Framework lama di Re:Post. AWS