Topik ini menjelaskan cara mengkompilasi kode program dalam waktu proses .NET dan mengemasnya sebagai paket .zip. Setelah kode dikompilasi dan dikemas, Anda dapat mengunggah paket tersebut di Konsol Function Compute atau menggunakan Serverless Devs.
Pustaka dependensi waktu proses C#
Function Compute menyediakan pustaka dependensi waktu proses C# berikut:
Aliyun.Serverless.Core: mendefinisikan informasi seperti antarmuka penanganan acara dan objek konteks yang digunakan dalam penangan permintaan. Pustaka ini diperlukan.
Aliyun.Serverless.Core.Http: mendefinisikan antarmuka penangan HTTP.
Anda dapat memperoleh pustaka dependensi ini dari NuGet Packages dan menambahkannya ke file <NamaProyekAnda>.csproj. Contoh kode:
<ItemGroup>
<PackageReference Include="Aliyun.Serverless.Core" Version="1.0.1" />
<PackageReference Include="Aliyun.Serverless.Core.Http" Version="1.0.3" />
</ItemGroup>Menggunakan .NET Core CLI untuk mengkompilasi dan menyebarkan program
Paket penyebaran .NET Core harus mencakup perakitan terkompilasi dari fungsi Anda dan semua dependensinya. Anda dapat menggunakan .NET Core CLI untuk mengkompilasi dan menyebarkan program. Untuk menggunakan .NET Core CLI, Anda dapat membuat aplikasi .NET di Function Compute lintas platform. Untuk informasi lebih lanjut, lihat Unduh .NET.
Sebelum memulai
Langkah 1: Buat proyek .NET
Jalankan perintah berikut untuk membuat proyek .NET:
dotnet new console -o HelloFcApp -f netcoreapp3.1Dalam perintah di atas:
new console: template aplikasi konsol (direkomendasikan).
-o|--output: jalur keluaran proyek. Dalam contoh ini, direktori HelloFcApp dibuat untuk menyimpan isi proyek.
-f|--framework: versi .NET. Jika versi waktu proses adalah .NET Core 3.1, gunakan netcoreapp3.1.
Berikut adalah contoh kode yang menunjukkan struktur direktori proyek setelah pembuatan:
HelloFcApp ├── HelloFcApp.csproj ├── Program.cs └── objDi direktori proyek, modifikasi parameter sesuai dengan kebutuhan bisnis Anda.
File HelloFcApp.csproj
File ini merupakan konfigurasi proyek .NET yang mencakup informasi seperti kerangka kerja target dan pustaka dependensi proyek. Tambahkan pustaka dependensi yang disediakan oleh Function Compute ke file ini. Contoh kode:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Aliyun.Serverless.Core" Version="1.0.1" /> <PackageReference Include="Aliyun.Serverless.Core.Http" Version="1.0.3" /> </ItemGroup> </Project>File Program.cs
File ini berisi kode penangan permintaan Anda. Untuk informasi lebih lanjut, lihat Penangan Acara atau Penangan HTTP. Bagian ini menggunakan penangan permintaan acara tipe Stream sebagai contoh.
using System.IO; using System.Threading.Tasks; using Aliyun.Serverless.Core; using Microsoft.Extensions.Logging; namespace Example { public class Hello { public async Task<Stream> StreamHandler(Stream input, IFcContext context) { IFcLogger logger = context.Logger; logger.LogInformation("Menangani permintaan: {0}", context.RequestId); MemoryStream copy = new MemoryStream(); await input.CopyToAsync(copy); copy.Seek(0, SeekOrigin.Begin); return copy; } static void Main(string[] args){} } }
Langkah 2: Kompilasi proyek .NET
Jalankan perintah berikut untuk masuk ke direktori proyek, mengkompilasi program, lalu ekspor hasilnya ke direktori target:
cd HelloFcApp && dotnet publish -c Release -o ./targetJalankan perintah berikut untuk masuk ke direktori target dan mengemas program menjadi paket .zip:
cd target && zip -r HelloFcApp.zip *Berikut adalah contoh kode yang menunjukkan struktur direktori paket .zip:
HelloFcApp.zip ├── Aliyun.Serverless.Core.dll ├── HelloFcApp.deps.json ├── HelloFcApp.dll ├── HelloFcApp.pdb ├── HelloFcApp.runtimeconfig.json └ ── Microsoft.Extensions.Logging.Abstractions.dllPentingPastikan bahwa HelloFcApp.dll dan file lainnya telah dikemas ke dalam direktori root file .zip.
Langkah 3: Sebarkan kode proyek dan lakukan verifikasi
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Di halaman Services, klik layanan yang diinginkan.
Di halaman Functions, klik Create Function.
Di halaman Create Function, pilih Use Built-in Runtime, konfigurasikan parameter terkait fungsi, lalu klik Create.
Konfigurasikan parameter berikut sesuai deskripsi. Pertahankan nilai default untuk parameter lainnya:
Handler Type: Pilih Event Handler.
Runtime: Pilih .NET Core 3.1.
Code Upload Method: Pilih Upload ZIP dan unggah file .zip yang dikemas oleh pustaka dependensi waktu proses C#.
Request Handler: Atur nilainya menjadi
HelloFcApp::Example.Hello::StreamHandler. Untuk informasi tentang format penangan, lihat Penangan.
Setelah fungsi dibuat, Anda akan diarahkan ke tab Code pada halaman detail fungsi.
Di tab Code pada halaman detail fungsi, klik Test Function.
Hasil berikut dikembalikan setelah fungsi dieksekusi:
{ "key1": "value1", "key2": "value2", "key3": "value3" }Anda juga dapat mengklik tab Log Output untuk melihat log rinci.