Bagikan melalui


Menggunakan Azure Functions di Azure Container Apps

Artikel ini memperlihatkan kepada Anda cara membuat aplikasi Azure Functions di Azure Container Apps, lengkap dengan aturan penskalaan otomatis yang telah dikonfigurasi sebelumnya.

Prasyarat

Sumber Daya Deskripsi
Akun Azure Sebuah akun Azure dengan langganan aktif.

Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Akun Azure Storage Akun penyimpanan blob untuk menyimpan status untuk Azure Functions Anda.
Azure Application Insights Instans Azure Application Insights untuk mengumpulkan data tentang aplikasi kontainer Anda.

Membuat aplikasi Functions

Langkah-langkah berikut menunjukkan cara menggunakan gambar kontainer sampel untuk membuat aplikasi kontainer Anda. Jika Anda ingin menggunakan prosedur ini dengan gambar kontainer kustom, lihat Membuat aplikasi fungsi pertama Anda di Azure Container Apps.

  1. Buka portal Microsoft Azure dan cari Aplikasi Kontainer di bilah pencarian.

  2. Pilih Aplikasi Kontainer.

  3. Pilih Buat.

  4. Pilih Aplikasi Kontainer.

  5. Di bagian Dasar , masukkan nilai berikut ini.

    Di bawah Detail proyek:

    Harta benda Nilai
    Langganan Pilih langganan Azure Anda.
    Grup sumber daya Pilih Buat grup sumber daya baru, beri nama my-aca-functions-group, dan pilih OK.
    Nama aplikasi container Masukkan my-aca-functions-app.
  6. Di samping Optimalkan untuk Azure Functions, centang kotak centang.

    Cuplikan layar portal Microsoft Azure saat Anda membuat aplikasi kontainer yang telah dikonfigurasi sebelumnya untuk Azure Functions.

  7. Di bawah lingkungan Aplikasi Kontainer, masukkan:

    Harta benda Nilai
    Wilayah Pilih wilayah terdekat dengan Anda.
    Lingkungan Aplikasi Container Pilih Buat lingkungan baru.
  8. Di jendela penyiapan lingkungan, masukkan:

    Harta benda Nilai
    Nama lingkungan Masukkan my-aca-functions-environment
    Zona redundansi Pilih Dinonaktifkan.
  9. Pilih Buat untuk menyimpan nilai Anda.

  10. Pilih Berikutnya: Kontainer untuk beralih ke bagian Kontainer .

  11. Di samping Gunakan gambar mulai cepat, biarkan kotak ini tidak dicentang.

  12. Di bawah bagian Detail kontainer , masukkan nilai berikut ini.

    Harta benda Nilai
    Nama Kotak ini telah diisi sebelumnya dengan pilihan Anda di bagian sebelumnya.
    Sumber gambar Pilih Docker Hub atau registri lainnya
    Langganan Pilih langganan Anda.
    Jenis citra Pilih Publik.
    Server masuk registri Masukkan mcr.microsoft.com
    Gambar dan tag Masukkan k8se/quickstart-functions:latest
  13. Di bawah Variabel lingkungan, masukkan nilai untuk variabel berikut:

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEY atau APPLICATIONINSIGHTS_CONNECTION_STRING

    Masukkan nilai identitas terkelola atau string koneksi untuk variabel ini. Menggunakan identitas terkelola.

    Variabel AzureWebJobsStorage adalah string koneksi akun Azure Storage yang diperlukan untuk Azure Functions. Akun penyimpanan ini menyimpan log eksekusi fungsi, mengelola pemicu dan pengikatan, dan mempertahankan status untuk fungsi yang tahan lama.

    Application Insights adalah layanan pemantauan dan diagnostik yang memberikan wawasan tentang performa dan penggunaan Azure Functions Anda. Pemantauan ini membantu Anda melacak tingkat permintaan, waktu respons, tingkat kegagalan, dan metrik lainnya.

  14. Pilih Ingress Berikutnya > untuk beralih ke bagian Ingress dan masukkan nilai berikut.

    Harta benda Nilai
    Akses Masuk Pilih kotak centang Diaktifkan untuk mengaktifkan ingress.
    Lalu lintas masuk Pilih Menerima lalu lintas dari mana saja.
    Jenis Ingress Pilih HTTP.
    Port yang dituju Masukkan 80.
  15. Pilih Tinjau + Buat.

  16. Pilih Buat.

  17. Setelah penyebaran selesai, pilih Buka Sumber daya.

  18. Dari halaman Gambaran Umum , pilih tautan di samping URL Aplikasi untuk membuka aplikasi di tab browser baru.

  19. Tambahkan /api/HttpExample ke akhir URL.

    Pesan yang menyatakan "Fungsi pemicu HTTP memproses permintaan" dikembalikan di browser.

Prasyarat

Membuat aplikasi Functions

Untuk masuk ke Azure dari CLI, jalankan perintah berikut dan ikuti petunjuknya untuk menyelesaikan proses autentikasi.

  1. Masuk ke Azure.

    az login
    
  2. Untuk memastikan Anda menjalankan CLI versi terbaru, jalankan perintah peningkatan.

    az upgrade
    
  3. Instal atau perbarui ekstensi Azure Container Apps untuk CLI.

    Jika Anda menerima kesalahan tentang parameter yang hilang saat menjalankan perintah di Azure CLI atau cmdlet dari modul Az.App di PowerShell, pastikan Anda memiliki versi terbaru dari ekstensi Azure Container Apps yang diinstal.

    az extension add --name containerapp --allow-preview true --upgrade
    
    
    

    Sekarang setelah ekstensi atau modul saat ini terpasang, daftarkan namespace Microsoft.App dan Microsoft.OperationalInsights.

    az provider register --namespace Microsoft.App
    
    az provider register --namespace Microsoft.OperationalInsights
    
  4. Membuat variabel lingkungan.

    RESOURCE_GROUP_NAME="my-aca-functions-group"
    CONTAINER_APP_NAME="my-aca-functions-app"
    ENVIRONMENT_NAME="my-aca-functions-environment"
    LOCATION="westus"
    STORAGE_ACCOUNT_NAME="storage-account-name"
    STORAGE_ACCOUNT_SKU="storage-account-sku"
    APPLICATION_INSIGHTS_NAME="application-insights-name"
    
  5. Buat grup sumber daya.

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --location $LOCATION \
      --output none
    
  6. Buat lingkungan Aplikasi Kontainer.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --location $LOCATION \
        --output none
    
  7. Membuat Akun Penyimpanan

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --sku $STORAGE_ACCOUNT_SKU
    
  8. Memperoleh String Koneksi pada Akun Penyimpanan

    $STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  9. Membuat Azure Applications Insights

    az monitor app-insights component create \
    --app $APPLICATION_INSIGHTS_NAME \
    --location $LOCATION \
      --resource-group $RESOURCE_GROUP \
      --application-type web
    
  10. Memperoleh string Koneksi Application Insights

    $APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \
      --app $APPLICATION_INSIGHTS_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  11. Membuat aplikasi kontainer Azure Functions.

    az containerapp create \
      --resource-group $RESOURCE_GROUP_NAME \
      --name $CONTAINER_APP_NAME \
      --environment $ENVIRONMENT_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --ingress external \
      --target-port 80 \
      --kind functionapp \
      --query properties.outputs.fqdn
    

    Perintah ini mengembalikan URL aplikasi Functions Anda. Salin URL ini dan tempelkan ke browser web.

  12. Membuat aplikasi kontainer Azure Functions dengan --revisions-mode multiple untuk skenario multirevisi

    az containerapp create \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $CONTAINERAPPS_ENVIRONMENT \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --target-port 80 \
      --ingress external \
      --kind functionapp \
      --workload-profile-name $WORKLOAD_PROFILE_NAME \
      --env-vars AzureWebJobsStorage="$STORAGE_ACCOUNT_CONNECTION_STRING" APPLICATIONINSIGHTS_CONNECTION_STRING="$APPLICATION_INSIGHTS_CONNECTION_STRING"
    
  13. Untuk skenario multirevisi, tingkatkan containerapp dan pisahkan lalu lintas

    az containerapp update \
      --resource-group $RESOURCE_GROUP \
      --name $CONTAINERAPP_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:latest
    
    az containerapp ingress traffic set -resource-group \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --revision-weight {revision1_name}=50 \
      --revision-weight {revision2_name}=50
    
  14. Tambahkan /api/HttpExample ke akhir URL.

    Pesan yang menyatakan "Fungsi pemicu HTTP memproses permintaan" dikembalikan di browser.