PowerShell kullanarak IoT Hub dosya yüklemelerini yapılandırma

Bu makalede, PowerShell kullanarak IoT Hub 'ınızda dosya karşıya yüklemelerinin nasıl yapılandırılacağı gösterilir.

IoT Hub içinde karşıya dosya yükleme işlevinikullanmak Için öncelikle IoT Hub 'ınız Ile bir Azure depolama hesabı ve BLOB kapsayıcısı ilişkilendirmeniz gerekir. IoT Hub, dosyaları karşıya yüklerken kullanılacak cihazlar için bu blob kapsayıcısına yazma izinleri olan SAS URI 'Leri otomatik olarak oluşturur. Depolama hesabı ve BLOB kapsayıcısına ek olarak, SAS URI 'SI için yaşam süresi ayarlayabilir ve IoT Hub arka uç hizmetlerine teslim edebilen isteğe bağlı dosya yükleme bildirimleri için ayarları yapılandırabilirsiniz.

Not

Bu makale Azure Az PowerShell modülünü kullanacak şekilde güncelleştirilmiştir. Az PowerShell modülü, Azure ile etkileşim kurmak için önerilen PowerShell modülüdür. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önkoşullar

Oturum açın ve Azure hesabınızı ayarlayın

Azure hesabınızda oturum açın ve aboneliğinizi seçin. Azure Cloud Shell kullanıyorsanız, zaten oturum açmış olmanız gerekir; Ancak, birden çok aboneliğiniz varsa yine de Azure aboneliğinizi seçmeniz gerekebilir.

  1. PowerShell isteminde Bağlan-azaccount cmdlet 'ini çalıştırın:

    Connect-AzAccount
    
  2. Birden çok Azure aboneliğiniz varsa Azure 'da oturum açmak, kimlik bilgilerinizle ilişkili tüm Azure aboneliklerine erişmenizi sağlar. Kullanabileceğiniz Azure aboneliklerini listelemek için Get-AzSubscription komutunu kullanın:

    Get-AzSubscription
    

    IoT Hub 'ınızı yönetmek üzere komutları çalıştırmak için kullanmak istediğiniz aboneliği seçmek için aşağıdaki komutu kullanın. Önceki komutun çıkışında yer alan abonelik adını veya kimliği kullanabilirsiniz:

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

    Not

    Select- AzSubscription komutu, Select- azcontext komutu için gereken daha karmaşık bağlam adı yerine Get-azsubscription komutu tarafından döndürülen abonelik adını (ad) veya abonelik kimliğini (ID) kullanmanıza olanak tanıyan Select-azcontext ' in diğer adıdır.

Depolama hesabı ayrıntılarınızı alın

Aşağıdaki adımlarda, Klasik dağıtım modelini değil Kaynak Yöneticisi dağıtım modelini kullanarak depolama hesabınızı oluşturduğunuzu varsayalım.

Cihazlarınızdan dosya karşıya yüklemelerini yapılandırmak için bir Azure depolama hesabı için bağlantı dizesine ihtiyacınız vardır. Depolama hesabı, IoT Hub 'ınız ile aynı abonelikte olmalıdır. Ayrıca, depolama hesabındaki bir blob kapsayıcısının adına de ihtiyacınız vardır. Depolama hesabı anahtarlarınızı almak için Get-AzStorageAccountKey komutunu kullanın:

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

KEY1 depolama hesabı anahtar değerini bir yere göz önüne alın. Aşağıdaki adımlarda bu yapmanız gerekir.

Dosya karşıya yüklemelerinizin mevcut bir blob kapsayıcısını kullanabilir ya da yeni bir tane oluşturabilirsiniz:

  • Depolama hesabınızdaki mevcut blob kapsayıcılarını listelemek için, New-AzStorageContext ve Get-azstoragecontainer komutlarını kullanın:

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzStorageContainer -Context $ctx
    
  • Depolama hesabınızda bir blob kapsayıcısı oluşturmak için New-AzStorageContext ve New-azstoragecontainer komutlarını kullanın:

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

IoT Hub 'ınızı yapılandırma

Artık IoT Hub 'ınızı, depolama hesabı ayrıntılarınızı kullanarak IoT Hub 'ına dosya yükleyecek şekilde yapılandırabilirsiniz.

Yapılandırma için aşağıdaki değerler gereklidir:

  • Depolama container: ıot hub 'ınız ile ilişkilendirilecek geçerli azure aboneliğinizdeki bir azure depolama hesabındaki blob kapsayıcısı. Önceki bölümde gerekli depolama hesabı bilgilerini almıştır. IoT Hub, dosyaları karşıya yüklerken kullanılacak cihazlar için bu blob kapsayıcısına yazma izinleri olan SAS URI 'Leri otomatik olarak oluşturur.

  • Karşıya yüklenen dosyalar için bildirim al: dosya yükleme bildirimlerini etkinleştirin veya devre dışı bırakın.

  • SAS TTL: Bu ayar, cihaza IoT Hub tarafından döndürülen sas URI 'lerinin yaşam süresi olarak belirlenir. Varsayılan olarak bir saat olarak ayarlanır.

  • Dosya bildirim ayarları varsayılan TTL: süresi dolmadan önce karşıya dosya yükleme bildiriminin yaşam süresi. Varsayılan olarak bir güne ayarlanır.

  • Dosya bildirimi en fazla teslimat sayısı: IoT Hub dosya yükleme bildirimi sunmaya kaç kez girişimde bulunulmasını sağlar. Varsayılan olarak 10 olarak ayarlanır.

IoT Hub 'ınızdaki dosya karşıya yükleme ayarlarını yapılandırmak için set-AzIotHub komutunu kullanın:

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

Not

varsayılan olarak, IoT Hub bağlantı dizesindeki hesap anahtarını kullanarak Azure Depolama kimlik doğrulamasını gerçekleştirir. Sistem tarafından atanan veya Kullanıcı tarafından atanan Yönetilen kimlikler kullanılarak kimlik doğrulama de mevcuttur. Yönetilen kimlikler, Azure AD 'de otomatik olarak yönetilen bir kimlikle Azure hizmetleri 'ni güvenli bir şekilde sağlar. Daha fazla bilgi için bkz. Yönetilen kimlikler için IoT Hub desteği. Şu anda, kimlik doğrulama türünü ayarlamak için set-AzIotHub komutunda parametre yok. Bunun yerine, Azure Portal ya da Azure CLIkullanabilirsiniz.

Sonraki adımlar