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
Etkin bir Azure hesabı. Hesabınız yoksa, yalnızca birkaç dakika içinde ücretsiz bir hesap oluşturabilirsiniz.
Azure IoT hub'ı. IoT hub'larınız yoksa New-AzIoTHub cmdlet'ini kullanarak bir tane oluşturabilir veya portalı kullanarak IoT hub'ı oluşturabilirsiniz.
Bir Azure depolama hesabı. Azure depolama hesabınız yoksa Azure Depolama PowerShell cmdlet'lerini kullanarak bir hesap oluşturabilir veya portalı kullanarak Depolama hesabı oluşturabilirsiniz
İsterseniz PowerShell'i yerel olarak yükleyin .
- Azure Az PowerShell modülünü yükleyin. (Modül, Azure Cloud Shell PowerShell ortamında varsayılan olarak yüklenir.)
- Bağlan-AzAccount komutunu kullanarak PowerShell'de oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz . Azure PowerShell ile oturum açma.
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.
PowerShell isteminde Bağlan-AzAccount cmdlet'ini çalıştırın:
Connect-AzAccount
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 diğer adıdır.
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.