Bagikan melalui


Tutorial: Menggunakan koneksi berbasis identitas alih-alih rahasia dengan pemicu dan ikatan

Tutorial ini menunjukkan kepada Anda cara mengonfigurasi Azure Functions untuk menyambungkan ke antrean Azure Bus Layanan dengan menggunakan identitas terkelola, alih-alih rahasia yang disimpan dalam pengaturan aplikasi fungsi. Tutorial ini merupakan kelanjutan tutorial Membuat aplikasi fungsi tanpa rahasia penyimpanan default di definisinya. Untuk mempelajari selengkapnya tentang koneksi berbasis identitas, lihat Mengonfigurasi koneksi berbasis identitas.

Meski prosedur yang ditampilkan umumnya berfungsi untuk semua bahasa, saat ini tutorial ini secara khusus mendukung fungsi pustaka kelas C # di Windows.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Buat namespace Bus Layanan dan antrean.
  • Konfigurasikan aplikasi fungsi Anda dengan identitas terkelola.
  • Buat penetapan peran yang memberikan izin identitas tersebut untuk dibaca dari antrean Bus Layanan.
  • Buat dan sebarkan aplikasi fungsi dengan pemicu Azure Service Bus.
  • Verifikasi koneksi berbasis identitas Anda ke Bus Layanan.

Prasyarat

Membuat namespace dan antrean Bus Layanan

  1. Di portal Microsoft Azure, pilih Buat sumber daya(+).

  2. Pada halaman Buat sumber daya, cari dan pilih Bus Layanan, lalu pilih Buat.

  3. Pada tab Dasar, gunakan tabel berikut ini untuk mengonfigurasi pengaturan namespace Azure Service Bus. Gunakan nilai default untuk opsi yang tersisa.

    Opsi Nilai yang disarankan Deskripsi
    Langganan Langganan Anda Langganan tempat sumber daya Anda dibuat.
    Grup sumber daya myResourceGroup Grup sumber daya yang Anda buat dengan aplikasi fungsi Anda.
    Nama namespace layanan Nama unik secara global Namespace instans tempat memicu fungsi Anda. Karena namespace dapat diakses publik, Anda harus menggunakan nama yang unik secara global di seluruh Azure. Nama juga harus terdiri dari 6 hingga 50 karakter, hanya berisi karakter alfanumerik dan tanda hubung, serta tidak dapat dimulai dengan angka.
    Location myFunctionRegion Wilayah tempat Anda membuat aplikasi fungsi.
    Tingkat harga Dasar Tingkat Azure Service Bus dasar.
  4. Pilih Tinjau + buat. Setelah validasi selesai, pilih Buat.

  5. Setelah penyebaran selesai, pilih Buka sumber daya.

  6. Di namespace Azure Service Bus baru, pilih + Antrean untuk menambahkan antrean.

  7. Masukkan myinputqueue sebagai nama antrean baru dan pilih Buat.

Setelah memiliki antrean, Anda dapat menambahkan penetapan peran ke identitas terkelola aplikasi fungsi Anda.

Konfigurasikan pemicu Azure Service Bus dengan identitas terkelola

Untuk menggunakan pemicu Bus Layanan dengan koneksi berbasis identitas, Anda perlu menambahkan penetapan peran Azure Bus Layanan Data Receiver ke identitas terkelola di aplikasi fungsi Anda. Peran ini diperlukan saat menggunakan identitas terkelola untuk memicu namespace Bus Layanan Anda. Anda juga dapat menambahkan akun Anda sendiri ke peran ini, yang memungkinkan untuk terhubung ke namespace Bus Layanan selama pengujian lokal.

Catatan

Persyaratan peran untuk menggunakan koneksi berbasis identitas bervariasi tergantung pada layanan dan cara Anda terhubung. Kebutuhan bervariasi di seluruh pemicu, ikatan input, dan ikatan output. Untuk informasi selengkapnya tentang persyaratan peran tertentu, lihat dokumentasi pemicu dan pengikatan untuk layanan.

  1. Di namespace Bus Layanan yang Anda buat, pilih Kontrol akses (IAM). Halaman ini adalah tempat Anda dapat melihat dan mengonfigurasi siapa yang memiliki akses ke sumber daya.

  2. Pilih + Tambahkan dan pilih Tambahkan penetapan peran.

  3. Cari Azure Bus Layanan Data Receiver, pilih, lalu pilih Berikutnya.

  4. Pada tab Anggota, di bagian Tetapkan akses ke, pilih Identitas Terkelola

  5. Pilih Pilih anggota untuk membuka panel Pilih identitas terkelola.

  6. Konfirmasikan bahwa Langganan adalah tempat Anda sebelumnya membuat sumber daya.

  7. Di pemilih Identitas terkelola, pilih Aplikasi Fungsi dari kategori Identitas terkelola yang ditetapkan sistem. Label Aplikasi Fungsi mungkin memiliki angka dalam tanda kurung di sampingnya, yang menunjukkan jumlah aplikasi dalam langganan dengan identitas yang ditetapkan sistem.

  8. Aplikasi Anda akan muncul dalam daftar di bawah bidang input. Jika tidak melihatnya, Anda dapat menggunakan kotak Pilih untuk memfilter hasil dengan nama aplikasi Anda.

  9. Pilih aplikasi Anda. Tindakan ini seharunsya pindah ke bagian Anggota yang dipilih. Pilih Pilih.

  10. Kembali ke layar Tambahkan penetapan peran, pilih Tinjau + tetapkan. Tinjau konfigurasi, lalu pilih Tinjau + tetapkan.

Anda telah memberikan akses aplikasi fungsi ke namespace Bus Layanan menggunakan identitas terkelola.

Menyambungkan ke Bus Layanan di aplikasi fungsi Anda

  1. Di portal, cari aplikasi fungsi yang Anda buat di tutorial sebelumnya, atau telusuri di halaman Aplikasi Fungsi.

  2. Di aplikasi fungsi Anda, perluas Pengaturan, lalu pilih Variabel lingkungan.

  3. Di tab Pengaturan aplikasi, pilih + Tambahkan untuk membuat pengaturan. Gunakan informasi dalam tabel berikut untuk memasukkan Nama dan Nilai untuk pengaturan baru:

    Nama Nilai Deskripsi
    ServiceBusConnection__fullyQualifiedNamespace < >SERVICE_BUS_NAMESPACE.servicebus.windows.net Pengaturan ini menghubungkan aplikasi fungsi Anda ke Bus Layanan menggunakan koneksi berbasis identitas alih-alih rahasia.
  4. Pilih Terapkan, lalu pilih Terapkan dan Konfirmasi untuk menyimpan perubahan Anda dan memulai ulang fungsi aplikasi.

Catatan

Saat Anda menggunakan Azure App Configuration atau Key Vault untuk 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,ServiceBusConnection:fullyQualifiedNamespace.

Setelah menyiapkan aplikasi fungsi untuk terhubung ke namespace Bus Layanan menggunakan identitas terkelola, Anda dapat menambahkan fungsi baru yang menggunakan pemicu Bus Layanan ke proyek lokal Anda.

Menambahkan fungsi yang dipicu Azure Service Bus

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

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

    cd LocalFunctionProj
    
  3. Di folder proyek akar, jalankan perintah berikut:

    dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 5.2.0
    

    Perintah ini menggantikan versi default paket ekstensi Bus Layanan dengan versi yang mendukung identitas terkelola.

  4. Jalankan perintah berikut untuk menambahkan fungsi yang dipicu Azure Service Bus ke proyek:

    func new --name ServiceBusTrigger --template ServiceBusQueueTrigger 
    

    Perintah ini menambahkan kode untuk pemicu Bus Layanan baru dan referensi ke paket ekstensi. Anda perlu menambahkan pengaturan koneksi namespace Bus Layanan untuk pemicu ini.

  5. Buka file proyek ServiceBusTrigger.cs baru dan ganti ServiceBusTrigger kelas dengan kode berikut:

    public static class ServiceBusTrigger
    {
        [FunctionName("ServiceBusTrigger")]
        public static void Run([ServiceBusTrigger("myinputqueue", 
            Connection = "ServiceBusConnection")]string myQueueItem, ILogger log)
        {
            log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
        }
    }
    

    Sampel kode ini memperbarui nama antrean menjadi myinputqueue, yang merupakan nama yang sama seperti antrean yang Anda buat sebelumnya. Ini juga mengatur nama koneksi Azure Service Bus menjadi ServiceBusConnection. Nama ini adalah namespace Bus Layanan yang digunakan oleh koneksi ServiceBusConnection__fullyQualifiedNamespace berbasis identitas yang Anda konfigurasikan di portal.

Catatan

Jika Anda mencoba menjalankan fungsi sekarang menggunakan func start, Anda akan menerima kesalahan. Ini karena Anda tidak memiliki koneksi berbasis identitas yang didefinisikan secara lokal. Jika Anda ingin menjalankan fungsi secara lokal, atur pengaturan ServiceBusConnection__fullyQualifiedNamespacelocal.settings.json aplikasi seperti yang Anda lakukan di [bagian sebelumnya](#connect-to-the-service-bus-in-your-function-app). Selain itu, Anda perlu menetapkan peran ke identitas pengembang Anda. Untuk informasi selengkapnya, lihat pengembangan lokal dengan koneksi berbasis identitas.

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,ServiceBusConnection:fullyQualifiedNamespace.

Memublikasikan proyek yang diperbarui

  1. Jalankan perintah berikut untuk menghasilkan file yang diperlukan secara lokal bagi paket penyebaran:

    dotnet publish --configuration Release
    
  2. Telusuri subfolder \bin\Release\netcoreapp3.1\publish dan buat file .zip dari kontennya.

  3. Publikasikan file .zip dengan menjalankan perintah berikut, menggantikan parameterFUNCTION_APP_NAME, RESOURCE_GROUP_NAME, dan PATH_TO_ZIP agar sesuai:

    az functionapp deploy -n FUNCTION_APP_NAME -g RESOURCE_GROUP_NAME --src-path PATH_TO_ZIP
    

Setelah memperbarui aplikasi fungsi dengan pemicu baru, Anda dapat memverifikasi bahwa aplikasi tersebut berfungsi menggunakan identitas.

Memvalidasi perubahan Anda

  1. Di portal, cari Application Insights dan pilih Application Insights di bawah Layanan.

  2. Di Application Insights, telusuri atau cari instans yang dinamai.

  3. Dalam instans, pilih Metrik Langsung di bawah Investigasi.

  4. Biarkan tab sebelumnya terbuka, dan buka portal Azure di tab baru. Di tab baru Anda, navigasikan ke namespace Bus Layanan Anda, pilih Antrean dari menu sebelah kiri.

  5. Pilih antrean bernama myinputqueue.

  6. Pilih Bus Layanan Explorer dari menu sebelah kiri.

  7. Kirim pesan uji.

  8. Pilih tab Metrik Langsung yang terbuka dan lihat eksekusi antrean Azure Service Bus.

Selamat! Anda telah berhasil menyiapkan pemicu antrean Bus Layanan dengan identitas terkelola.

Membersihkan sumber daya

Di langkah-langkah sebelumnya, Anda membuat sumber daya Azure dalam grup sumber daya. Jika Anda tidak mengharapkan untuk membutuhkan sumber daya ini di masa mendatang, Anda dapat menghapusnya dengan menghapus grup sumber daya:

  1. Dari menu portal Microsoft Azure atau halaman beranda, pilih Grup> sumber dayamyResourceGroup.

  2. Pada panel myResourceGroup , pastikan sumber daya yang tercantum adalah sumber daya yang ingin Anda hapus.

  3. Pilih Hapus grup sumber daya. Ketik myResourceGroup di kotak teks untuk mengonfirmasi, lalu pilih Hapus.

Langkah berikutnya

Dalam tutorial ini, Anda membuat aplikasi fungsi dengan koneksi berbasis identitas.

Lanjutkan ke artikel berikutnya untuk mempelajari cara mengelola identitas.