Bagikan melalui


Mengonfigurasi pengunggahan file IoT Hub menggunakan portal Azure

Mengonfigurasi unggahan file di hub IoT Anda memungkinkan perangkat yang terhubung untuk mengunggah file ke akun penyimpanan Azure. Artikel ini memperlihatkan kepada Anda cara mengonfigurasi unggahan file di hub IoT Anda menggunakan portal Microsoft Azure, Azure CLI, dan Azure PowerShell.

Untuk menggunakan fungsionalitas pengunggahan file di IoT Hub, Anda harus terlebih dahulu mengaitkan akun penyimpanan Azure dengan IoT Hub Anda. Azure IoT Hub secara otomatis menghasilkan URI SAS dengan izin tulis ke kontainer blon ini untuk digunakan perangkat saat mereka mengunggah file. Selain akun penyimpanan dan kontainer blob, Anda dapat mengatur waktu hidup untuk URI SAS dan jenis autentikasi yang digunakan IoT Hub dengan penyimpanan Azure. Anda juga dapat mengonfigurasi pengaturan untuk pemberitahuan pengunggahan file opsional yang dapat dikirimkan IoT Hub ke layanan ujung belakang.

Prasyarat

  • Akun Azure aktif. Jika Anda tidak memiliki akun, Anda dapat membuat akun gratis hanya dalam beberapa menit.

  • IoT Hub di langganan Azure Anda. Jika belum memiliki hub, Anda dapat mengikuti langkah-langkah di Membuat IoT hub.

Mengonfigurasi hub IoT Anda di portal Microsoft Azure

  1. Dalam portal Microsoft Azure, navigasikan ke hub IoT Anda dan pilih Pengunggahan file untuk menampilkan properti pengunggahan file. Lalu pilih Azure Storage Container di bawah Pengaturan kontainer penyimpanan.

    Cuplikan layar yang memperlihatkan cara mengonfigurasi pengaturan unggah file di portal.

  2. Pilih akun Azure Storage dan kontainer blob di langganan Anda saat ini untuk dikaitkan dengan hub IoT Anda. Jika perlu, Anda dapat membuat akun Microsoft Azure Storage pada panel Akun penyimpanan dan buat kontainer blob pada panel Kontainer.

    Cuplikan layar memperlihatkan cara melihat kontainer penyimpanan untuk pengunggahan file.

  3. Setelah Anda memilih akun Azure Storage dan kontainer blob, konfigurasikan sisa properti pengunggahan file.

    • Terima pemberitahuan untuk file yang diunggah: Aktifkan atau nonaktifkan pemberitahuan unggah file melalui tombol alih.

    • SAS TTL: Pengaturan ini adalah waktu aktif dari URI SAS yang dikembalikan ke perangkat oleh IoT Hub. Atur ke satu jam secara default tetapi bisa disesuaikan ke nilai lain menggunakan penggeser.

    • TTL default pengaturan pemberitahuan file: Waktu hidup pemberitahuan pengunggahan file sebelum kedaluwarsa. Atur ke satu hari secara default tetapi bisa disesuaikan ke nilai lain menggunakan penggeser.

    • Jumlah pengiriman maksimum pemberitahuan file: Berapa kali IoT Hub mencoba mengirimkan pemberitahuan pengunggahan file. Atur ke 10 hari secara default tetapi bisa disesuaikan ke nilai lain menggunakan penggeser.

    • Jenis autentikasi: Secara default, Azure IoT Hub menggunakan autentikasi berbasis kunci untuk menyambungkan dan mengotorisasi Azure Storage. Anda juga dapat mengonfigurasi identitas terkelola yang ditetapkan pengguna atau yang ditetapkan sistem untuk mengautentikasi Azure IoT Hub dengan Azure Storage. Identitas terkelola menyediakan layanan Azure dengan identitas terkelola secara otomatis di Microsoft Entra ID dengan cara yang aman. Untuk mempelajari cara mengonfigurasi identitas terkelola, lihat dukungan IoT Hub untuk identitas terkelola. Setelah Anda mengonfigurasi satu identitas terkelola atau lebih pada akun Azure Storage dan hub IoT Anda, Anda dapat memilih satu untuk autentikasi dengan penyimpanan Azure dengan tombol Ditetapkan sistem atau Ditetapkan pengguna.

      Catatan

      Pengaturan jenis autentikasi mengonfigurasi cara IoT hub Anda mengautentikasi dengan akun Azure Storage. Perangkat selalu mengautentikasi dengan Azure Storage menggunakan URI SAS yang mereka dapatkan dari IoT hub.

  4. Pilih Simpan untuk menyimpan pengaturan Anda. Pastikan untuk memeriksa konfirmasi untuk berhasil menyelesaikan. Beberapa pilihan, seperti Jenis autentikasi, divalidasi hanya setelah Anda menyimpan pengaturan Anda.

Prasyarat

  • Akun Azure aktif. Jika Anda tidak memiliki akun, Anda dapat membuat akun gratis hanya dalam beberapa menit.

  • IoT Hub di langganan Azure Anda. Jika belum memiliki hub, Anda dapat mengikuti langkah-langkah di Membuat IoT hub.

  • Akun Azure Storage dengan kontainer blob. Jika Anda tidak memiliki akun Azure Storage, Anda dapat menggunakan Azure CLI untuk membuatnya. Untuk informasi selengkapnya, lihat Membuat akun penyimpanan.

Masuk dan atur akun Azure Anda

Masuklah ke akun Azure Anda dan pilih langganan Anda. Jika Anda menggunakan Azure Cloud Shell, Anda harus sudah masuk; namun, Anda mungkin masih perlu memilih langganan Azure jika Anda memiliki beberapa langganan.

  1. Pada prompt perintah, jalankan perintah masuk:

    az login
    

    Ikuti instruksinya untuk mengautentikasi menggunakan kode dan masuk ke akun Azure Anda melalui browser web.

  2. Jika Anda memiliki beberapa langganan Azure, maka masuk ke Azure akan memberi Anda akses ke semua akun Azure yang terkait dengan informasi masuk Anda. Gunakan perintah berikut ini untuk mencantumkan akun Azure yang tersedia untuk Anda gunakan:

    az account list
    

    Gunakan perintah berikut untuk memilih langganan yang ingin Anda gunakan untuk menjalankan perintah untuk membuat hub IoT Anda. Anda dapat menggunakan nama atau ID langganan dari output perintah sebelumnya:

    az account set --subscription {your subscription name or id}
    

Mengonfigurasi akses akun penyimpanan

Langkah-langkah berikut mengasumsikan bahwa Anda membuat akun penyimpanan menggunakan model penyebaran Resource Manager , dan bukan model penyebaran Klasik .

Untuk mengonfigurasi unggahan file dari perangkat, Anda perlu memberikan izin akses hub IoT ke akun Azure Storage. Akun penyimpanan harus berada dalam langganan yang sama dengan hub IoT Anda. Anda juga memerlukan nama kontainer blob di akun penyimpanan.

Anda dapat menggunakan autentikasi berbasis kunci atau berbasis identitas untuk memberikan izin akses. Microsoft merekomendasikan autentikasi berbasis identitas sebagai opsi yang lebih aman.

Autentikasi berbasis kunci

Untuk autentikasi berbasis kunci, berikan string koneksi untuk akun penyimpanan Anda. Gunakan perintah az storage account show-connection-string untuk mengambil kunci akun penyimpanan Anda.

Catat nilainya connectionString . String koneksi terlihat mirip dengan output berikut:

{
  "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}

Autentikasi berbasis identitas

Anda dapat menggunakan identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna untuk autentikasi berbasis identitas. Untuk informasi selengkapnya, lihat Dukungan IoT Hub untuk identitas terkelola.

Gunakan perintah az role assignment create untuk menetapkan peran ke identitas terkelola Anda. Untuk informasi selengkapnya, lihat Menetapkan peran Azure untuk akses ke data blob.

Mengonfigurasi IoT hub Anda

Anda sekarang dapat mengonfigurasi hub IoT anda untuk mengaktifkan kemampuan untuk mengunggah file ke hub IoT menggunakan detail akun penyimpanan Anda.

Konfigurasi memerlukan nilai berikut:

  • Kontainer penyimpanan: Kontainer blob di akun penyimpanan Azure di langganan Azure Anda saat ini untuk dikaitkan dengan hub IoT Anda. Anda mendapatkan informasi akun penyimpanan yang diperlukan di bagian sebelumnya. Azure IoT Hub secara otomatis menghasilkan URI SAS dengan izin tulis ke kontainer blon ini untuk digunakan perangkat saat mereka mengunggah file.

  • Menerima pemberitahuan untuk file yang diunggah: Mengaktifkan atau menonaktifkan pemberitahuan unggahan file.

  • SAS TTL: Pengaturan ini adalah waktu aktif dari URI SAS yang dikembalikan ke perangkat oleh IoT Hub. Atur ke satu jam secara default.

  • Pengaturan pemberitahuan file TTL default: Waktu hidup pemberitahuan pengunggahan file sebelum kedaluwarsa. Atur ke satu hari secara default.

  • Jumlah pengiriman maksimum pemberitahuan file: Berapa kali IoT Hub mencoba mengirimkan pemberitahuan pengunggahan file. Atur ke 10 secara default.

  • Durasi kunci pemberitahuan file: Durasi kunci untuk antrean pemberitahuan file. Atur ke 60 detik secara default.

  • Jenis autentikasi: Jenis autentikasi untuk IoT Hub untuk digunakan dengan Azure Storage. Pengaturan ini menentukan bagaimana hub IoT Anda mengautentikasi dan mengotorisasi dengan Azure Storage. Defaultnya adalah autentikasi berbasis kunci; namun, opsi autentikasi identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna disarankan. Identitas terkelola menyediakan layanan Azure dengan identitas terkelola secara otomatis di Microsoft Entra ID dengan cara yang aman.

    Catatan

    Pengaturan jenis autentikasi mengonfigurasi cara IoT hub Anda mengautentikasi dengan akun Azure Storage. Perangkat selalu mengautentikasi dengan Azure Storage menggunakan URI SAS yang mereka dapatkan dari IoT hub.

Perintah berikut menunjukkan cara mengonfigurasi pengaturan unggahan file di hub IoT Anda. Perintah ini ditampilkan secara terpisah untuk kejelasan, tetapi, biasanya, Anda akan mengeluarkan satu perintah dengan semua parameter yang diperlukan untuk skenario Anda. Sertakan tanda kutip saat muncul di baris perintah. Jangan sertakan kurung kurawal. Detail selengkapnya tentang setiap parameter dapat ditemukan dalam dokumentasi Azure CLI untuk perintah az iot hub update .

Perintah berikut mengonfigurasi akun penyimpanan dan kontainer blob.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-connectionstring "{your storage account connection string}" \
    --fileupload-storage-container-name "{your container name}" 

Perintah berikut mengatur masa aktif URI SAS ke nilai default (satu jam).

az iot hub update --name {your iot hub name} \
    --fileupload-sas-ttl 1 

Perintah berikut mengaktifkan pemberitahuan file dan mengatur properti pemberitahuan file ke nilai defaultnya. (Waktu berlaku pemberitahuan unggahan file diatur menjadi satu jam dan durasi kunci diatur menjadi 60 detik.)

az iot hub update --name {your iot hub name} \
    --fileupload-notifications true  \
    --fileupload-notification-max-delivery-count 10 \
    --fileupload-notification-ttl 1 \
    --fileupload-notification-lock-duration 60

Perintah berikut mengonfigurasi autentikasi berbasis kunci:

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type keyBased

Perintah berikut mengonfigurasi autentikasi menggunakan identitas terkelola yang ditetapkan sistem hub IoT. Sebelum dapat menjalankan perintah ini, Anda perlu mengaktifkan identitas terkelola yang ditetapkan sistem untuk hub IoT Anda dan memberinya peran kontrol akses berbasis peran yang benar di akun Azure Storage Anda. Untuk mempelajari caranya, lihat Dukungan IoT Hub untuk identitas terkelola.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type identityBased \
    --fileupload-storage-identity [system] 

Perintah berikut mengambil identitas terkelola yang ditetapkan pengguna yang dikonfigurasi di hub IoT Anda dan mengonfigurasi autentikasi dengan salah satunya. Sebelum Anda dapat menggunakan identitas terkelola yang ditetapkan pengguna untuk mengautentikasi, identitas tersebut harus dikonfigurasi di hub IoT Anda dan diberikan peran kontrol akses berbasis peran yang sesuai di akun Azure Storage Anda. Untuk detail dan langkah-langkah selengkapnya, lihat Dukungan IoT Hub untuk identitas terkelola.

Untuk mengkueri identitas terkelola yang ditetapkan pengguna di hub IoT Anda, gunakan perintah az iot hub identity show .

az iot hub identity show --name {your iot hub name} --query userAssignedIdentities

Perintah mengembalikan kumpulan identitas terkelola yang ditetapkan pengguna yang dikonfigurasi di hub IoT Anda. Output berikut menunjukkan koleksi yang berisi satu identitas terkelola yang ditetapkan oleh pengguna.

{
  "/subscriptions/{your subscription ID}/resourcegroups/{your resource group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{your user-assigned managed identity name}": 
  {
    "clientId": "<client ID GUID>",
    "principalId": "<principal ID GUID>"
  }
}

Perintah berikut mengonfigurasi autentikasi untuk menggunakan identitas yang ditetapkan pengguna di atas.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type identityBased \
    --fileupload-storage-identity  "/subscriptions/{your subscription ID}/resourcegroups/{your resource group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{your user-assigned managed identity name}"

Anda dapat meninjau pengaturan di hub IoT Anda menggunakan perintah berikut:

az iot hub show --name {your iot hub name}

Untuk meninjau pengaturan unggahan file saja, gunakan perintah berikut:

az iot hub show --name {your iot hub name}
    --query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'

Untuk sebagian besar situasi, menggunakan parameter bernama dalam perintah Azure CLI paling mudah; namun, Anda juga dapat mengonfigurasi pengaturan unggahan file dengan --set parameter . Perintah berikut ini dapat membantu Anda memahami caranya.

az iot hub update --name {your iot hub name} \
  --set properties.storageEndpoints.'$default'.connectionString="{your storage account connection string}"

az iot hub update --name {your iot hub name} \
  --set properties.storageEndpoints.'$default'.containerName="{your storage container name}"

az iot hub update --name {your iot hub name} \
  --set properties.storageEndpoints.'$default'.sasTtlAsIso8601=PT1H0M0S

az iot hub update --name {your iot hub name} \
  --set properties.enableFileUploadNotifications=true

az iot hub update --name {your iot hub name} \
  --set properties.messagingEndpoints.fileNotifications.maxDeliveryCount=10

az iot hub update --name {your iot hub name} \
  --set properties.messagingEndpoints.fileNotifications.ttlAsIso8601=PT1H0M0S

Prasyarat

Masuk dan atur akun Azure Anda

Masuklah ke akun Azure Anda dan pilih langganan Anda. Jika Anda menggunakan Azure Cloud Shell, Anda harus sudah masuk; namun, Anda mungkin masih perlu memilih langganan Azure jika Anda memiliki beberapa langganan.

  1. Pada perintah PowerShell, jalankan cmdlet Connect-AzAccount :

    Connect-AzAccount
    
  2. Jika Anda memiliki beberapa langganan Azure, masuk ke Azure memberi Anda akses ke semua langganan Azure yang terkait dengan kredensial Anda. Gunakan perintah Get-AzSubscription untuk mencantumkan langganan Azure yang tersedia untuk Anda gunakan:

    Get-AzSubscription
    

    Gunakan perintah berikut untuk memilih langganan yang ingin Anda gunakan untuk menjalankan perintah untuk mengelola hub IoT Anda. Anda dapat menggunakan nama atau ID langganan dari output perintah sebelumnya:

    Select-AzSubscription `
        -Name "{your subscription name}"
    

    Catatan

    Perintah Select-AzSubscription adalah alias dari Select-AzContext yang memungkinkan Anda menggunakan nama langganan (Nama) atau ID langganan (Id) yang dikembalikan oleh perintah Get-AzSubscription daripada nama konteks yang lebih kompleks yang diperlukan untuk perintah Select-AzContext .

Mengambil detail akun penyimpanan Anda

Langkah-langkah berikut mengasumsikan bahwa Anda membuat akun penyimpanan menggunakan model penyebaran Resource Manager , dan bukan model penyebaran Klasik .

Untuk mengonfigurasi unggahan file dari perangkat, Anda memerlukan string koneksi untuk akun penyimpanan Azure. Akun penyimpanan harus berada dalam langganan yang sama dengan hub IoT Anda. Anda juga memerlukan nama kontainer blob di akun penyimpanan. Gunakan perintah Get-AzStorageAccountKey untuk mengambil kunci akun penyimpanan Anda:

Get-AzStorageAccountKey `
  -Name {your storage account name} `
  -ResourceGroupName {your storage account resource group}

Catat nilai kunci akun penyimpanan key1 . Anda membutuhkannya dalam langkah-langkah berikut.

Anda dapat menggunakan kontainer blob yang ada untuk unggahan file Anda atau membuat yang baru:

  • Untuk mencantumkan kontainer blob yang ada di akun penyimpanan Anda, gunakan perintah New-AzStorageContext dan Get-AzStorageContainer :

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzStorageContainer -Context $ctx
    
  • Untuk membuat kontainer blob di akun penyimpanan Anda, gunakan perintah New-AzStorageContext dan New-AzStorageContainer :

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    New-AzStorageContainer `
        -Name {your new container name} `
        -Permission Off `
        -Context $ctx
    

Mengonfigurasi IoT hub Anda

Sekarang Anda dapat mengonfigurasi hub IoT untuk mengunggah file ke hub IoT menggunakan detail akun penyimpanan Anda.

Konfigurasi memerlukan nilai berikut:

  • Kontainer penyimpanan: Kontainer blob di akun penyimpanan Azure di langganan Azure Anda saat ini untuk dikaitkan dengan hub IoT Anda. Anda mendapatkan informasi akun penyimpanan yang diperlukan di bagian sebelumnya. Azure IoT Hub secara otomatis menghasilkan URI SAS dengan izin tulis ke kontainer blon ini untuk digunakan perangkat saat mereka mengunggah file.

  • Menerima pemberitahuan untuk file yang diunggah: Mengaktifkan atau menonaktifkan pemberitahuan unggahan file.

  • SAS TTL: Pengaturan ini adalah waktu aktif dari URI SAS yang dikembalikan ke perangkat oleh IoT Hub. Atur ke satu jam secara default.

  • TTL default pengaturan pemberitahuan file: Waktu hidup pemberitahuan pengunggahan file sebelum kedaluwarsa. Atur ke satu hari secara default.

  • Jumlah pengiriman maksimum pemberitahuan file: Berapa kali IoT Hub mencoba mengirimkan pemberitahuan pengunggahan file. Atur ke 10 secara default.

Gunakan perintah Set-AzIotHub untuk mengonfigurasi pengaturan unggahan file di hub IoT Anda:

Set-AzIotHub `
    -ResourceGroupName "{your iot hub resource group}" `
    -Name "{your iot hub name}" `
    -FileUploadNotificationTtl "01:00:00" `
    -FileUploadSasUriTtl "01:00:00" `
    -EnableFileUploadNotifications $true `
    -FileUploadStorageConnectionString "DefaultEndpointsProtocol=https;AccountName={your storage account name};AccountKey={your storage account key};EndpointSuffix=core.windows.net" `
    -FileUploadContainerName "{your blob container name}" `
    -FileUploadNotificationMaxDeliveryCount 10

Catatan

Secara default, IoT Hub mengautentikasi dengan Azure Storage menggunakan kunci akun dalam string koneksi. Autentikasi menggunakan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna juga tersedia. Identitas terkelola menyediakan layanan Azure dengan identitas terkelola secara otomatis di Microsoft Entra ID dengan cara yang aman. Untuk mempelajari selengkapnya, lihat Dukungan IoT Hub untuk identitas terkelola. Saat ini, tidak ada parameter pada perintah Set-AzIotHub untuk mengatur jenis autentikasi.