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

Bu makalede, PowerShell kullanarak IoT hub'ınıza dosya yüklemelerini yapılandırma işlemi gösterilmektedir.

IoT Hub'da dosya karşıya yükleme işlevini kullanmak için önce bir Azure depolama hesabını ve blob kapsayıcısını IoT hub'ınızla ilişkilendirmeniz gerekir. IoT Hub, cihazların dosyaları karşıya yüklerken kullanabilmesi için bu blob kapsayıcısına yazma izinlerine sahip SAS URI'lerini otomatik olarak oluşturur. Depolama hesabı ve blob kapsayıcısına ek olarak, SAS URI'sinin yaşam süresini ayarlayabilir ve IoT Hub'ın arka uç hizmetlerine sunabileceği isteğe bağlı dosya karşıya yükleme bildirimlerinin ayarlarını yapılandırabilirsiniz.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. 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çma ve Azure hesabınızı ayarlama

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 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}"
    

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

Aşağıdaki adımlarda depolama hesabınızı Klasik dağıtım modelini değil Resource Manager dağıtım modelini kullanarak oluşturduğunuz varsayılır.

Cihazlarınızdan dosya yüklemelerini yapılandırmak için bir Azure depolama hesabı için bağlantı dizesi gerekir. Depolama hesabının IoT hub'ınızla aynı abonelikte olması gerekir. Depolama hesabında blob kapsayıcısının adına da ihtiyacınız vardır. Depolama hesabı anahtarlarınızı almak için Get-Az Depolama AccountKey komutunu kullanın:

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

key1 depolama hesabı anahtarı değerini not edin. Aşağıdaki adımlarda buna ihtiyacınız vardır.

Dosya karşıya yüklemeleriniz için mevcut bir blob kapsayıcısını kullanabilir veya yeni bir tane oluşturabilirsiniz:

  • Depolama hesabınızdaki mevcut blob kapsayıcılarını listelemek için New-Az Depolama Context ve Get-Az Depolama Container 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 blob kapsayıcısı oluşturmak için New-Az Depolama Context ve New-Az Depolama Container 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 depolama hesabı ayrıntılarınızı kullanarak IoT hub'ınızı IoT hub'ına dosya yükleyecek şekilde yapılandırabilirsiniz.

Yapılandırma aşağıdaki değerleri gerektirir:

  • Depolama kapsayıcısı: IoT hub'ınızla ilişkilendirmek için geçerli Azure aboneliğinizdeki bir Azure depolama hesabındaki blob kapsayıcısı. Önceki bölümde gerekli depolama hesabı bilgilerini aldıysanız. IoT Hub, cihazların dosyaları karşıya yüklerken kullanabilmesi için bu blob kapsayıcısına yazma izinlerine sahip SAS URI'lerini otomatik olarak oluşturur.

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

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

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

  • Dosya bildirimi teslim sayısı üst sınırı: IoT Hub'ın dosya karşıya yükleme bildirimi göndermeyi deneme sayısı. Varsayılan olarak 10 olarak ayarlayın.

IoT hub'ınızdaki dosya 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ı dizesi hesap anahtarını kullanarak Azure Depolama kimlik doğrulaması yapar. Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlikleri kullanarak kimlik doğrulaması da kullanılabilir. Yönetilen kimlikler güvenli bir şekilde Azure hizmetlerine, Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar. Daha fazla bilgi edinmek 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 yoktur. Bunun yerine Azure portalını veya Azure CLI'yı kullanabilirsiniz.

Sonraki adımlar