Bagikan melalui


Membuat dan mengelola aplikasi fungsi dalam paket Konsumsi Flex

Artikel ini memperlihatkan kepada Anda cara membuat aplikasi fungsi yang dihosting dalam paket Konsumsi Flex di Azure Functions. Ini juga menunjukkan kepada Anda cara mengelola fitur tertentu dari aplikasi yang dihosting paket Konsumsi Flex.

Sumber daya aplikasi fungsi khusus untuk langauge. Pastikan untuk memilih bahasa pengembangan kode pilihan Anda di awal artikel.

Penting

Paket Konsumsi Flex saat ini dalam pratinjau.

Prasyarat

Membuat aplikasi Konsumsi Flex

Bagian ini memperlihatkan kepada Anda cara membuat aplikasi fungsi dalam paket Konsumsi Flex dengan menggunakan Azure CLI, portal Azure, atau Visual Studio Code. Untuk contoh membuat aplikasi dalam paket Konsumsi Flex menggunakan templat Bicep/ARM, lihat repositori Konsumsi Flex.

Anda dapat melewati bagian ini jika Anda memilih untuk membuat dan menyebarkan aplikasi menggunakan Maven.

Untuk mendukung kode fungsi, Anda perlu membuat tiga sumber daya:

  • Grup sumber daya, yang merupakan kontainer logis untuk sumber daya terkait.
  • Akun penyimpanan, yang digunakan untuk mempertahankan status dan informasi lain tentang fungsi Anda.
  • Aplikasi fungsi dalam paket Konsumsi Flex, yang menyediakan lingkungan untuk menjalankan kode fungsi Anda. Aplikasi fungsi memetakan ke proyek fungsi lokal Anda dan memungkinkan Anda mengelompokkan fungsi sebagai unit logis untuk manajemen, penyebaran, dan berbagi sumber daya yang lebih mudah dalam paket Konsumsi Flex.
  1. Jika Anda belum melakukannya, masuk ke Azure:

    az login
    

    Perintah memasukkan az login Anda ke akun Azure Anda.

  2. az functionapp list-flexconsumption-locations Gunakan perintah untuk meninjau daftar wilayah yang saat ini mendukung Konsumsi Flex.

    az functionapp list-flexconsumption-locations --output table
    
  1. Buat grup sumber daya di salah satu wilayah yang saat ini didukung:

    az group create --name <RESOURCE_GROUP> --location <REGION>
    

    Dalam perintah di atas, ganti <RESOURCE_GROUP> dengan nilai yang unik dalam langganan Anda dan <REGION> dengan salah satu wilayah yang saat ini didukung. Perintah az group create membuat grup sumber daya.

  2. Buat akun penyimpanan tujuan umum di grup sumber daya dan wilayah Anda:

    az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group <RESOURCE_GROUP> --sku Standard_LRS --allow-blob-public-access false
    

    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. Perintah az storage account create membuat akun penyimpanan.

    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.

  3. Buat aplikasi fungsi di Azure:

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0 
    

    Aplikasi C# yang berjalan dalam proses saat ini tidak didukung saat berjalan dalam paket Konsumsi Flex.

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime java --runtime-version 17 
    

    Untuk aplikasi Java, Java 11 juga saat ini didukung.

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime node --runtime-version 20 
    
    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime python --runtime-version 3.11 
    

    Untuk aplikasi Python, Python 3.10 juga saat ini didukung.

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime powershell --runtime-version 7.4 
    

    Dalam contoh ini, ganti dan <RESOURCE_GROUP> <STORAGE_NAME> dengan grup sumber daya dan nama akun yang Anda gunakan di langkah sebelumnya. <APP_NAME> Ganti juga dengan nama unik global yang sesuai untuk Anda. <APP_NAME> ini juga merupakan domain server nama domain (DNS) default untuk aplikasi fungsi. Perintah az functionapp create membuat aplikasi fungsi di Azure.

    Perintah ini membuat aplikasi fungsi yang berjalan dalam paket Konsumsi Flex. Versi runtime bahasa tertentu yang digunakan adalah versi yang saat ini didukung dalam pratinjau.

    Karena Anda membuat aplikasi tanpa menentukan instans yang selalu siap, aplikasi Anda hanya dikenakan biaya saat menjalankan fungsi secara aktif. Perintah ini juga membuat instans Azure Application Insights terkait dalam grup sumber daya yang sama, yang dengannya Anda dapat memantau aplikasi fungsi dan melihat log. Untuk mengetahui informasi selengkapnya, lihat Memantau Azure Functions.

    
    

Menyebarkan proyek kode Anda

Anda dapat melewati bagian ini jika Anda memilih untuk membuat dan menyebarkan aplikasi menggunakan Maven.

Anda dapat memilih untuk menyebarkan kode proyek ke aplikasi fungsi yang ada menggunakan berbagai alat:

Penting

Penyebaran ke aplikasi fungsi yang ada selalu menimpa konten aplikasi tersebut di Azure.

  1. Di palet perintah, cari dan jalankan perintah Azure Functions: Deploy to Function App....

  2. Pilih aplikasi fungsi yang baru saja Anda buat. Saat diminta untuk menimpa penyebaran sebelumnya, pilih Sebarkan untuk menyebarkan kode fungsi Anda ke sumber daya aplikasi fungsi baru.

  3. Setelah penyebaran selesai, pilih Tampilkan Output untuk melihat hasil pembuatan dan penyebaran, termasuk sumber daya Azure yang Anda buat. Jika melewatkan pemberitahuan, pilih ikon bel di sudut kanan bawah untuk melihatnya lagi.

    Cuplikan layar jendela Tampilan Output.

Membuat dan menyebarkan aplikasi Anda menggunakan Maven

Anda dapat menggunakan Maven untuk membuat aplikasi fungsi yang dihosting Flex Consumption dan sumber daya yang diperlukan selama penyebaran dengan memodifikasi file pom.xml.

  1. Buat proyek kode Java dengan menyelesaikan bagian pertama dari salah satu artikel mulai cepat ini:

  2. Di proyek kode Java Anda, buka file pom.xml dan buat perubahan ini untuk membuat aplikasi fungsi Anda dalam paket Konsumsi Flex:

    • Ubah nilai <properties>.<azure.functions.maven.plugin.version> menjadi 1.34.0.

    • Di bagian <plugin>.<configuration> untuk azure-functions-maven-plugin, tambahkan atau batalkan <pricingTier> komentar elemen sebagai berikut:

      <pricingTier>Flex Consumption</pricingTier>
      
  3. (Opsional) Sesuaikan paket Konsumsi Flex dalam penyebaran Maven Anda dengan juga menyertakan elemen-elemen ini di bagian <plugin>.<configuration> : .

  4. Sebelum Anda dapat menyebarkan, masuk ke langganan Azure Anda menggunakan Azure CLI.

    az login
    

    Perintah memasukkan az login Anda ke akun Azure Anda.

  5. Gunakan perintah berikut untuk menyebarkan proyek kode Anda ke aplikasi fungsi baru di Flex Consumption.

    mvn azure-functions:deploy
    

    Maven menggunakan pengaturan dalam templat pom.xml untuk membuat aplikasi fungsi Anda dalam paket Konsumsi Flex di Azure, bersama dengan sumber daya lain yang diperlukan. Jika sumber daya ini sudah ada, kode disebarkan ke aplikasi fungsi Anda, menimpa kode yang ada.

Aktifkan integrasi jaringan virtual

Anda dapat mengaktifkan integrasi jaringan virtual untuk aplikasi Anda dalam paket Konsumsi Flex. Contoh di bagian ini mengasumsikan bahwa Anda sudah membuat jaringan virtual dengan subnet di akun Anda. Anda dapat mengaktifkan integrasi jaringan virtual saat membuat aplikasi atau di lain waktu.

Untuk mengaktifkan jaringan virtual saat Membuat aplikasi:

Anda dapat mengaktifkan integrasi jaringan virtual dengan menjalankan az functionapp create perintah dan menyertakan --vnet parameter dan --subnet .

  1. Buat jaringan virtual dan subnet, jika Anda belum melakukannya.

  2. Selesaikan langkah 1-4 di Membuat aplikasi Konsumsi Flex untuk membuat sumber daya yang diperlukan oleh aplikasi Anda.

  3. Jalankan az functionapp create perintah , termasuk --vnet parameter dan --subnet , seperti dalam contoh ini:

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime <RUNTIME_NAME> --runtime-version <RUNTIME_VERSION> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>
    

    Nilainya <VNET_RESOURCE_ID> adalah ID sumber daya untuk jaringan virtual, yang dalam format: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCER_GROUP>/providers/Microsoft.Network/virtualNetworks/<VNET_NAME>. Anda dapat menggunakan perintah ini untuk mendapatkan daftar ID jaringan virtual, yang difilter oleh <RESOURCE_GROUP>: az network vnet list --resource-group <RESOURCE_GROUP> --output tsv --query "[]".id.

Untuk contoh end-to-end tentang cara membuat aplikasi di Konsumsi Flex dengan integrasi jaringan virtual, lihat sumber daya ini:

Untuk mengubah atau menghapus integrasi jaringan virtual di aplikasi yang ada:

az functionapp vnet-integration add Gunakan perintah untuk mengaktifkan integrasi jaringan virtual ke aplikasi fungsi yang ada:

az functionapp vnet-integration add --resource-group <RESOURCE_GROUP> --name <APP_NAME> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>

az functionapp vnet-integration remove Gunakan perintah untuk menonaktifkan integrasi jaringan virtual di aplikasi Anda:

az functionapp vnet-integration remove --resource-group <RESOURCE_GROUP> --name <APP_NAME>

az functionapp vnet-integration list Gunakan perintah untuk mencantumkan integrasi jaringan virtual saat ini untuk aplikasi Anda:

az functionapp vnet-integration list --resource-group <RESOURCE_GROUP> --name <APP_NAME>

Saat memilih subnet, pertimbangan ini berlaku:

  • Subnet yang Anda pilih belum dapat digunakan untuk tujuan lain, seperti dengan titik akhir privat atau titik akhir layanan, atau didelegasikan ke paket atau layanan hosting lainnya.
  • Anda dapat berbagi subnet yang sama dengan lebih dari satu aplikasi yang berjalan dalam paket Konsumsi Flex. Karena sumber daya jaringan dibagikan di semua aplikasi, satu aplikasi fungsi mungkin berdampak pada performa orang lain pada subnet yang sama.
  • Dalam paket Konsumsi Flex, aplikasi fungsi tunggal mungkin menggunakan hingga 40 alamat IP, bahkan ketika aplikasi menskalakan melebihi 40 instans. Meskipun aturan praktis ini berguna saat memperkirakan ukuran subnet yang Anda butuhkan, aturan ini tidak diberlakukan secara ketat.

Mengonfigurasi pengaturan penyebaran

Dalam paket Konsumsi Flex, paket penyebaran yang berisi kode aplikasi Anda dipertahankan dalam kontainer Azure Blob Storage. Secara default, penyebaran menggunakan akun penyimpanan yang sama (AzureWebJobsStorage) dan nilai string koneksi yang digunakan oleh runtime Functions untuk mempertahankan aplikasi Anda. string koneksi disimpan dalam DEPLOYMENT_STORAGE_CONNECTION_STRING pengaturan aplikasi. Namun, Anda dapat menunjuk kontainer blob di akun penyimpanan terpisah sebagai sumber penyebaran untuk kode Anda. Anda juga dapat mengubah metode autentikasi yang digunakan untuk mengakses kontainer.

Sumber penyebaran yang disesuaikan harus memenuhi kriteria ini:

  • Akun penyimpanan harus sudah ada.
  • Kontainer yang digunakan untuk penyebaran juga harus ada.
  • Ketika lebih dari satu aplikasi menggunakan akun penyimpanan yang sama, masing-masing harus memiliki kontainer penyebarannya sendiri. Menggunakan kontainer unik untuk setiap aplikasi mencegah paket penyebaran ditimpa, yang akan terjadi jika aplikasi berbagi kontainer yang sama.

Saat mengonfigurasi autentikasi penyimpanan penyebaran, ingatlah pertimbangan ini:

  • Saat Anda menggunakan string koneksi untuk menyambungkan ke akun penyimpanan penyebaran, pengaturan aplikasi yang berisi string koneksi harus sudah ada.
  • Saat Anda menggunakan identitas terkelola yang ditetapkan pengguna, identitas yang disediakan akan ditautkan ke aplikasi fungsi. Peran Storage Blob Data Contributor yang dilingkup ke akun penyimpanan penyebaran juga akan ditetapkan ke identitas.
  • Saat Anda menggunakan identitas terkelola yang ditetapkan sistem, identitas akan dibuat saat identitas yang ditetapkan sistem yang valid belum ada di aplikasi Anda. Ketika identitas yang ditetapkan sistem memang ada, peran yang Storage Blob Data Contributor dilingkup ke akun penyimpanan penyebaran juga akan ditetapkan ke identitas.

Untuk mengonfigurasi pengaturan penyebaran saat Membuat aplikasi fungsi di paket Konsumsi Flex:

az functionapp create Gunakan perintah dan berikan opsi tambahan ini yang menyesuaikan penyimpanan penyebaran:

Parameter Deskripsi
--deployment-storage-name Nama akun penyimpanan penyebaran.
--deployment-storage-container-name Nama kontainer di akun untuk berisi paket penyebaran aplikasi Anda.
--deployment-storage-auth-type Jenis autentikasi yang digunakan untuk menyambungkan ke akun penyimpanan penyebaran. Nilai yang diterima meliputi StorageAccountConnectionString, UserAssignedIdentity, dan SystemAssignedIdentity.
--deployment-storage-auth-value Saat menggunakan StorageAccountConnectionString, parameter ini diatur ke nama pengaturan aplikasi yang berisi string koneksi ke akun penyimpanan penyebaran. Saat menggunakan UserAssignedIdentity, parameter ini diatur ke nama ID sumber daya identitas yang ingin Anda gunakan.

Contoh ini membuat aplikasi fungsi dalam paket Konsumsi Flex dengan akun penyimpanan penyebaran terpisah dan identitas yang ditetapkan pengguna:

az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime dotnet-isolated --runtime-version 8.0 --flexconsumption-location "<REGION>" --deployment-storage-name <DEPLOYMENT_ACCCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME> --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value <MI_RESOURCE_ID>

Anda juga dapat mengubah konfigurasi penyimpanan penyebaran untuk aplikasi yang ada.

az functionapp deployment config set Gunakan perintah untuk mengubah konfigurasi penyimpanan penyebaran:

az functionapp deployment config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --deployment-storage-name <DEPLOYMENT_ACCCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME>

Mengonfigurasi memori instans

Ukuran memori instans yang digunakan oleh paket Konsumsi Flex Anda dapat diatur secara eksplisit saat Anda membuat aplikasi. Untuk informasi selengkapnya tentang ukuran yang didukung, lihat Memori instans.

Untuk mengatur ukuran memori instans yang berbeda dari default saat membuat aplikasi Anda:

Tentukan --instance-memory parameter dalam perintah Anda az functionapp create . Contoh ini membuat aplikasi C# dengan ukuran 4096instans :

az functionapp create --instance-memory 4096 --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0

Kapan saja, Anda dapat mengubah pengaturan ukuran memori instans yang digunakan oleh aplikasi Anda.

Contoh ini menggunakan perintah untuk mengubah pengaturan ukuran memori instans az functionapp scale config set menjadi 4.096 MB:

az functionapp scale config set --resource-group <resourceGroup> --name <APP_NAME> --instance-memory 4096

Atur jumlah instans yang selalu siap

Anda dapat mengatur sejumlah instans yang selalu siap untuk grup penskalaan Per fungsi atau fungsi individual, untuk menjaga fungsi Anda tetap dimuat dan siap dijalankan. Ada tiga grup khusus, seperti dalam penskalakan per fungsi:

  • http - semua fungsi yang dipicu HTTP dalam skala aplikasi bersama-sama ke dalam instans mereka sendiri.
  • durable - semua fungsi yang dipicu Tahan Lama (Orkestrasi, Aktivitas, Entitas) dalam skala aplikasi bersama-sama ke dalam instans mereka sendiri.
  • blob - semua fungsi yang dipicu blob (Event Grid) dalam skala aplikasi bersama-sama ke dalam instans mereka sendiri.

Gunakan http, durable atau blob sebagai nama untuk pengaturan pasangan nilai nama untuk mengonfigurasi jumlah selalu siap untuk grup ini. Untuk semua fungsi lain dalam aplikasi, Anda perlu mengonfigurasi selalu siap untuk setiap fungsi individu menggunakan format function:<FUNCTION_NAME>=n.

--always-ready-instances Gunakan parameter dengan az functionapp create perintah untuk menentukan satu atau beberapa penetapan instans yang selalu siap. Contoh ini mengatur jumlah instans yang selalu siap untuk semua fungsi yang dipicu HTTP ke 5:

az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances http=10

Contoh ini mengatur jumlah instans yang selalu siap untuk semua fungsi pemicu Durable ke 3 dan mengatur jumlah instans yang selalu siap untuk 2 fungsi yang dipicu bus layanan bernama function5:

az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances durable=3 function:function5=2

Anda juga dapat memodifikasi instans yang selalu siap pada aplikasi yang ada dengan menambahkan atau menghapus penandaan instans atau dengan mengubah jumlah penandaan instans yang ada.

Contoh ini menggunakan perintah untuk mengubah jumlah instans az functionapp scale config always-ready set yang selalu siap untuk grup pemicu HTTP menjadi 10:

az functionapp scale config always-ready set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --settings http=10

Untuk menghapus instans yang selalu siap, gunakan az functionapp scale config always-ready delete perintah , seperti dalam contoh ini yang menghapus semua instans yang selalu siap dari grup pemicu HTTP dan juga fungsi bernama hello_world:

az functionapp scale config always-ready delete --resource-group <RESOURCE_GROUP> --name <APP_NAME> --setting-names http hello_world

Mengatur batas konkurensi HTTP

Kecuali Anda menetapkan batas tertentu, default konkurensi HTTP untuk aplikasi paket Konsumsi Flex ditentukan berdasarkan pengaturan ukuran instans Anda. Untuk informasi selengkapnya, lihat Konkurensi pemicu HTTP.

Berikut cara mengatur batas konkurensi HTTP untuk aplikasi yang sudah ada:

az functionapp scale config set Gunakan perintah untuk mengatur batas konkurensi HTTP tertentu untuk aplikasi Anda, terlepas dari ukuran instans.

az functionapp scale config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --trigger-type http --trigger-settings perInstanceConcurrency=10

Contoh ini mengatur tingkat konkurensi pemicu HTTP ke 10. Setelah Anda secara khusus menetapkan nilai konkurensi HTTP, nilai tersebut dipertahankan meskipun ada perubahan dalam pengaturan ukuran instans aplikasi Anda.

Menampilkan wilayah yang saat ini didukung

Selama pratinjau, Anda hanya dapat berjalan pada paket Konsumsi Flex hanya di wilayah yang dipilih. Untuk melihat daftar wilayah yang saat ini mendukung paket Konsumsi Flex:

  1. Jika Anda belum melakukannya, masuk ke Azure:

    az login
    

    Perintah memasukkan az login Anda ke akun Azure Anda.

  2. az functionapp list-flexconsumption-locations Gunakan perintah untuk meninjau daftar wilayah yang saat ini mendukung Konsumsi Flex.

    az functionapp list-flexconsumption-locations --output table
    

Saat Anda membuat aplikasi di portal Azure atau dengan menggunakan Visual Studio Code, wilayah yang saat ini tidak didukung difilter dari daftar wilayah.