Tutorial: Memulai Azure WebJobs SDK untuk pemrosesan latar belakang berbasis peristiwa
Mulai dengan Azure WebJobs SDK for Azure App Service untuk memungkinkan aplikasi web Anda menjalankan tugas latar belakang, tugas terjadwal, dan merespons peristiwa.
Gunakan Visual Studio 2022 untuk membuat aplikasi konsol .NET Core yang menggunakan WebJobs SDK untuk merespons pesan Azure Storage Queue, menjalankan proyek secara lokal, dan akhirnya menyebarkannya ke Azure.
Dalam tutorial ini, Anda akan belajar cara:
- Membuat aplikasi konsol
- Menambahkan fungsi
- Menguji secara lokal
- Sebarkan ke Azure
- Aktifkan pengelogan Application Insights
- Menambahkan pengikatan input/output
Prasyarat
Visual Studio 2022 dengan beban kerja pengembangan Azure. Instal Visual Studio 2022.
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Membuat aplikasi konsol
Di bagian ini, Anda mulai dengan membuat proyek di Visual Studio 2022. Selanjutnya, Anda akan menambahkan alat untuk pengembangan Azure, penerbitan kode, dan fungsi yang mendengarkan pemicu dan fungsi panggilan. Terakhir, Anda akan menyiapkan pengelogan konsol yang menonaktifkan alat pemantauan lama dan mengaktifkan penyedia konsol dengan pemfilteran default.
Catatan
Prosedur dalam artikel ini diverifikasi untuk membuat aplikasi konsol .NET Core yang berjalan di .NET 6.0.
Membuat proyek
Di Visual Studio, pilih File>Baru>Proyek.
Pada Buat proyek baru, pilih Aplikasi Konsol (C#), lalu pilih Berikutnya.
Pada Mengonfigurasi proyek baru Anda, beri nama proyek WebJobsSDKSample, lalu pilih Berikutnya.
Pilih Target framework Anda dan pilih Buat. Tutorial ini telah diverifikasi menggunakan .NET 6.0.
Pasang paket WebJobs NuGet
Pasang paket WebJobs NuGet terbaru. Paket ini mencakup Microsoft.Azure.WebJobs (WebJobs SDK), yang memungkinkan Anda menerbitkan kode fungsi Anda ke WebJobs di Azure App Service.
Dapatkan versi 4.x stabil terbaru dari paket Microsoft.Azure.WebJobs.Extensions NuGet.
Di Visual Studio, buka Alat>Pengelola Paket NuGet.
Pilih Konsol Pengelola Paket. Anda akan melihat daftar cmdlet NuGet, tautan ke dokumentasi, dan
PM>
titik masuk.Pada perintah berikut, ganti
<4_X_VERSION>
dengan nomor versi saat ini yang Anda temukan di langkah 1.Install-Package Microsoft.Azure.WebJobs.Extensions -version <4_X_VERSION>
Di Package Manager Console, jalankan perintah. Daftar ekstensi muncul dan dipasang secara otomatis.
Buat Host
Host adalah wadah runtime untuk fungsi yang mendengarkan pemicu dan memanggil fungsi. Langkah-langkah berikut membuat host yang mengimplementasikan IHost
, yang merupakan Host Generik di ASP.NET Core.
Pilih tab Program.cs, hapus konten yang ada, dan tambahkan
using
pernyataan berikut:using System.Threading.Tasks; using Microsoft.Extensions.Hosting;
Juga di bawah Program.cs, tambahkan kode berikut:
namespace WebJobsSDKSample { class Program { static async Task Main() { var builder = new HostBuilder(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } } } }
Di ASP.NET Core, konfigurasi host ditetapkan dengan memanggil metode pada instans HostBuilder
. Untuk informasi lebih lanjut, lihat Host Generik .NET. Metode ekstensi ConfigureWebJobs
menginisialisasi host WebJobs. Di ConfigureWebJobs
, inisialisasi ekstensi pengikatan tertentu, seperti ekstensi pengikatan Storage, dan atur properti ekstensi tersebut.
Aktifkan pencatatan log konsol
Siapkan pengelogan konsol yang menggunakan kerangka kerja pengelogan ASP.NET Core. Kerangka kerja ini, Microsoft.Extensions.Logging, menyertakan API yang bekerja dengan berbagai penyedia pengelogan bawaan dan pihak ketiga.
Dapatkan versi stabil terbaru dari
Microsoft.Extensions.Logging.Console
paket NuGet, yang mencakupMicrosoft.Extensions.Logging
.Pada perintah berikut, ganti
<6_X_VERSION>
dengan nomor versi saat ini yang Anda temukan di langkah 1. Setiap jenis Paket NuGet memiliki nomor versi yang berbeda.Install-Package Microsoft.Extensions.Logging.Console -version <6_X_VERSION>
Di Package Manager Console, isi nomor versi saat ini dan jalankan perintah. Daftar ekstensi muncul dan dipasang secara otomatis.
Pada tab Program.cs, tambahkan pernyataan
using
ini:using Microsoft.Extensions.Logging;
Melanjutkan di bawah Program.cs, tambahkan metode
ConfigureLogging
keHostBuilder
, sebelum perintahBuild
. MetodeAddConsole
menambahkan pencatatan log konsol ke konfigurasi.builder.ConfigureLogging((context, b) => { b.AddConsole(); });
Metode
Main
sekarang terlihat seperti ini:static async Task Main() { var builder = new HostBuilder(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); }); builder.ConfigureLogging((context, b) => { b.AddConsole(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } }
Penambahan ini membuat perubahan ini:
- Menonaktifkan pencatatan log dasbor. Dasbor adalah alat pemantauan lama, dan pencatatan dasbor tidak disarankan untuk skenario produksi dengan hasil tinggi.
- Menambahkan penyedia konsol dengan pemfilteran default.
Sekarang, Anda dapat menambahkan fungsi yang dipicu oleh pesan yang tiba di antrean Azure Storage.
Menambahkan fungsi
Fungsi adalah unit kode yang berjalan sesuai jadwal, dipicu berdasarkan peristiwa, atau dijalankan sesuai permintaan. Pemicu mendengarkan peristiwa layanan. Dalam konteks SDK WebJobs, dipicu tidak merujuk ke mode penerapan. WebJob berbasis peristiwa atau terjadwal yang dibuat menggunakan SDK harus selalu diterapkan sebagai WebJob berkelanjutan dengan "Selalu aktif".
Di bagian ini, Anda membuat fungsi yang dipicu oleh pesan dalam antrean Azure Storage. Pertama, Anda perlu menambahkan ekstensi pengikatan untuk tersambung ke Azure Storage.
Instal ekstensi pengikatan Storage
Dimulai dengan versi 3 WebJobs SDK, untuk tersambung ke layanan Azure Storage, Anda harus menginstal paket ekstensi pengikatan Storage terpisah.
Catatan
Dimulai dengan 5.x, Microsoft.Azure.WebJobs.Extensions.Storage telah dibagi berdasarkan layanan penyimpanan dan telah memigrasikan metode ekstensi AddAzureStorage()
berdasarkan jenis layanan.
Dapatkan versi stabil terbaru dari paket NuGet Microsoft.Azure.WebJobs.Extensions.Storage, versi 5.x.
Pada perintah berikut, ganti
<5_X_VERSION>
dengan nomor versi saat ini yang Anda temukan di langkah 1. Setiap jenis Paket NuGet memiliki nomor versi yang berbeda.Install-Package Microsoft.Azure.WebJobs.Extensions.Storage -Version <5_X_VERSION>
Di Konsol Pengelola Paket, jalankan perintah dengan nomor versi saat ini di titik masuk
PM>
.Melanjutkan di Program.cs, dalam metode ekstensi
ConfigureWebJobs
, tambahkan metodeAddAzureStorageQueues
pada instansHostBuilder
(sebelum perintahBuild
) untuk menginisialisasi ekstensi Storage. Pada titik ini, metodeConfigureWebJobs
terlihat seperti ini:builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorageQueues(); });
Tambahkan kode berikut dalam metode
builder
setelahMain
diinstantiasi:builder.UseEnvironment(EnvironmentName.Development);
Menjalankan dalam mode pengembangan mengurangi antrean pengumpulan backoff eksponensial yang dapat secara signifikan menunda jumlah waktu yang dibutuhkan runtime untuk menemukan pesan dan menjalankan fungsi tersebut. Anda harus menghapus baris kode ini atau beralih ke
Production
saat Anda selesai dengan pengembangan dan pengujian.Metode
Main
Anda sekarang akan terlihat seperti contoh berikut:static async Task Main() { var builder = new HostBuilder(); builder.UseEnvironment(EnvironmentName.Development); builder.ConfigureLogging((context, b) => { b.AddConsole(); }); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorageQueues(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } }
Buat fungsi yang dipicu Antrean
Atribut QueueTrigger
memberi tahu runtime untuk memanggil fungsi ini saat pesan baru ditulis pada antrean Azure Storage yang disebut queue
. Isi pesan antrean diberikan ke kode metode dalam parameter message
. Isi metode adalah tempat Anda memproses data pemicu. Dalam contoh ini, kode hanya mencatat log pesan.
Di Penjelajah Solusi, klik kanan proyek, pilih Tambahkan>Item Baru, lalu pilih Kelas.
Beri nama file kelas C# baru Functions.cs dan pilih Tambahkan.
Di Functions.cs, ganti templat yang dihasilkan dengan kode berikut:
using Microsoft.Azure.WebJobs; using Microsoft.Extensions.Logging; namespace WebJobsSDKSample { public class Functions { public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger) { logger.LogInformation(message); } } }
Anda harus menandai kelas Fungsi sebagai
public static
agar runtime bahasa umum dapat mengakses dan menjalankan metode. Di atas kode sampel, saat pesan ditambahkan ke antrean bernamaqueue
, fungsi dijalankan dan untai (karakter)message
ditulis ke log. Antrean yang dipantau ada di akun Azure Storage default, yang Anda buat selanjutnya.
Parameter message
tidak harus berupa string. Anda juga dapat mengikat ke objek JSON, array byte, atau objek CloudQueueMessage. Lihat Penggunaan pemicu Antrean. Setiap jenis pengikatan (seperti antrean, blob, atau tabel) memiliki rangkaian tipe parameter berbeda yang dapat Anda ikat.
Membuat akun Azure Storage
Azure Storage Emulator yang berjalan secara lokal tidak memiliki semua fitur yang dibutuhkan WebJobs SDK. Anda akan membuat akun penyimpanan di Azure dan mengonfigurasi proyek untuk menggunakannya.
Untuk mempelajari cara membuat akun penyimpanan v2 tujuan umum, lihat Membuat akun Azure Storage.
Mencari dan menyalin string koneksi Anda
String koneksi diperlukan untuk mengonfigurasi penyimpanan. Simpan string koneksi ini untuk langkah berikutnya.
Di portal Microsoft Azure, buka akun penyimpanan Anda dan pilih Pengaturan.
Di Pengaturan, pilih Kunci akses.
Untuk String koneksi di bawah key1, pilih ikon Salin ke papan klip.
Konfigurasikan penyimpanan untuk dijalankan secara lokal
WebJobs SDK mencari string koneksi penyimpanan di Pengaturan Aplikasi di Azure. Saat Anda menjalankan secara lokal, nilai ini akan dicari di file konfigurasi lokal atau di variabel lingkungan.
Klik kanan proyek, pilih Tambahkan>Item Baru, pilih File konfigurasi JavaScript JSON, beri nama file baru appsettings. json, dan pilih Tambah.
Di file baru, tambahkan bidang
AzureWebJobsStorage
, seperti pada contoh berikut:{ "AzureWebJobsStorage": "{storage connection string}" }
Ganti {storage connection string} dengan connection string yang Anda salin sebelumnya.
Pilih file appsettings.json di Penjelajah Solusi dan di jendela Properti, tetapkan tindakan Salin ke Direktori Output ke Salin jika lebih baru.
Karena file ini berisi rahasia string koneksi, Anda tidak boleh menyimpan file dalam repositori kode jarak jauh. Setelah menerbitkan proyek Anda ke Azure, Anda bisa menambahkan pengaturan aplikasi string koneksi yang sama di aplikasi Anda di Azure App Service.
Menguji secara lokal
Bangun dan jalankan proyek secara lokal dan buat antrian pesan untuk memicu fungsi.
Di portal Azure, navigasikan ke akun penyimpanan Anda dan pilih tab Antrean (1). Pilih + Antrean (2) dan masukkan antrean sebagai nama Antrean (3). Kemudian, pilih OK (4).
Klik antrean baru dan pilih Tambahkan pesan.
Dalam dialog Tambahkan Pesan, masukkan Halo Dunia! sebagai teks Pesan, kemudian pilih OK. Sekarang ada pesan dalam antrean.
Tekan Ctrl+F5 untuk menjalankan proyek.
Konsol menunjukkan bahwa runtime menemukan fungsi Anda. Karena Anda menggunakan atribut
QueueTrigger
dalam fungsiProcessQueueMessage
, waktu proses WebJobs mendengarkan pesan dalam antrean bernamaqueue
. Ketika menemukan pesan baru dalam antrean ini, runtime memanggil fungsi, meneruskan nilai string pesan.Kembali ke jendela Antrean dan refresh. Pesan hilang, karena telah diproses oleh fungsi Anda yang berjalan secara lokal.
Tutup jendela konsol.
Sekarang saatnya untuk menerbitkan proyek SDK WebJobs Anda ke Azure.
Sebarkan ke Azure
Selama penerapan, Anda membuat instance layanan aplikasi di mana Anda akan menjalankan fungsi Anda. Saat Anda menerbitkan aplikasi konsol .NET ke App Service di Azure, aplikasi itu secara otomatis berjalan sebagai WebJob. Untuk mempelajari lebih lanjut tentang publikasi, lihat Mengembangkan dan menyebarkan WebJobs menggunakan Visual Studio.
Membuat sumber daya Azure
Di Penjelajah Solusi, klik kanan proyek dan pilih Terbitkan.
Di kotak dialog Terbitkan, pilih Azure untuk Target, lalu pilih Berikutnya.
Pilih Azure WebJobs untuk Target spesifik, lalu pilih Berikutnya.
Di atas instans App Service, pilih tombol plus (+) untuk Membuat Azure WebJob baru.
Di kotak dialog Azure App Service (Windows), gunakan pengaturan hosting dalam tabel berikut.
Pengaturan Nilai yang disarankan Deskripsi Nama Nama unik secara global Nama yang secara unik mengidentifikasi aplikasi fungsi baru Anda. Langganan Memilih langganan Anda Langganan Azure untuk digunakan. Grup sumber daya myResourceGroup Nama grup sumber daya tempat membuat aplikasi fungsi Anda. Pilih Baru untuk membuat grup sumber daya baru. Paket Hosting Paket App Service Rencana App Service menentukan lokasi, ukuran, dan fitur farm server web yang menghosting aplikasi Anda. Anda dapat menghemat uang saat menghosting beberapa aplikasi dengan mengonfigurasi aplikasi web untuk berbagi satu paket Azure App Service. Paket Azure App Service menentukan wilayah, ukuran instans, jumlah skala, dan SKU (Gratis, Berbagi, Dasar, Standar, atau Premium). Pilih Baru untuk membuat paket Azure App Service baru. Tingkat Gratis dan Dasar tidak mendukung opsi Grup Ketersediaan AlwaysOn untuk menjaga situs Anda berjalan terus-menerus. Pilih Buat untuk membuat WebJob dan sumber daya terkait di Azure dengan pengaturan ini dan menyebarkan kode proyek Anda.
Pilih Selesai untuk kembali ke halaman Terbitkan.
Mengaktifkan Grup Ketersediaan AlwaysOn
Untuk WebJob berkelanjutan, Anda harus mengaktifkan pengaturan Selalu aktif di situs agar WebJob Anda berjalan dengan benar. Jika Anda tidak mengaktifkan Selalu aktif, runtime menjadi siaga setelah beberapa menit tidak aktif.
Di laman Terbitkan, pilih tiga titik di atas Hosting untuk menampilkan Tindakan bagian profil hosting dan pilih Buka di portal Microsoft Azure.
Di bawah Pengaturan, pilih Konfigurasi>Pengaturan umum, atur Selalu aktif ke Aktif, lalu pilih Simpan dan Lanjutkan untuk memulai ulang situs.
Menerbitkan proyek
Dengan aplikasi web yang dibuat di Azure, saatnya untuk menerbitkan proyek WebJobs.
Di laman Terbitkan pada Hosting, pilih tombol edit dan ubah Jenis WebJob menjadi
Continuous
dan pilih Simpan. Ini memastikan bahwa WebJob berjalan saat pesan ditambahkan ke antrean. WebJobs yang dipicu biasanya hanya digunakan untuk webhook manual.Pilih tombol Terbitkan di sudut kanan atas halaman Terbitkan. Saat operasi selesai, WebJob Anda berjalan di Azure.
Membuat pengaturan aplikasi sambungan penyimpanan
Anda perlu membuat pengaturan string koneksi penyimpanan yang sama di Azure yang Anda gunakan secara lokal di file konfigurasi appsettings.json Anda. Ini memungkinkan Anda menyimpan string koneksi dengan lebih aman dan
Di laman profil Terbitkan Anda, pilih tiga titik di atas Hosting untuk menampilkan Tindakan bagian profil hosting dan pilih Kelola setelan Azure App Service.
Di Pengaturan aplikasi, pilih + Tambahkan pengaturan.
Di Nama pengaturan aplikasi baru, ketik
AzureWebJobsStorage
dan pilih OK.Di Jarak Jauh, rekatkan string koneksi dari pengaturan lokal Anda dan pilih OK.
String koneksi sekarang diatur di aplikasi Anda di Azure.
Memicu fungsi di Azure
Pastikan Anda tidak menjalankan secara lokal. Tutup jendela konsol jika masih terbuka. Jika tidak, instans lokal mungkin yang pertama memproses pesan antrean yang Anda buat.
Di halaman Antrean di Visual Studio, tambahkan pesan ke antrean seperti sebelumnya.
Refresh halaman Antrean, dan pesan baru akan hilang karena telah diproses oleh fungsi yang berjalan di Azure.
Aktifkan pengelogan Application Insights
Saat WebJob berjalan di Azure, Anda tidak dapat memantau eksekusi fungsi dengan melihat output konsol. Agar dapat memantau WebJob, Anda harus membuat instance Application Insights terkait saat Anda menerbitkan proyek Anda.
Buat instans Application Insights
Di halaman profil Terbitkan Anda, pilih tiga titik di atas Hosting untuk menampilkan Tindakan bagian profil hosting dan pilih Buka di Portal Microsoft Azure.
Di aplikasi web pada Pengaturan, pilih Application Insights, dan pilih Aktifkan Application Insights.
Verifikasi Nama sumber daya yang dihasilkan untuk instans dan Lokasi, lalu pilih Terapkan.
Pada Pengaturan, pilih Konfigurasi dan verifikasi bahwa
APPINSIGHTS_INSTRUMENTATIONKEY
baru telah dibuat. Kunci ini digunakan untuk menghubungkan instans WebJob Anda ke Application Insights.
Untuk memanfaatkan pengelogan Application Insights, Anda juga perlu memperbarui kode pengelogan.
Pasang ekstensi Application Insights
Dapatkan versi stabil terbaru dari paket NuGet Microsoft.Azure.WebJobs.Logging.ApplicationInsights, versi 3.x.
Pada perintah berikut, ganti
<3_X_VERSION>
dengan nomor versi saat ini yang Anda temukan di langkah 1. Setiap jenis Paket NuGet memiliki nomor versi yang berbeda.Install-Package Microsoft.Azure.WebJobs.Logging.ApplicationInsights -Version <3_X_VERSION>
Di Konsol Pengelola Paket, jalankan perintah dengan nomor versi saat ini di titik masuk
PM>
.
Menginisialisasi penyedia pengelogan Application Insights
Buka Program.cs dan tambahkan penginisialisasi berikut di ConfigureLogging
setelah panggilan ke AddConsole
:
// If the key exists in settings, use it to enable Application Insights.
string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (!string.IsNullOrEmpty(instrumentationKey))
{
b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
}
Kode metode Main
sekarang akan terlihat seperti contoh berikut:
static async Task Main()
{
var builder = new HostBuilder();
builder.UseEnvironment(EnvironmentName.Development);
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddAzureStorage();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
// If the key exists in settings, use it to enable Application Insights.
string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (!string.IsNullOrEmpty(instrumentationKey))
{
b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
}
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
Ini menginisialisasi penyedia log Application Insights dengan pemfilteran default. Saat berjalan secara lokal, semua Informasi dan log tingkat yang lebih tinggi ditulis ke konsol dan Application Insights.
\Terbitkan ulang proyek dan picu lagi fungsi
Di Penjelajah Solusi, klik kanan proyek dan pilih Terbitkan.
Seperti sebelumnya, gunakan portal Azure untuk membuat pesan antrean seperti yang Anda lakukan sebelumnya, kecuali masukkan Hello App Insights! sebagai teks pesan.
Di halaman profil Terbitkan Anda, pilih tiga titik di atas Hosting untuk menampilkan Tindakan bagian profil hosting dan pilih Buka di Portal Microsoft Azure.
Di aplikasi web pada Pengaturan, pilih Application Insights, dan pilih Lihat data Application Insights.
Pilih Telusuri lalu pilih Lihat semua data dalam 24 jam terakhir.
Jika Anda tidak melihat pesan Hello App Insights!, pilih Refresh secara berkala selama beberapa menit. Log tidak segera muncul, karena klien Application Insights perlu beberapa saat untuk menghapus log yang diprosesnya.
Menambahkan pengikatan input/output
Binding menyederhanakan kode yang membaca dan menulis data. Pengikatan input menyederhanakan kode yang membaca data. Pengikatan output menyederhanakan kode yang menulis data.
Menambahkan pengikatan
Pengikatan input menyederhanakan kode yang membaca data. Untuk contoh ini, pesan antrian adalah nama blob, yang akan Anda gunakan untuk menemukan dan membaca blob di Azure Storage. Anda kemudian akan menggunakan pengikatan output untuk menulis salinan file ke kontainer yang sama.
Di Functions.cs, tambahkan
using
:using System.IO;
Ganti metode
ProcessQueueMessage
dengan kode berikut:public static void ProcessQueueMessage( [QueueTrigger("queue")] string message, [Blob("container/{queueTrigger}", FileAccess.Read)] Stream myBlob, [Blob("container/copy-{queueTrigger}", FileAccess.Write)] Stream outputBlob, ILogger logger) { logger.LogInformation($"Blob name:{message} \n Size: {myBlob.Length} bytes"); myBlob.CopyTo(outputBlob); }
Dalam kode ini,
queueTrigger
adalah ekspresi pengikatan, yang berarti diselesaikan ke nilai yang berbeda saat runtime. Saat runtime, berarti memiliki isi pesan antrean.Kode ini menggunakan pengikatan output untuk membuat salinan file yang diidentifikasi oleh pesan antrean. Salinan file diawali dengan salin-.
Di Program.cs, dalam metode ekstensi
ConfigureWebJobs
, tambahkan metodeAddAzureStorageBlobs
pada instanceHostBuilder
(sebelumBuild
perintah) untuk menginisialisasi ekstensi Storage. Pada titik ini, metodeConfigureWebJobs
terlihat seperti ini:builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorageQueues(); b.AddAzureStorageBlobs(); });
Buat wadah blob di akun penyimpanan Anda.
a. Di portal Azure, navigasikan ke tab Kontainer di bawah Penyimpanan data dan pilih + Kontainer
b. Dalam dialog Kontainer baru, masukkan kontainer sebagai nama kontainer, lalu pilih Buat.
Unggah file Program.cs ke wadah blob. (File ini digunakan di sini sebagai contoh; Anda dapat mengunggah file teks apa pun dan membuat pesan antrean dengan nama file.)
a. Pilih kontainer baru yang Anda buat
b. Pilih tombol Unggah.
c. Cari dan pilih Program.cs, lalu pilih OK.
Menerbitkan ulang proyek
Di Penjelajah Solusi, klik kanan proyek dan pilih Terbitkan.
Dalam dialog Terbitkan, pastikan profil saat ini dipilih, lalu pilih Terbitkan. Hasil publikasi dijelaskan secara mendetail di jendela Output.
Buat pesan antrean dalam antrean yang Anda buat sebelumnya, dengan Program.cs sebagai teks pesan.
Salinan file, copy-Program.cs, akan muncul di kontainer blob.
Langkah berikutnya
Tutorial ini menunjukkan cara membuat, menjalankan, dan menyebarkan proyek WebJobs SDK 3.x.