Panduan pengembang Azure Functions

Di Azure Functions, semua fungsi berbagi beberapa konsep dan komponen teknis inti, terlepas dari bahasa atau lingkungan pengembangan pilihan Anda. Artikel ini khusus bahasa. Pilih bahasa pilihan Anda di bagian atas artikel.

Artikel ini menganggap Anda sudah membaca Ringkasan Azure Functions.

Jika Anda lebih suka langsung masuk, Anda dapat menyelesaikan tutorial mulai cepat menggunakan Visual Studio, Visual Studio Code, atau dari prompt perintah.

Jika Anda lebih suka melompat langsung, Anda dapat menyelesaikan tutorial mulai cepat menggunakan Maven (baris perintah), Eclipse, IntelliJ IDEA, Gradle, Quarkus, Spring Cloud, atau Visual Studio Code.

Jika Anda lebih suka langsung masuk, Anda dapat menyelesaikan tutorial mulai cepat menggunakan Visual Studio Code atau dari prompt perintah.

Jika Anda lebih suka langsung masuk, Anda dapat menyelesaikan tutorial mulai cepat menggunakan Visual Studio Code atau dari prompt perintah.

Jika Anda lebih suka langsung masuk, Anda dapat menyelesaikan tutorial mulai cepat menggunakan Visual Studio Code atau dari prompt perintah.

Jika Anda lebih suka langsung masuk, Anda dapat menyelesaikan tutorial mulai cepat menggunakan Visual Studio Code atau dari prompt perintah.

Proyek kode

Inti dari Azure Functions adalah proyek kode khusus bahasa yang mengimplementasikan satu atau beberapa unit eksekusi kode yang disebut fungsi. Fungsi hanyalah metode yang berjalan di cloud Azure berdasarkan peristiwa, sebagai respons terhadap permintaan HTTP, atau sesuai jadwal. Anggap proyek kode Azure Functions Anda sebagai mekanisme untuk mengatur, menyebarkan, dan secara kolektif mengelola fungsi individual Anda dalam proyek saat berjalan di Azure. Untuk informasi selengkapnya, lihat Menata fungsi Anda.

Cara Anda meletakkan proyek kode dan bagaimana Anda menunjukkan metode mana dalam proyek Anda adalah fungsi tergantung pada bahasa pengembangan proyek Anda. Untuk panduan khusus bahasa terperinci, lihat panduan pengembang C#.

Cara Anda meletakkan proyek kode dan bagaimana Anda menunjukkan metode mana dalam proyek Anda adalah fungsi tergantung pada bahasa pengembangan proyek Anda. Untuk panduan khusus bahasa, lihat panduan pengembang Java.

Cara Anda meletakkan proyek kode dan bagaimana Anda menunjukkan metode mana dalam proyek Anda adalah fungsi tergantung pada bahasa pengembangan proyek Anda. Untuk panduan khusus bahasa, lihat panduan pengembang Node.js.

Cara Anda meletakkan proyek kode dan bagaimana Anda menunjukkan metode mana dalam proyek Anda adalah fungsi tergantung pada bahasa pengembangan proyek Anda. Untuk panduan khusus bahasa, lihat panduan pengembang PowerShell.

Cara Anda meletakkan proyek kode dan bagaimana Anda menunjukkan metode mana dalam proyek Anda adalah fungsi tergantung pada bahasa pengembangan proyek Anda. Untuk panduan khusus bahasa, lihat panduan pengembang Python.

Semua fungsi harus memiliki pemicu, yang menentukan bagaimana fungsi dimulai dan dapat memberikan input ke fungsi. Fungsi Anda dapat secara opsional menentukan pengikatan input dan output. Pengikatan ini menyederhanakan koneksi ke layanan lain tanpa Anda harus bekerja dengan SDK klien. Untuk mempelajari selengkapnya, lihat Konsep pengikatan dan pemicu Azure Functions.

Azure Functions menyediakan sekumpulan templat proyek dan fungsi khusus bahasa yang memudahkan untuk membuat proyek kode baru dan menambahkan fungsi ke proyek Anda. Anda dapat menggunakan salah satu alat yang mendukung pengembangan Azure Functions untuk menghasilkan aplikasi dan fungsi baru menggunakan templat ini.

Alat pengembangan

Alat berikut ini memberikan pengalaman pengembangan dan penerbitan terintegrasi untuk Azure Functions dalam bahasa pilihan Anda:

Alat-alat ini terintegrasi dengan Azure Functions Core Tools sehingga Anda dapat menjalankan dan men-debug di komputer lokal Anda menggunakan runtime Functions. Untuk informasi selengkapnya, lihat Membuat kode dan menguji Azure Functions secara lokal.

Ada juga editor di portal Azure yang memungkinkan Anda memperbarui kode dan file definisi function.json Langsung di portal. Anda hanya boleh menggunakan editor ini untuk perubahan kecil atau membuat fungsi bukti konsep. Anda harus selalu mengembangkan fungsi Anda secara lokal, jika memungkinkan. Untuk informasi selengkapnya, lihat Membuat fungsi pertama Anda di portal Azure.

Pengeditan portal hanya didukung untuk Node.js versi 3, yang menggunakan file function.json.

Pengeditan portal hanya didukung untuk Python versi 1, yang menggunakan file function.json.

Penyebaran

Saat menerbitkan proyek kode ke Azure, Anda pada dasarnya menyebarkan proyek ke sumber daya aplikasi fungsi yang ada. Aplikasi fungsi menyediakan konteks eksekusi di Azure tempat fungsi Anda berjalan. Dengan demikian, ini adalah unit penyebaran dan manajemen untuk fungsi Anda. Dari perspektif Sumber Daya Azure, aplikasi fungsi setara dengan sumber daya situs (Microsoft.Web/sites) di Azure App Service, yang setara dengan aplikasi web.

Aplikasi fungsi terdiri dari satu atau beberapa fungsi individual yang dikelola, disebarkan, dan diskalakan bersama-sama. Semua fungsi dalam aplikasi fungsi memiliki paket harga, metode penyebaran, dan versi runtime yang sama. Untuk informasi selengkapnya, lihat Cara mengelola aplikasi fungsi.

Saat aplikasi fungsi dan sumber daya lain yang diperlukan belum ada di Azure, Anda harus terlebih dahulu membuat sumber daya ini sebelum dapat menyebarkan file proyek Anda. Anda dapat membuat sumber daya ini dengan salah satu cara berikut:

Selain penerbitan berbasis alat, Functions mendukung teknologi lain untuk menyebarkan kode sumber ke aplikasi fungsi yang ada. Untuk informasi selengkapnya, lihat Teknologi penyebaran di Azure Functions.

Menyambungkan ke layanan

Persyaratan utama dari layanan komputasi berbasis cloud adalah membaca data dari dan menulis data ke layanan cloud lainnya. Functions menyediakan serangkaian pengikatan ekstensif yang memudahkan Anda untuk terhubung ke layanan tanpa harus bekerja dengan SDK klien.

Apakah Anda menggunakan ekstensi pengikatan yang disediakan oleh Functions atau Anda bekerja dengan SDK klien secara langsung, Anda menyimpan data koneksi dengan aman dan tidak menyertakannya dalam kode Anda. Untuk informasi selengkapnya, lihat Sambungan.

Pengikatan

Functions menyediakan pengikatan untuk banyak layanan Azure dan beberapa layanan pihak ketiga, yang diimplementasikan sebagai ekstensi. Untuk informasi selengkapnya, lihat daftar lengkap pengikatan yang didukung.

Ekstensi pengikatan dapat mendukung input dan output, dan banyak pemicu juga bertindak sebagai pengikatan input. Pengikatan memungkinkan Anda mengonfigurasi koneksi ke layanan sehingga host Functions dapat menangani akses data untuk Anda. Untuk mempelajari selengkapnya, lihat Konsep pengikatan dan pemicu Azure Functions.

Jika Anda mengalami masalah dengan kesalahan yang berasal dari pengikatan, lihat dokumentasi Kode Kesalahan Pengikatan Azure Functions .

SDK Klien

Meskipun Functions menyediakan pengikatan untuk menyederhanakan akses data dalam kode fungsi, Anda masih dapat menggunakan SDK klien di proyek Anda untuk langsung mengakses layanan tertentu, jika mau. Anda mungkin perlu menggunakan SDK klien secara langsung jika fungsi Anda memerlukan fungsionalitas SDK dasar yang tidak didukung oleh ekstensi pengikatan.

Saat menggunakan SDK klien, Anda harus menggunakan proses yang sama untuk menyimpan dan mengakses string koneksi yang digunakan oleh ekstensi pengikatan.

Saat Anda membuat instans SDK klien di fungsi Anda, Anda harus mendapatkan info koneksi yang diperlukan oleh klien dari variabel Lingkungan.

Saat Anda membuat instans SDK klien di fungsi Anda, Anda harus mendapatkan info koneksi yang diperlukan oleh klien dari variabel Lingkungan.

Saat Anda membuat instans SDK klien di fungsi Anda, Anda harus mendapatkan info koneksi yang diperlukan oleh klien dari variabel Lingkungan.

Saat Anda membuat instans SDK klien di fungsi Anda, Anda harus mendapatkan info koneksi yang diperlukan oleh klien dari variabel Lingkungan.

Saat Anda membuat instans SDK klien di fungsi Anda, Anda harus mendapatkan info koneksi yang diperlukan oleh klien dari variabel Lingkungan.

Koneksi

Sebagai praktik terbaik keamanan, Azure Functions memanfaatkan fungsionalitas pengaturan aplikasi Azure App Service untuk membantu Anda menyimpan string, kunci, dan token lain yang diperlukan untuk terhubung ke layanan lain dengan lebih aman. Pengaturan aplikasi di Azure disimpan dienkripsi dan dapat diakses saat runtime oleh aplikasi Anda sebagai pasangan variabel namevalue lingkungan. Untuk pemicu dan pengikatan yang memerlukan properti koneksi, Anda mengatur nama pengaturan aplikasi alih-alih string koneksi aktual. Anda tidak dapat mengonfigurasi pengikatan secara langsung dengan string koneksi atau kunci.

Misalnya, pertimbangkan definisi pemicu yang memiliki connection properti. Alih-alih string koneksi, Anda mengatur connection ke nama variabel lingkungan yang berisi string koneksi. Menggunakan strategi akses rahasia ini membuat aplikasi Anda lebih aman dan memudahkan Anda untuk mengubah koneksi di seluruh lingkungan. Untuk keamanan yang lebih baik, Anda dapat menggunakan koneksi berbasis identitas.

Penyedia konfigurasi default menggunakan variabel lingkungan. Variabel ini didefinisikan dalam pengaturan aplikasi saat berjalan di Azure dan di file pengaturan lokal saat mengembangkan secara lokal.

Nilai koneksi

Saat nama koneksi menetapkan satu nilai yang pasti, runtime mengidentifikasi nilai sebagai string koneksi, yang biasanya menyertakan rahasia. Detail string koneksi bergantung pada layanan yang Anda sambungkan.

Namun, nama koneksi juga dapat merujuk ke kumpulan beberapa item konfigurasi, berguna untuk mengonfigurasi koneksi berbasis-identitas. Variabel lingkungan dapat dianggap sebagai satu kesatuan dengan menggunakan prefiks bersama yang diakhiri dengan garis bawah ganda __. Grup tersebut kemudian dapat dirujuk dengan mengatur nama koneksi ke prefiks ini.

Misalnya, connection properti untuk definisi pemicu Azure Blob mungkin .Storage1 Selama tidak ada nilai string tunggal yang dikonfigurasi oleh variabel lingkungan bernama Storage1, variabel lingkungan bernama Storage1__blobServiceUri dapat digunakan untuk menginformasikan blobServiceUri properti koneksi. Properti koneksi berbeda-beda untuk setiap layanan. Lihat dokumentasi untuk komponen yang menggunakan koneksi.

Catatan

Saat menggunakan Azure App Configuration atau Key Vault guna menyediakan pengaturan untuk koneksi Identitas Terkelola, nama pengaturan harus menggunakan pemisah kunci yang valid seperti : atau / sebagai ganti __ untuk memastikan nama diselesaikan dengan benar.

Contohnya, Storage1:blobServiceUri.

Mengonfigurasi koneksi berbasis identitas

Beberapa koneksi di Azure Functions dapat dikonfigurasi untuk menggunakan identitas, bukan rahasia. Dukungan tergantung pada ekstensi yang menggunakan koneksi. Dalam beberapa kasus, string koneksi mungkin masih diperlukan di Functions meskipun layanan yang Anda sambungkan mendukung koneksi berbasis identitas. Untuk tutorial cara mengonfigurasi aplikasi fungsi Anda dengan identitas terkelola, lihat tutorial membuat aplikasi fungsi dengan koneksi berbasis identitas.

Catatan

Saat berjalan dalam paket Konsumsi atau Elastic Premium, aplikasi Anda menggunakan WEBSITE_AZUREFILESCONNECTIONSTRING pengaturan dan WEBSITE_CONTENTSHARE saat menyambungkan ke Azure Files di akun penyimpanan yang digunakan oleh aplikasi fungsi Anda. Azure Files tidak mendukung penggunaan identitas terkelola saat mengakses berbagi file. Untuk informasi selengkapnya, lihat Skenario autentikasi yang didukung Azure Files

Komponen berikut mendukung koneksi berbasis identitas:

Sumber koneksi Paket yang didukung Pelajari selengkapnya
Pemicu dan pengikatan Azure Blobs Semua Ekstensi Azure Blobs versi 5.0.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Pemicu dan pengikatan Antrean Azure Semua Ekstensi Azure Queues versi 5.0.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Tabel Azure (saat menggunakan Azure Storage) Semua Ekstensi Azure Tables versi 1.0.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Database Azure SQL Semua Koneksi aplikasi fungsi ke Azure SQL dengan identitas terkelola dan pengikatan SQL
Pemicu dan pengikatan Azure Event Hubs Semua Ekstensi Azure Event Hubs versi 5.0.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Pemicu dan pengikatan Azure Service Bus Semua Ekstensi Azure Bus Layanan versi 5.0.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Pengikatan output Azure Event Grid Semua Ekstensi Azure Event Grid versi 3.3.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Pemicu dan pengikatan Azure Cosmos DB Semua Ekstensi Azure Cosmos DB versi 4.0.0 atau yang lebih baru,
Bundel ekstensi 4.0.2 atau yang lebih baru
Pemicu dan pengikatan Azure SignalR Semua Ekstensi Azure SignalR versi 1.7.0 atau yang lebih baru
Bundel ekstensi 3.6.1 atau yang lebih baru
Penyedia penyimpanan Durable Functions (Azure Storage) Semua Ekstensi Durable Functions versi 2.7.0 atau yang lebih baru,
Bundel ekstensi 3.3.0 atau yang lebih baru
Penyimpanan yang diperlukan host ("AzureWebJobsStorage") Semua Koneksi untuk menghosting penyimpanan dengan identitas

Saat dihosting di layanan Azure Functions, koneksi berbasis identitas menggunakan identitas terkelola. Identitas yang ditetapkan sistem digunakan secara default, meskipun identitas yang ditetapkan pengguna dapat ditentukan dengan credential dan clientID properti. Perhatikan bahwa mengonfigurasi identitas yang ditetapkan oleh pengguna dengan ID sumber daya tidak didukung. Saat dijalankan dalam konteks lain, seperti pengembangan lokal, identitas pengembang Anda digunakan sebagai gantinya, meskipun ini dapat dikustomisasi. Lihat Pengembangan lokal dengan koneksi berbasis identitas.

Memberikan izin kepada identitas

Identitas apa pun yang digunakan harus memiliki izin untuk melakukan tindakan yang dimaksudkan. Untuk sebagian besar layanan Azure, ini berarti Anda perlu menetapkan peran di Azure RBAC, menggunakan peran bawaan atau kustom yang menyediakan izin tersebut.

Penting

Beberapa izin mungkin diekspos oleh layanan target yang tidak diperlukan untuk semua konteks. Jika memungkinkan, patuhi prinsip hak istimewa paling rendah, dengan memberikan identitas hanya hak istimewa yang diperlukan. Misalnya, jika aplikasi hanya perlu dapat membaca dari sumber data, gunakan peran yang hanya memiliki izin untuk membaca. Tidak pantas untuk menetapkan peran yang juga memungkinkan menulis ke layanan itu, karena ini akan menjadi izin yang berlebihan untuk operasi baca. Demikian pula, Anda ingin memastikan penetapan peran hanya mencakup sumber daya yang perlu dibaca.

Pilih salah satu tab ini untuk mempelajari tentang izin untuk setiap komponen:

Anda perlu membuat penetapan peran yang menyediakan akses ke kontainer blob Anda saat runtime. Peran manajemen seperti Pemilik tidak cukup. Tabel berikut menunjukkan peran bawaan yang direkomendasikan saat menggunakan ekstensi Blob Storage dalam operasi normal. Aplikasi Anda mungkin memerlukan izin lebih lanjut berdasarkan kode yang Anda tulis.

Jenis pengikatan Peran bawaan contoh
Pemicu Pemilik Data Blob StoragedanKontributor Data Antrean Storage1

Izin tambahan juga harus diberikan ke koneksi AzureWebJobsStorage.2
Pengikatan masukan Pembaca Data Blob Penyimpanan.
Pengikatan output Pemilik Data Blob Penyimpanan

1 Pemicu blob menangani kegagalan di beberapa percobaan ulang dengan menulis blob racun ke antrean pada akun penyimpanan yang ditentukan oleh koneksi.

2 Koneksi AzureWebJobsStorage digunakan secara internal untuk blob dan antrean yang mengaktifkan pemicu. Jika dikonfigurasi untuk menggunakan koneksi berbasis identitas, koneksi tersebut memerlukan izin tambahan di luar persyaratan default. Izin yang diperlukan dicakup oleh peran Pemilik Data Blob Penyimpanan, Kontributor Data Antrean Penyimpanan, dan Kontributor Akun Penyimpanan. Untuk mempelajari lebih lanjut, lihat Menyambungkan ke penyimpanan host menggunakan identitas.

Properti umum untuk koneksi berbasis identitas

Koneksi berbasis identitas untuk layanan Azure menerima properti umum berikut di mana <CONNECTION_NAME_PREFIX> adalah nilai properti connection Anda dalam definisi pemicu atau pengikatan:

Properti Templat variabel lingkungan Deskripsi
Token Info Masuk <CONNECTION_NAME_PREFIX>__credential Mendefinisikan cara token harus diperoleh untuk koneksi. Pengaturan ini harus diatur ke managedidentity jika Azure Function yang Anda sebarkan berniat menggunakan autentikasi identitas terkelola. Nilai ini hanya valid ketika identitas terkelola tersedia di lingkungan hosting.
ID klien <CONNECTION_NAME_PREFIX>__clientId Ketika credential diatur ke managedidentity, properti ini dapat diatur untuk menentukan identitas yang ditetapkan pengguna yang akan digunakan saat mendapatkan token. Properti menerima ID klien yang sesuai dengan identitas yang ditetapkan pengguna yang ditetapkan ke aplikasi. Tidak valid untuk menentukan ID Sumber Daya dan ID klien. Jika tidak ditentukan, identitas yang ditetapkan sistem akan digunakan. Properti ini digunakan secara berbeda dalam skenario pengembangan lokal, kapan credential tidak boleh diatur.
ID Sumber Daya <CONNECTION_NAME_PREFIX>__managedIdentityResourceId Ketika credential diatur ke managedidentity, properti ini dapat diatur untuk menentukan Pengidentifikasi sumber daya yang akan digunakan saat mendapatkan token. Properti menerima pengidentifikasi sumber daya yang sesuai dengan ID sumber daya identitas terkelola yang ditentukan pengguna. Tidak valid untuk menentukan ID sumber daya dan ID klien. Jika tidak ditentukan, identitas yang ditetapkan sistem akan digunakan. Properti ini digunakan secara berbeda dalam skenario pengembangan lokal, kapan credential tidak boleh diatur.

Opsi lain mungkin didukung untuk jenis koneksi tertentu. Lihat dokumentasi untuk komponen yang membuat koneksi.

Pengembangan lokal dengan koneksi berbasis identitas

Catatan

Pengembangan lokal dengan koneksi berbasis identitas memerlukan versi 4.0.3904Azure Functions Core Tools, atau versi yang lebih baru.

Saat Anda menjalankan proyek fungsi secara lokal, konfigurasi di atas memberi tahu runtime untuk menggunakan identitas pengembang lokal Anda. Koneksi mencoba mendapatkan token dari lokasi berikut, secara berurutan:

  • Tembolokan lokal yang dibagi di antara aplikasi Microsoft
  • Konteks pengguna saat ini di Visual Studio
  • Konteks pengguna saat ini di Visual Studio Code
  • Konteks pengguna saat ini di Azure CLI

Jika tidak ada opsi ini yang berhasil, kesalahan terjadi.

Identitas Anda mungkin sudah memiliki beberapa penetapan peran terhadap sumber daya Azure yang digunakan untuk pengembangan, tetapi peran tersebut mungkin tidak menyediakan akses data yang diperlukan. Peran manajemen seperti Pemilik tidak cukup. Periksa kembali izin apa yang diperlukan bagi koneksi untuk setiap komponen, dan pastikan telah menetapkannya ke diri Anda sendiri.

Dalam beberapa kasus, Anda mungkin ingin menentukan penggunaan identitas yang berbeda. Anda dapat menambahkan properti konfigurasi untuk koneksi yang menunjuk ke identitas alternatif berdasarkan ID klien dan Rahasia klien untuk perwakilan layanan Microsoft Entra. Opsi konfigurasi berikut tidak didukung saat dihosting di layanan Azure Functions. Untuk menggunakan ID dan rahasia di komputer lokal Anda, tentukan koneksi dengan properti tambahan berikut:

Properti Templat variabel lingkungan Deskripsi
ID Penyewa <CONNECTION_NAME_PREFIX>__tenantId ID penyewa (direktori) Microsoft Entra.
ID klien <CONNECTION_NAME_PREFIX>__clientId ID klien (aplikasi) pendaftaran aplikasi di penyewa.
Rahasia Klien <CONNECTION_NAME_PREFIX>__clientSecret Rahasia klien yang dihasilkan untuk pendaftaran aplikasi.

Berikut adalah contoh local.settings.json properti yang diperlukan untuk koneksi berbasis identitas ke Azure Blobs:

{
  "IsEncrypted": false,
  "Values": {
    "<CONNECTION_NAME_PREFIX>__blobServiceUri": "<blobServiceUri>",
    "<CONNECTION_NAME_PREFIX>__queueServiceUri": "<queueServiceUri>",
    "<CONNECTION_NAME_PREFIX>__tenantId": "<tenantId>",
    "<CONNECTION_NAME_PREFIX>__clientId": "<clientId>",
    "<CONNECTION_NAME_PREFIX>__clientSecret": "<clientSecret>"
  }
}

Menyambungkan ke penyimpanan host dengan identitas

Host Azure Functions menggunakan koneksi penyimpanan yang diatur AzureWebJobsStorage untuk mengaktifkan perilaku inti seperti mengoordinasikan eksekusi singleton pemicu timer dan penyimpanan kunci aplikasi default. Koneksi ini juga dapat dikonfigurasi untuk menggunakan identitas.

Perhatian

Komponen lain dalam Functions mengandalkan AzureWebJobsStorage perilaku default. Anda tidak boleh memindahkannya ke koneksi berbasis identitas jika menggunakan versi ekstensi lama yang tidak mendukung jenis koneksi ini, termasuk pemicu dan pengikatan untuk Azure Blobs, Azure Event Hubs, dan Durable Functions. Demikian pula, AzureWebJobsStorage digunakan untuk artefak penyebaran saat menggunakan build sisi server di Konsumsi Linux, dan jika Anda mengaktifkan ini, Anda perlu menyebarkan melalui paket penyebaran eksternal.

Selain itu, aplikasi fungsi Anda mungkin menggunakan AzureWebJobsStorage kembali untuk koneksi penyimpanan lain dalam pemicu, pengikatan, dan/atau kode fungsinya. Pastikan bahwa semua penggunaanAzureWebJobsStorage dapat menggunakan format koneksi berbasis identitas sebelum mengubah koneksi ini dari string koneksi.

Untuk menggunakan koneksi berbasis identitas untuk AzureWebJobsStorage, konfigurasikan pengaturan aplikasi berikut:

Pengaturan Deskripsi Contoh nilai
AzureWebJobsStorage__blobServiceUri URI data plane dari layanan blob akun penyimpanan, menggunakan skema HTTPS. https://<storage_account_name>.blob.core.windows.net
AzureWebJobsStorage__queueServiceUri URI data plane dari layanan antrean akun penyimpanan, menggunakan skema HTTPS. https://<storage_account_name>.queue.core.windows.net
AzureWebJobsStorage__tableServiceUri URI data plane dari layanan tabel akun penyimpanan, menggunakan skema HTTPS. https://<storage_account_name>.table.core.windows.net

Properti umum untuk koneksi berbasis identitas juga dapat diatur.

Jika Anda mengonfigurasi AzureWebJobsStorage menggunakan akun penyimpanan yang menggunakan akhiran DNS default dan nama layanan untuk Azure global, mengikuti format, https://<accountName>.[blob|queue|file|table].core.windows.net Anda dapat mengatur AzureWebJobsStorage__accountName ke nama akun penyimpanan Anda. Titik akhir untuk setiap layanan penyimpanan disimpulkan untuk akun ini. Ini tidak berfungsi saat akun penyimpanan berada di sovereign cloud atau memiliki DNS kustom.

Pengaturan Deskripsi Contoh nilai
AzureWebJobsStorage__accountName Nama akun akun penyimpanan, hanya valid jika akun tidak berada di sovereign cloud dan tidak memiliki DNS kustom. Sintaks ini unik untuk AzureWebJobsStorage dan tidak dapat digunakan untuk koneksi berbasis identitas lainnya. <storage_account_name>

Anda perlu membuat penetapan peran yang menyediakan akses ke akun penyimpanan untuk "AzureWebJobsStorage" saat runtime. Peran manajemen seperti Pemilik tidak cukup. Peran Pemilik Data Blob Storage mencakup kebutuhan dasar penyimpanan host Functions - runtime membutuhkan akses baca dan tulis ke blob dan kemampuan untuk membuat kontainer. Beberapa ekstensi menggunakan koneksi ini sebagai lokasi default untuk blob, antrean, juga tabel, dan penggunaan ini dapat menambahkan persyaratan seperti yang tercantum dalam tabel di bawah ini. Anda mungkin memerlukan izin tambahan jika Anda menggunakan "AzureWebJobsStorage" untuk tujuan lain.

Ekstensi Peran yang diperlukan Penjelasan
Tidak ada ekstensi (hanya host) Pemilik Data Blob Penyimpanan Digunakan untuk koordinasi umum, penyimpanan kunci default
Azure Blobs (hanya pemicu) Semua:
Kontributor Akun Penyimpanan,
Pemilik Data Blob Penyimpanan,
Kontributor Data Antrean Penyimpanan
Pemicu blob secara internal menggunakan Azure Queues dan menulis tanda terima blob. Ia menggunakan AzureWebJobsStorage untuk hal ini, terlepas dari koneksi yang dikonfigurasi untuk pemicu.
Azure Event Hubs (hanya pemicu) (tidak ada perubahan dari persyaratan default)
Pemilik Data Blob Penyimpanan
Titik pemeriksaan dipertahankan dalam blob menggunakan koneksi AzureWebJobsStorage.
Pemicu pengatur waktu (tidak ada perubahan dari persyaratan default)
Pemilik Data Blob Penyimpanan
Untuk memastikan satu eksekusi per peristiwa, kunci diambil dengan blob menggunakan koneksi AzureWebJobsStorage.
Fungsi Tahan Lama Semua:
Kontributor Data Blob Penyimpanan,
Kontributor Data Antrean Penyimpanan,
Kontributor Data Tabel Penyimpanan
Durable Functions menggunakan blob, antrean, dan tabel untuk mengoordinasikan fungsi aktivitas dan mempertahankan status orkestrasi. Ia menggunakan koneksi AzureWebJobsStorage untuk semua ini secara default, tetapi Anda dapat menentukan koneksi yang berbeda dalam konfigurasi ekstensi Durable Functions.

Masalah Pelaporan

Item Deskripsi Link
Runtime Host Skrip, Pemicu & Pengikatan, Dukungan Bahasa Melaporkan Masalah
Templat Masalah Kode dengan Templat Pembuatan Melaporkan Masalah
Portal Masalah Antarmuka Pengguna atau Pengalaman Melaporkan Masalah

Repositori sumber terbuka

Kode untuk Azure Functions sumber terbuka, dan Anda dapat menemukan komponen utama di repositori GitHub ini:

Langkah berikutnya

Untuk informasi selengkapnya, lihat sumber daya berikut: