Bagikan melalui


Teknologi penyebaran di Azure Functions

Anda dapat menggunakan beberapa teknologi berbeda untuk menyebarkan kode proyek Azure Functions Anda ke Azure. Artikel ini memberikan gambaran umum tentang metode penyebaran yang tersedia untuk Anda dan rekomendasi metode terbaik untuk digunakan dalam berbagai skenario. Artikel ini juga menyediakan daftar lengkap dan detail penting tentang teknologi penyebaran yang mendasarinya.

Metode penerapan

Teknologi penyebaran yang Anda gunakan untuk menerbitkan kode ke aplikasi fungsi Anda di Azure bergantung pada kebutuhan spesifik Anda dan titik dalam siklus pengembangan. Misalnya, selama pengembangan dan pengujian, Anda dapat menggunakan langsung dari alat pengembangan Anda, seperti Visual Studio Code. Saat aplikasi sedang diproduksi, Anda lebih mungkin menerbitkan secara berkelanjutan dari kontrol sumber atau dengan menggunakan alur penerbitan otomatis, yang dapat menyertakan validasi dan pengujian.

Tabel berikut menjelaskan metode penyebaran yang tersedia untuk proyek kode Anda.

Jenis penyebaran Metode Terbaik untuk...
Berbasis alat Penerbitan Visual Studio Code
Penerbitan Visual Studio
Penerbitan Core Tools
Penyebaran selama pengembangan dan penyebaran improvisasi lainnya. Menyebarkan kode Anda sesuai permintaan menggunakan alat pengembangan lokal.
Dikelola App Service Pusat Penyebaran (CI/CD)
Penyebaran kontainer
Penyebaran berkelanjutan (CI/CD) dari kontrol sumber atau dari registri kontainer. Penyebaran dikelola oleh platform App Service (Kudu).
Alur eksternal Azure Pipelines
TIndkan GitHub
Alur produksi yang mencakup validasi, pengujian, dan tindakan lain yang harus dijalankan sebagai bagian dari penyebaran otomatis. Penyebaran dikelola oleh alur.

Penyebaran tertentu harus menggunakan teknologi terbaik berdasarkan skenario tertentu. Banyak metode penyebaran didasarkan pada penyebaran zip, yang direkomendasikan untuk penyebaran.

Ketersediaan teknologi penyebaran

Metode penyebaran juga tergantung pada paket hosting dan sistem operasi tempat Anda menjalankan aplikasi fungsi Anda.

Saat ini, Functions menawarkan lima opsi untuk menghosting aplikasi fungsi Anda:

Setiap paket memiliki perilaku yang berbeda. Tidak semua teknologi penyebaran tersedia untuk setiap paket hosting dan sistem operasi. Bagan ini menyediakan informasi tentang teknologi penyebaran yang didukung:

Teknologi penyebaran Konsumsi Flex Konsumsi Elastic Premium Khusus Aplikasi Kontainer
OneDeploy
Penyebaran Zip
URLpaket eksternal 1
Kontainer Docker Khusus Linux Khusus Linux Khusus Linux
Kontrol sumber Khusus Windows
GitLokal 1 Khusus Windows
FTPS1 Khusus Windows
Pengeditandalam portal 2

1 Teknologi penyebaran yang mengharuskan Anda menyinkronkan pemicu secara manual tidak disarankan .
2 Pengeditan di portal dinonaktifkan saat kode disebarkan ke aplikasi fungsi Anda dari luar portal. Untuk informasi selengkapnya, termasuk detail dukungan bahasa untuk pengeditan di portal, lihat Detail dukungan bahasa.

Konsep kunci

Beberapa konsep utama sangat penting untuk memahami cara kerja penyebaran di Azure Functions.

Sinkronisasi pemicu

Saat Anda mengubah salah satu pemicu Anda, infrastruktur Functions harus mengetahui perubahan tersebut. Sinkronisasi terjadi secara otomatis untuk banyak teknologi penyebaran. Namun, dalam beberapa kasus, Anda harus menyinkronkan pemicu Anda secara manual.

Anda harus menyinkronkan pemicu secara manual saat menggunakan opsi penyebaran ini:

Anda dapat menyinkronkan pemicu dengan salah satu cara berikut:

  • Hidupkan ulang aplikasi fungsi Anda di portal Microsoft Azure.

  • az rest Gunakan perintah untuk mengirim permintaan HTTP POST yang memanggil syncfunctiontriggers API, seperti dalam contoh ini:

    az rest --method post --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/sites/<APP_NAME>/syncfunctiontriggers?api-version=2016-08-01
    

Saat Anda menyebarkan versi paket penyebaran yang diperbarui dan mempertahankan URL paket eksternal yang sama, Anda perlu memulai ulang aplikasi fungsi secara manual. Ini menunjukkan kepada host bahwa host harus menyinkronkan dan menyebarkan ulang pembaruan Anda dari URL paket yang sama. Host Functions juga melakukan sinkronisasi pemicu latar belakang setelah aplikasi dimulai. Namun, untuk paket hosting Konsumsi dan Premium Elastis, Anda juga harus menyinkronkan pemicu secara manual dalam skenario ini:

  • Penyebaran menggunakan URL paket eksternal dengan Templat ARM atau Terraform.
  • Saat memperbarui paket penyebaran pada URL paket eksternal yang sama.

Build jarak jauh

Anda dapat meminta Azure Functions untuk melakukan build jarak jauh proyek kode Anda selama penyebaran. Dalam skenario ini, Anda harus meminta build jarak jauh alih-alih membangun secara lokal:

  • Anda menyebarkan aplikasi ke aplikasi fungsi berbasis Linux yang dikembangkan di komputer Windows. Ini biasanya terjadi untuk pengembangan aplikasi Python. Anda dapat berakhir dengan pustaka yang salah digunakan saat membangun paket penyebaran secara lokal di Windows.
  • Proyek Anda memiliki dependensi pada indeks paket kustom.
  • Anda ingin mengurangi ukuran paket penyebaran Anda.

Cara Anda meminta build jarak jauh bergantung pada apakah aplikasi Anda berjalan di Azure di Windows atau Linux.

Semua aplikasi fungsi yang berjalan di Windows memiliki aplikasi manajemen kecil, scm situs yang disediakan oleh Kudu. Situs ini menangani banyak penyebaran dan membangun logika untuk Azure Functions.

Saat aplikasi disebarkan ke Windows, perintah khusus bahasa, seperti dotnet restore (C#) atau npm install (JavaScript) dijalankan.

Pertimbangan berikut berlaku saat menggunakan build jarak jauh selama penyebaran:

  • Build jarak jauh didukung untuk aplikasi fungsi yang berjalan di Linux dalam paket Konsumsi. Namun, opsi penyebaran terbatas untuk aplikasi ini karena tidak memiliki scm situs (Kudu).
  • Aplikasi fungsi yang berjalan di Linux dalam paket Premium atau dalam paket Khusus (App Service) memang memiliki scm situs (Kudu), tetapi terbatas dibandingkan dengan Windows.
  • Build jarak jauh tidak dilakukan saat aplikasi menggunakan run-from-package. Untuk mempelajari cara menggunakan build jarak jauh dalam kasus ini, lihat Penyebaran Zip.
  • Anda mungkin mengalami masalah dengan build jarak jauh saat aplikasi Dibuat sebelum fitur tersedia (1 Agustus 2019). Untuk aplikasi yang lebih lama, buat aplikasi fungsi baru atau jalankan az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> untuk memperbarui aplikasi fungsi Anda. Perintah ini mungkin memerlukan dua kali percobaan untuk berhasil.

Penyimpanan konten aplikasi

Metode penyebaran berbasis paket menyimpan paket di akun penyimpanan yang terkait dengan aplikasi fungsi, yang ditentukan dalam pengaturan AzureWebJobsStorage . Jika tersedia, aplikasi paket Consumption dan Elastic Premium mencoba menggunakan berbagi konten Azure Files dari akun ini, tetapi Anda juga dapat mempertahankan paket di lokasi lain. Aplikasi paket Konsumsi Flex sebagai gantinya menggunakan kontainer penyimpanan di akun penyimpanan default, kecuali Anda mengonfigurasi akun penyimpanan lain untuk digunakan untuk penyebaran. Untuk informasi selengkapnya, tinjau detail di Tempat konten aplikasi disimpan di setiap teknologi penyebaran yang tercakup di bagian berikutnya.

Penting

Akun penyimpanan digunakan untuk menyimpan data aplikasi penting, terkadang termasuk kode aplikasi itu sendiri. Anda harus membatasi akses dari aplikasi dan pengguna lain ke akun penyimpanan.

Detail teknologi penyebaran

Metode penyebaran berikut ini tersedia di Azure Functions.

Satu penyebaran

Satu penyebaran adalah satu-satunya teknologi penyebaran yang didukung untuk aplikasi pada paket Konsumsi Flex. Hasil akhirnya adalah paket .zip siap dijalankan yang dijalankan aplikasi fungsi Anda.

Cara menggunakannya: Sebarkan dengan fitur penerbitan Visual Studio Code , atau dari baris perintah menggunakan Azure Functions Core Tools atau Azure CLI. Tugas Azure Dev Ops dan GitHub Action kami juga memanfaatkan satu penyebaran saat mendeteksi bahwa aplikasi Konsumsi Flex sedang disebarkan.

Saat membuat aplikasi Konsumsi Flex, Anda harus menentukan kontainer penyimpanan penyebaran (blob) serta metode autentikasi untuknya. Secara default akun AzureWebJobsStorage penyimpanan yang sama dengan koneksi digunakan, dengan string koneksi sebagai metode autentikasi. Dengan demikian, pengaturan penyebaran Anda dikonfigurasi selama waktu pembuatan aplikasi tanpa perlu pengaturan aplikasi.

Kapan menggunakannya: Satu penyebaran adalah satu-satunya teknologi penyebaran yang tersedia untuk aplikasi fungsi yang berjalan pada paket Konsumsi Flex.

Tempat konten aplikasi disimpan: Saat Anda membuat aplikasi fungsi Konsumsi Flex, Anda menentukan kontainer penyimpanan penyebaran. Ini adalah kontainer blob tempat platform akan mengunggah konten aplikasi yang Anda sebarkan. Untuk mengubah lokasi, Anda dapat mengunjungi bilah Pengaturan Penyebaran di portal Azure atau menggunakan Azure CLI.

Penyebaran zip

Penyebaran Zip adalah teknologi penyebaran default dan direkomendasikan untuk aplikasi fungsi pada paket Konsumsi, Elastic Premium, dan App Service (Khusus). Hasil akhirnya adalah paket .zip siap dijalankan yang dijalankan aplikasi fungsi Anda. Ini berbeda dari URL paket eksternal karena platform kami bertanggung jawab untuk membangun jarak jauh dan menyimpan konten aplikasi Anda.

Cara menggunakannya: Sebarkan dengan menggunakan alat klien favorit Anda: Visual Studio Code, Visual Studio, atau dari baris perintah menggunakan Azure Functions Core Tools atau Azure CLI. Tugas Azure Dev Ops dan GitHub Action kami juga memanfaatkan penyebaran zip.

Saat menggunakan penyebaran zip, Anda dapat mengatur aplikasi untuk dijalankan dari paket. Untuk menjalankan dari paket, atur WEBSITE_RUN_FROM_PACKAGE nilai pengaturan aplikasi ke 1. Kami merekomendasikan penyebaran zip. Ini menghasilkan waktu pemuatan yang lebih cepat untuk aplikasi Anda, dan ini adalah default untuk VS Code, Visual Studio, dan Azure CLI.

Kapan menggunakannya: Penyebaran Zip adalah teknologi penyebaran default dan direkomendasikan untuk aplikasi fungsi pada paket Konsumsi Windows, Windows dan Linux Elastic Premium, dan Windows dan Linux App Service (Khusus).

Tempat konten aplikasi disimpan: Konten aplikasi dari penyebaran zip secara default disimpan pada sistem file, yang mungkin didukung oleh Azure Files dari akun penyimpanan yang ditentukan saat aplikasi fungsi dibuat. Di Konsumsi Linux, konten aplikasi sebaliknya bertahan pada blob di akun penyimpanan yang ditentukan oleh AzureWebJobsStorage pengaturan aplikasi, dan pengaturan WEBSITE_RUN_FROM_PACKAGE aplikasi akan mengambil nilai URL blob.

URL paket eksternal

URL paket eksternal adalah opsi jika Anda ingin mengontrol secara manual bagaimana penyebaran dilakukan. Anda bertanggung jawab untuk mengunggah paket .zip siap dijalankan yang berisi konten aplikasi bawaan Anda ke penyimpanan blob dan mereferensikan URL eksternal ini sebagai pengaturan aplikasi di aplikasi fungsi Anda. Setiap kali aplikasi Anda dimulai ulang, aplikasi mengambil paket, memasangnya, dan berjalan dalam mode Jalankan Dari Paket .

Cara menggunakannya: Tambahkan WEBSITE_RUN_FROM_PACKAGE ke pengaturan aplikasi Anda. Nilai pengaturan ini harus berupa URL blob yang menunjuk ke lokasi paket tertentu yang Anda inginkan untuk dijalankan aplikasi Anda. Anda dapat menambahkan pengaturan baik di portal atau dengan menggunakan Azure CLI.

Jika Anda menggunakan Azure Blob Storage, aplikasi Fungsi Anda dapat mengakses kontainer baik dengan menggunakan koneksi berbasis identitas terkelola atau dengan tanda tangan akses bersama (SAS). Opsi yang Anda pilih memengaruhi jenis URL apa yang Anda gunakan sebagai nilai untuk WEBSITE_RUN_FROM_PACKAGE. Identitas terkelola direkomendasikan untuk keamanan keseluruhan dan karena token SAS kedaluwarsa dan harus dipertahankan secara manual.

Setiap kali Anda menyebarkan file paket yang dirujuk aplikasi fungsi, Anda harus menyinkronkan pemicu secara manual, termasuk penyebaran awal. Saat Mengubah konten file paket dan bukan URL itu sendiri, Anda juga harus memulai ulang aplikasi fungsi untuk menyinkronkan pemicu. Lihat panduan cara kami mengonfigurasi teknologi penyebaran ini.

Kapan menggunakannya: URL paket eksternal adalah satu-satunya metode penyebaran yang didukung untuk aplikasi yang berjalan pada paket Konsumsi Linux saat Anda tidak ingin build jarak jauh terjadi. Metode ini juga merupakan teknologi penyebaran yang direkomendasikan saat Anda membuat aplikasi tanpa Azure Files. Untuk aplikasi yang dapat diskalakan yang berjalan di Linux, Anda harus mempertimbangkan hosting paket Konsumsi Flex.

Tempat konten aplikasi disimpan: Anda bertanggung jawab untuk mengunggah konten aplikasi Anda ke penyimpanan blob. Anda dapat menggunakan akun penyimpanan blob apa pun, meskipun Azure Blob Storage disarankan.

Kontainer Docker

Anda dapat menyebarkan aplikasi fungsi yang berjalan di kontainer Linux.

Cara menggunakannya: Buat fungsi Anda di kontainer Linux lalu sebarkan kontainer ke paket Premium atau Khusus di Azure Functions atau host kontainer lain. Gunakan Azure Functions Core Tools untuk membuat Dockerfile yang disesuaikan untuk proyek yang Anda gunakan untuk membangun aplikasi fungsi dalam kontainer. Anda dapat menggunakan kontainer dalam penyebaran berikut:

Kapan menggunakannya: Gunakan opsi kontainer Docker saat Anda memerlukan kontrol lebih besar atas lingkungan Linux tempat aplikasi fungsi Anda berjalan dan tempat kontainer dihosting. Mekanisme penyebaran ini hanya tersedia untuk fungsi yang berjalan di Linux.

Tempat konten aplikasi disimpan: Konten aplikasi disimpan dalam registri kontainer yang ditentukan sebagai bagian dari gambar.

Kontrol sumber

Anda dapat mengaktifkan integrasi berkelanjutan antara aplikasi fungsi dan repositori kode sumber. Dengan kontrol sumber diaktifkan, pembaruan ke kode di repositori sumber yang terhubung memicu penyebaran kode terbaru dari repositori. Untuk informasi selengkapnya, lihat Penyebaran berkelanjutan untuk Azure Functions.

Cara menggunakannya: Cara term mudah untuk menyiapkan penerbitan dari kontrol sumber adalah dari Pusat Penyebaran di area Fungsi portal. Untuk informasi selengkapnya, lihat Penerapan berkelanjutan untuk Azure Functions.

Kapan menggunakannya: Menggunakan kontrol sumber adalah praktik terbaik untuk tim yang berkolaborasi pada aplikasi fungsinya. Kontrol sumber adalah opsi penyebaran yang baik yang memungkinkan alur penyebaran yang lebih canggih. Kontrol sumber biasanya diaktifkan pada slot penahapan, yang dapat ditukar menjadi produksi setelah validasi pembaruan dari repositori. Untuk informasi selengkapnya, lihat Slot penyebaran Azure Functions.

Tempat konten aplikasi disimpan: Konten aplikasi berada di sistem kontrol sumber, tetapi konten aplikasi yang dikloning dan dibuat secara lokal disimpan di sistem file aplikasi, yang mungkin didukung oleh Azure Files dari akun penyimpanan yang ditentukan saat aplikasi fungsi dibuat.

Git Lokal

Anda dapat menggunakan Git lokal untuk mendorong kode dari komputer lokal Anda ke Azure Functions dengan menggunakan Git.

Cara menggunakannya: Ikuti instruksi dalam penyebaran Git Lokal ke Azure App Service.

Kapan menggunakannya: Untuk mengurangi kemungkinan kesalahan, Anda harus menghindari penggunaan metode penyebaran yang memerlukan langkah tambahan untuk menyinkronkan pemicu secara manual. Gunakan penyebaran zip jika memungkinkan.

Tempat konten aplikasi disimpan: Konten aplikasi disimpan di sistem file, yang mungkin didukung oleh Azure Files dari akun penyimpanan yang ditentukan saat aplikasi fungsi dibuat.

FTP/S

Anda dapat menggunakan FTP/S untuk langsung mentransfer file ke Azure Functions, meskipun metode penyebaran ini tidak disarankan. Saat Anda tidak berencana menggunakan FTP, Anda harus menonaktifkannya. Jika Anda memilih untuk menggunakan FTP, Anda harus memberlakukan FTPS. Untuk mempelajari caranya di portal Azure, lihat Menerapkan FTPS.

Cara menggunakannya: Ikuti instruksi dalam pengaturan penyebaran FTPS untuk mendapatkan URL dan kredensial yang dapat Anda gunakan untuk menyebarkan ke aplikasi fungsi Anda menggunakan FTPS.

Kapan menggunakannya: Untuk mengurangi kemungkinan kesalahan, Anda harus menghindari penggunaan metode penyebaran yang memerlukan langkah tambahan untuk menyinkronkan pemicu secara manual. Gunakan penyebaran zip jika memungkinkan.

Tempat konten aplikasi disimpan: Konten aplikasi disimpan di sistem file, yang mungkin didukung oleh Azure Files dari akun penyimpanan yang ditentukan saat aplikasi fungsi dibuat.

Pengeditan portal

Di editor berbasis portal, Anda dapat langsung mengedit file yang ada di aplikasi fungsi Anda (pada dasarnya menyebarkan setiap kali Anda menyimpan perubahan).

Cara menggunakannya: Untuk dapat mengedit fungsi Anda di portal Azure, Anda harus membuat fungsi Anda di portal. Untuk mempertahankan satu sumber kebenaran, menggunakan metode penyebaran lainnya membuat fungsi Anda baca-saja dan mencegah pengeditan portal yang berkelanjutan. Untuk kembali ke status di mana Anda dapat mengedit file di portal Azure, Anda dapat mengubah kembali mode edit secara manual ke Read/Write dan menghapus pengaturan aplikasi terkait penyebaran (seperti WEBSITE_RUN_FROM_PACKAGE).

Kapan menggunakannya: Portal adalah cara yang tepat untuk memulai dengan Azure Functions. Untuk pekerjaan pengembangan yang lebih canggih, kami sarankan Anda menggunakan salah satu alat klien berikut:

Tempat konten aplikasi disimpan: Konten aplikasi disimpan di sistem file, yang mungkin didukung oleh Azure Files dari akun penyimpanan yang ditentukan saat aplikasi fungsi dibuat.

Tabel berikut ini memperlihatkan sistem operasi dan bahasa yang mendukung pengeditan di portal:

Bahasa Konsumsi Windows Windows Premium Windows Khusus Konsumsi Linux Linux Premium Linux Khusus
C#1
Java
JavaScript (Node.js)
Python2
PowerShell
TypeScript (Node.js)

1 Pengeditan di portal hanya didukung untuk file skrip C#, yang berjalan dalam proses dengan host. Untuk informasi selengkapnya, lihat referensi pengembang skrip Azure Functions C# (.csx).
2 Pengeditan dalam portal hanya didukung untuk model pemrograman Python v1.

Perilaku penyebaran

Saat Anda menyebarkan pembaruan ke kode aplikasi fungsi Anda, fungsi yang saat ini dijalankan dihentikan. Setelah penyebaran selesai, kode baru dimuat untuk mulai memproses permintaan. Tinjau Meningkatkan performa dan keandalan Azure Functions untuk mempelajari cara menulis fungsi stateless dan defensif.

Jika Anda membutuhkan kontrol lebih besar atas transisi ini, Anda harus menggunakan slot penyebaran.

Slot penyebaran

Saat menerapkan aplikasi fungsi ke Azure, Anda dapat menyebarkan ke slot penyebaran terpisah, bukan langsung ke produksi. Menyebarkan ke slot penyebaran lalu bertukar ke produksi setelah verifikasi adalah cara yang disarankan untuk mengonfigurasi penyebaran berkelanjutan.

Cara Anda menyebarkan ke slot tergantung pada alat penyebaran tertentu yang Anda gunakan. Misalnya, saat menggunakan Azure Functions Core Tools, Anda menyertakan--slot opsi untuk menunjukkan nama slot tertentu untuk perintah tersebut func azure functionapp publish .

Untuk informasi selengkapnya tentang slot penyebaran, lihat dokumentasi Slot Penyebaran Azure Functions untuk detailnya.

Langkah berikutnya

Baca artikel ini untuk mempelajari selengkapnya tentang menerapkan aplikasi fungsi Anda: