Membuat fungsi pertama Anda di Azure Arc (pratinjau)

Dalam panduan mulai cepat ini, Anda akan membuat proyek Azure Functions dan menyebarkannya ke aplikasi fungsi yang berjalan pada kluster Kubernetes yang mendukung Azure Arc. Untuk mempelajari selengkapnya, lihat Layanan Aplikasi, Fungsi, dan Aplikasi Logika di Azure Arc. Skenario ini hanya mendukung aplikasi fungsi yang berjalan di Linux.

Catatan

Dukungan untuk menjalankan fungsi pada kluster Kube dengan dukungan Azure Arc saat ini sedang dalam pratinjau.

Pemublikasian proyek fungsi PowerShell ke kluster Kubernetes yang mendukung Azure Arc saat ini tidak didukung. Jika Anda perlu menyebarkan fungsi PowerShell ke kluster Kubernetes yang mendukung Azure Arc, buat aplikasi fungsi Anda dalam kontainer.

Jika Anda perlu menyesuaikan kontainer tempat aplikasi fungsi Anda berjalan, lihat Membuat fungsi kontainer pertama Anda di Azure Arc (pratinjau).

Prasyarat

Di komputer lokal:

Instal Azure Functions Core Tools

Cara yang disarankan untuk menginstal Core Tools tergantung pada sistem operasi komputer pengembangan lokal Anda.

Langkah-langkah berikut menggunakan penginstal Windows (MSI) untuk menginstal Core Tools v4.x. Untuk informasi selengkapnya tentang penginstal berbasis paket lainnya, lihat Core Tools readme.

Unduh dan jalankan penginstal Core Tools, berdasarkan versi Windows Anda:

Jika sebelumnya Anda menggunakan penginstal Windows (MSI) untuk menginstal Core Tools di Windows, Anda harus menghapus instalan versi lama dari Tambahkan Hapus Program sebelum menginstal versi terbaru.

Buat lingkungan Kubernetes App Service

Sebelum memulai, Anda harus membuat lingkungan Kubernetes App Service untuk kluster Kubernetes yang mendukung Azure Arc.

Catatan

Saat Anda membuat lingkungan, pastikan untuk mencatat nama lokasi kustom dan nama grup sumber daya yang berisi lokasi kustom. Anda dapat menggunakannya untuk menemukan ID lokasi kustom, yang akan Anda perlukan saat membuat aplikasi fungsi di lingkungan.

Jika Anda tidak membuat lingkungan, tanyakan kepada administrator kluster Anda.

Menambahkan ekstensi Azure CLI

Luncurkan lingkungan Bash di Azure Cloud Shell.

Karena perintah CLI ini belum menjadi bagian dari set CLI inti, tambahkan dengan perintah berikut:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

Membuat proyek fungsi lokal

Di Azure Functions, proyek fungsi adalah unit penyebaran untuk satu atau beberapa fungsi individual yang masing-masing merespons pemicu tertentu. Semua fungsi dalam proyek memiliki konfigurasi lokal dan hosting yang sama. Di bagian ini, Anda membuat proyek fungsi yang berisi satu fungsi.

  1. Jalankan perintah func init, sebagai berikut, untuk membuat proyek fungsi dalam folder bernama LocalFunctionProj dengan runtime bahasa umum yang ditentukan:

    func init LocalFunctionProj --dotnet
    
  2. Navigasi ke folder proyek:

    cd LocalFunctionProj
    

    Folder ini berisi berbagai file untuk proyek, termasuk file konfigurasi bernama local.settings.json dan host.json. Secara default, file local.settings.json dikecualikan dari kontrol sumber dalam file .gitignore. Pengecualian ini dikarenakan file dapat berisi rahasia yang diunduh dari Azure.

  3. Tambahkan fungsi ke proyek Anda dengan menggunakan perintah berikut, yang mana argumen --name adalah nama unik fungsi Anda (HttpExample) dan argumen --template menentukan pemicu fungsi (HTTP).

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

Jalankan fungsi secara lokal

  1. Jalankan fungsi Anda dengan memulai host runtime Azure Functions lokal dari folder LocalFunctionProj.

    func start
    

    Menjelang akhir output, baris berikut harus muncul:

    Screenshot of terminal window output when running function locally.

    Catatan

    Jika HttpExample tidak muncul seperti yang ditunjukkan di atas, Anda mungkin memulai hosting dari luar folder akar proyek. Dalam kasus tersebut, gunakan Ctrl+C untuk menghentikan hosting, buka folder akar proyek, dan jalankan kembali perintah sebelumnya.

  2. Salin URL fungsi HTTP Anda dari output ini ke browser dan tambahkan string ?name=<YOUR_NAME>kueri , membuat URL lengkap seperti http://localhost:7071/api/HttpExample?name=Functions. Browser akan menampilkan pesan tanggapan yang mengulang nilai string kueri Anda. Terminal tempat Anda memulai proyek juga menunjukkan output log saat Anda membuat permintaan.

  3. Jika sudah selesai, tekan Ctrl + C dan ketik y untuk menghentikan hosting fungsi.

Mendapatkan lokasi kustom

Agar dapat membuat aplikasi fungsi di lokasi kustom, Anda harus mendapatkan informasi tentang lingkungan.

Dapatkan informasi berikut tentang lokasi kustom dari admin kluster (lihat Membuat lokasi kustom).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

Dapatkan ID lokasi kustom untuk langkah berikutnya.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

Membuat sumber daya Azure

Sebelum dapat menyebarkan kode fungsi ke lingkungan App Service Kubernetes baru, Anda harus membuat dua sumber daya lainnya:

  • Akun penyimpanan. Meskipun artikel ini membuat akun penyimpanan, dalam beberapa kasus akun penyimpanan mungkin tidak diperlukan. Untuk informasi selengkapnya, lihat kluster yang dengan dukungan Azure Arc di artikel pertimbangan penyimpanan.
  • Aplikasi fungsi, yang menyediakan konteks untuk menjalankan kode fungsi Anda. Aplikasi fungsi berjalan di lingkungan App Service Kubernetes dan dipetakan ke proyek fungsi lokal Anda. Aplikasi fungsi memungkinkan Anda untuk mengelompokkan fungsi sebagai unit logis untuk manajemen, penyebaran, dan berbagi sumber daya yang lebih mudah.

Catatan

Aplikasi fungsi berjalan di lingkungan App Service Kubernetes pada paket Khusus (App Service). Saat Anda membuat aplikasi fungsi tanpa paket yang ada, paket yang benar akan dibuat untuk Anda.

Membuat Akun penyimpanan

Gunakan perintah az storage account create untuk membuat akun penyimpanan dengan tujuan umum di grup dan wilayah sumber daya Anda:

az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

Catatan

Dalam beberapa kasus, akun penyimpanan mungkin tidak diperlukan. Untuk informasi selengkapnya, lihat kluster yang dengan dukungan Azure Arc di artikel pertimbangan penyimpanan.

Di contoh sebelumnya, ganti <STORAGE_NAME> dengan nama yang sesuai untuk Anda dan unik di Azure Storage. Nama harus berisi tiga hingga 24 karakter angka dan huruf kecil saja. Standard_LRS menentukan akun tujuan umum, yang didukung oleh Functions. Nilai --location merupakan wilayah Azure standar.

Buat aplikasi fungsi

Jalankan perintah buat functionapp az untuk membuat aplikasi fungsi baru di lingkungan.

az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet 

Dalam contoh ini, ganti <CUSTOM_LOCATION_ID> dengan ID lokasi kustom yang Anda tentukan untuk lingkungan App Service Kubernetes. Selain itu, ganti <STORAGE_NAME> dengan nama akun yang Anda gunakan di langkah sebelumnya, dan ganti <APP_NAME> dengan nama unik global yang sesuai untuk Anda.

Menyebarkan proyek fungsi ke Azure

Setelah berhasil membuat aplikasi fungsi di Azure, kini Anda siap untuk menyebarkan proyek fungsi lokal Anda menggunakan perintah func fungsi azureapp publish.

Dalam contoh berikut, ganti <APP_NAME> dengan nama aplikasi Anda.

func azure functionapp publish <APP_NAME>

Perintah terbitkan menunjukkan hasil yang mirip dengan output berikut (dipotong agar sederhana):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

Karena perlu beberapa waktu agar penyebaran penuh untuk diselesaikan pada kluster Kubernetes dengan dukungan Azure Arc, Anda mungkin ingin menjalankan kembali perintah berikut untuk memverifikasi fungsi yang dipublikasikan:

func azure functionapp list-functions

Menggunakan fungsi pada Azure

Karena fungsi Anda menggunakan pemicu HTTP, Anda memanggilnya dengan membuat permintaan HTTP ke URL-nya di browser atau dengan alat seperti curl.

Salin Panggilan URL lengkap yang ditampilkan dalam output perintah terbitkan ke bilah alamat browser, menambahkan parameter kueri ?name=Functions. Browser harus menampilkan output yang sama seperti saat Anda menjalankan fungsi secara lokal.

The output of the function run on Azure in a browser

Langkah berikutnya

Setelah aplikasi fungsi berjalan di kontainer pada lingkungan App Service Kube dengan dukungan Azure Arc, Anda dapat menyambungkannya ke Azure Storage dengan menambahkan pengikatan output Queue Storage.