Bagikan melalui


AzureFunctionOnKubernetes@1 - Azure Function pada tugas Kubernetes v1

Sebarkan fungsi Azure ke kluster Kubernetes.

Sintaks

# Azure Function on Kubernetes v1
# Deploy Azure function to Kubernetes cluster.
- task: AzureFunctionOnKubernetes@1
  inputs:
  # Service Connections
    connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection'. Required. Service connection type. Default: Kubernetes Service Connection.
    dockerRegistryServiceConnection: # string. Required. Docker registry service connection. 
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection. Kubernetes service connection. 
    #azureSubscriptionConnection: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager. Kubernetes cluster. 
  # Commands
    #namespace: # string. Kubernetes namespace. 
    #secretName: # string. Secret Name. 
    #dockerHubNamespace: # string. Docker Hub namespace. 
    appName: # string. Required. Application Name. 
    #functionRootDirectory: # string. Function root directory. 
    #waitForStability: true # boolean. Wait for stability. Default: true.
    #arguments: # string. Arguments.

Input

connectionType - Jenis koneksi layanan
string. Wajib diisi. Nilai yang diizinkan: Azure Resource Manager, Kubernetes Service Connection. Nilai default: Kubernetes Service Connection.

Pilih jenis koneksi layanan Kubernetes.

  • Kubernetes Service Connection - Memungkinkan Anda menyediakan file KubeConfig, menentukan Akun Layanan, atau mengimpor instans AKS dengan opsi Langganan Azure . Mengimpor instans AKS dengan opsi Langganan Azure memerlukan akses kluster Kubernetes pada waktu konfigurasi Koneksi Layanan.
  • Azure Resource Manager - Memungkinkan Anda memilih instans AKS. Tidak mengakses kluster Kubernetes pada waktu konfigurasi Koneksi Layanan.

Untuk informasi selengkapnya, lihat Keterangan.


dockerRegistryServiceConnection - Koneksi layanan registri Docker
string. Wajib diisi.

Pilih koneksi layanan registri Docker.


kubernetesServiceConnection - Koneksi layanan Kubernetes
Alias input: kubernetesServiceEndpoint. string. Diperlukan saat connectionType = Kubernetes Service Connection.

Pilih koneksi layanan Kubernetes.


azureSubscriptionConnection - Langganan Azure
Alias input: azureSubscriptionEndpoint. string. Diperlukan saat connectionType = Azure Resource Manager.

Pilih langganan Azure Resource Manager, yang berisi Azure Container Registry. Catatan: Untuk mengonfigurasi koneksi layanan baru, pilih langganan Azure dari daftar dan klik 'Otorisasi'. Jika langganan Anda tidak tercantum atau jika Anda ingin menggunakan Perwakilan Layanan yang ada, Anda dapat menyiapkan koneksi layanan Azure menggunakan tombol 'Tambahkan' atau 'Kelola'.


azureResourceGroup - Grup sumber daya
string. Diperlukan saat connectionType = Azure Resource Manager.

Pilih grup sumber daya Azure.


kubernetesCluster - Kluster Kubernetes
string. Diperlukan saat connectionType = Azure Resource Manager.

Pilih kluster terkelola Azure.


namespace - Namespace Layanan Kubernetes
string.

Namespace Layanan Kubernetes.


secretName - Nama Rahasia
string.

Rahasia Kubernetes yang berisi data konfigurasi fungsi (misalnya AzureWebJobsStorage: Azure storage connection string).


dockerHubNamespace - Namespace Docker Hub
string.

Namespace Docker Hub. Diperlukan untuk repositori Docker Hub privat.


appName - Nama Aplikasi
string. Wajib diisi.

Nama Aplikasi. Objek Kubernetes yang dibuat menggunakan nama ini. Ini harus mengikuti konvensi penamaan Kubernetes untuk nama sumber daya.


functionRootDirectory - Direktori akar fungsi
string.

Direktori akar fungsi. Harus berisi host.json. Docker build dan push dilakukan dari direktori ini.


waitForStability - Tunggu stabilitas
boolean. Nilai default: true.

Tunggu hingga objek Kubernetes mencapai status yang diinginkan.


arguments - Argumen
string.

Teruskan argumen ke perintah. Misalnya:
--no-docker --service-type NodePort.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Pertimbangan Koneksi Layanan Kubernetes saat mengakses AKS

Anda dapat membuat koneksi layanan Kubernetes dengan salah satu opsi berikut.

  • KubeConfig
  • Akun Layanan
  • Azure Subscription

Cuplikan layar memilih metode autentikasi koneksi layanan Kubernetes.

Saat memilih opsi Langganan Azure , Kubernetes harus dapat diakses oleh Azure DevOps pada waktu konfigurasi koneksi layanan. Mungkin ada berbagai alasan koneksi layanan tidak dapat dibuat, misalnya Anda membuat kluster privat atau kluster menonaktifkan akun lokal. Dalam kasus ini, Azure DevOps tidak dapat terhubung ke kluster Anda pada waktu konfigurasi koneksi layanan dan Anda akan melihat layar Namespace layanan Pemuatan yang macet.

Cuplikan layar memilih dialog autentikasi koneksi layanan Kubernetes macet saat memuat namespace layanan.

Dimulai dengan Kubernetes 1.24, token berumur panjang tidak lagi dibuat secara default. Kubernetes merekomendasikan untuk tidak menggunakan token berumur panjang. Akibatnya, tugas yang menggunakan koneksi layanan Kubernetes yang dibuat dengan opsi Langganan Azure tidak memiliki akses ke token permanen yang diperlukan untuk mengautentikasi dan tidak dapat mengakses kluster Kubernetes Anda. Ini juga menghasilkan dialog namespace layanan Pemuatan yang dibekukan.

Menggunakan Azure Resource Manager Service Connection untuk mengakses AKS

Untuk pelanggan AKS, jenis koneksi layanan Azure Resource Manager menyediakan metode terbaik untuk terhubung ke kluster privat, atau kluster yang menonaktifkan akun lokal. Metode ini tidak bergantung pada konektivitas kluster pada saat Anda membuat koneksi layanan. Akses ke AKS ditangguhkan ke runtime alur, yang memiliki keuntungan berikut:

  • Akses ke kluster AKS (privat) dapat dilakukan dari agen yang dihost sendiri atau set skala dengan garis pandang ke kluster.
  • Token dibuat untuk setiap tugas yang menggunakan koneksi layanan Azure Resource Manager. Ini memastikan Anda terhubung ke Kubernetes dengan token berumur pendek, yang merupakan rekomendasi Kubernetes.
  • AKS dapat diakses bahkan ketika akun lokal dinonaktifkan.

Tanya Jawab Umum koneksi layanan

Saya menerima pesan kesalahan berikut: Tidak dapat menemukan rahasia apa pun yang terkait dengan akun layanan. Apa yang terjadi?

Anda menggunakan koneksi layanan Kubernetes dengan opsi Langganan Azure. Kami memperbarui metode ini untuk membuat token berumur panjang. Ini diperkirakan akan tersedia pertengahan Mei. Namun, disarankan untuk mulai menggunakan jenis koneksi layanan Azure dan tidak menggunakan token berumur panjang sesuai panduan Kubernetes.

Saya menggunakan AKS dan tidak ingin mengubah apa pun, dapatkah saya terus menggunakan tugas dengan koneksi layanan Kubernetes?

Kami memperbarui metode ini untuk membuat token berumur panjang. Ini diperkirakan akan tersedia pertengahan Mei. Namun, perlu diketahui bahwa pendekatan ini bertentangan dengan panduan Kubernetes.

Saya menggunakan tugas Kubernetes dan koneksi layanan Kubernetes tetapi bukan AKS. Haruskah aku khawatir?

Tugas Anda akan terus berfungsi seperti sebelumnya.

Apakah jenis koneksi layanan Kubernetes akan dihapus?

Tugas Kubernetes kami bekerja dengan kluster Kubernetes apa pun, di mana pun mereka berjalan. Koneksi layanan Kubernetes akan terus ada.

Saya pelanggan AKS dan semuanya berjalan dengan baik, haruskah saya bertindak?

Tidak perlu mengubah apa pun. Jika Anda menggunakan koneksi layanan Kubernetes dan Langganan Azure yang dipilih selama pembuatan, Anda harus mengetahui panduan Kubernetes tentang menggunakan token berumur panjang.

Saya membuat Lingkungan Kubernetes, dan tidak memiliki opsi untuk menggunakan koneksi layanan

Jika Anda tidak dapat mengakses AKS selama waktu pembuatan lingkungan, Anda dapat menggunakan lingkungan kosong dan mengatur connectionType input ke koneksi layanan Azure Resource Manager.

Saya memiliki AKS yang dikonfigurasi dengan Azure Active Directory RBAC, dan alur saya tidak berfungsi. Apakah pembaruan ini akan mengatasinya?

Mengakses Kubernetes ketika AAD RBAC diaktifkan tidak terkait dengan pembuatan token. Untuk mencegah prompt interaktif, kami akan mendukung kubelogin di pembaruan mendatang.

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen Semua versi agen yang didukung.
Kategori tugas Sebarkan