Azure CLI kullanarak IoT Hub dosya yüklemelerini yapılandırma
Bu makalede, Azure CLI kullanarak IoT hub'ınıza dosya yüklemelerini yapılandırma adımları 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 ve IoT Hub'ın Azure depolama ile kullandığı kimlik doğrulama türünü ayarlayabilirsiniz. IoT Hub'ın arka uç hizmetlerine sunabileceği isteğe bağlı dosya karşıya yükleme bildirimlerinin ayarlarını da yapılandırabilirsiniz.
Önkoşullar
Etkin bir Azure hesabı. Hesabınız yoksa, yalnızca birkaç dakika içinde ücretsiz bir hesap oluşturabilirsiniz.
Azure aboneliğinizde bir IoT hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.
Blob kapsayıcısı olan bir Azure Depolama hesabı. Azure Depolama hesabınız yoksa Azure CLI'yı kullanarak bir hesap oluşturabilirsiniz. Daha fazla bilgi için bkz. Depolama hesabı oluşturma.
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Not
Bu makalede Azure IoT uzantısının adlı azure-iot
en yeni sürümü kullanılır. Eski sürüm olarak adlandırılır azure-cli-iot-ext
. Bir kerede yalnızca bir sürümünüz yüklü olmalıdır. Şu anda yüklü olan uzantıları doğrulamak için komutunu az extension list
kullanabilirsiniz.
Uzantının eski sürümünü kaldırmak için kullanın az extension remove --name azure-cli-iot-ext
.
Uzantının yeni sürümünü eklemek için kullanın az extension add --name azure-iot
.
Hangi uzantıları yüklediğinizi görmek için kullanın az extension list
.
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.
Komut isteminde oturum açma komutunu çalıştırın:
az login
Kodu kullanarak kimlik doğrulaması gerçekleştirmek için yönergeleri uygulayın ve bir web tarayıcısı üzerinden Azure hesabınızda oturum açın.
Birden fazla Azure aboneliğiniz varsa Azure’da oturum açtığınızda, kimlik bilgilerinizle ilişkili tüm Azure hesaplarınıza erişim izni elde edersiniz. Kullanabileceğiniz Azure hesaplarını listelemek için aşağıdaki komutu kullanın:
az account list
IoT hub'ınızı oluşturmak için 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:
az account set --subscription {your subscription name or id}
Depolama hesabı erişimini yapılandırma
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 IoT hub'ınıza Azure Depolama hesabına erişim izinleri vermeniz 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.
Erişim izinleri sağlamak için anahtar tabanlı veya kimlik tabanlı kimlik doğrulaması kullanabilirsiniz. Microsoft, kimlik tabanlı kimlik doğrulamayı daha güvenli bir seçenek olarak önerir.
Anahtar tabanlı kimlik doğrulaması
Anahtar tabanlı kimlik doğrulaması için depolama hesabınız için bağlantı dizesi sağlayın. Depolama hesabı anahtarlarınızı almak için az storage account show-connection-string komutunu kullanın.
connectionString
değerini not edin. bağlantı dizesi aşağıdaki çıkışa benzer:
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}
Kimlik tabanlı kimlik doğrulaması
Kimlik tabanlı kimlik doğrulaması için sistem tarafından atanan yönetilen kimlikleri veya kullanıcı tarafından atanan yönetilen kimlikleri kullanabilirsiniz. Daha fazla bilgi için bkz . Yönetilen kimlikler için IoT Hub desteği.
Yönetilen kimliğinize rol atamak için az role assignment create komutunu kullanın. Daha fazla bilgi için bkz. Blob verilerine erişmek için Azure rolü atama.
IoT hub'ınızı yapılandırma
Artık depolama hesabı ayrıntılarınızı kullanarak IoT hub'ına dosya yükleme özelliğini etkinleştirmek için IoT hub'ınızı 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.
Dosya bildirimi kilit süresi: Dosya bildirim kuyruğunun kilit süresi. Varsayılan olarak 60 saniyeye ayarlayın.
Kimlik doğrulama türü: Azure Depolama ile kullanılacak IoT Hub kimlik doğrulama türü. Bu ayar, IoT hub'ınızın Azure Depolama ile kimlik doğrulaması ve yetkilendirme şeklini belirler. Varsayılan değer anahtar tabanlı kimlik doğrulamasıdır; ancak sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik doğrulama seçenekleri önerilir. Yönetilen kimlikler güvenli bir şekilde Azure hizmetlerine, Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar.
Not
Kimlik doğrulama türü ayarı, IoT hub'ınızın Azure Depolama hesabınızla kimlik doğrulamasını yapılandırıyor. Cihazlar her zaman IoT hub'ından aldıkları SAS URI'sini kullanarak Azure Depolama ile kimlik doğrulaması yapar.
Aşağıdaki komutlar, IoT hub'ınızdaki dosya yükleme ayarlarını yapılandırmayı gösterir. Bu komutlar netlik için ayrı olarak gösterilir, ancak genellikle senaryonuz için gerekli tüm parametrelerle tek bir komut yayımlayabilirsiniz. Komut satırında göründükleri yerlerde tırnak işaretleri ekleyin. Ayraçları eklemeyin. Her parametre hakkında daha fazla ayrıntı az iot hub update komutu için Azure CLI belgelerinde bulunabilir.
Aşağıdaki komut depolama hesabını ve blob kapsayıcısını yapılandırır.
az iot hub update --name {your iot hub name} \
--fileupload-storage-connectionstring "{your storage account connection string}" \
--fileupload-storage-container-name "{your container name}"
Aşağıdaki komut SAS URI'sinin yaşam süresini varsayılan (bir saat) olarak ayarlar.
az iot hub update --name {your iot hub name} \
--fileupload-sas-ttl 1
Aşağıdaki komut dosya bildirimlerini etkinleştirir ve dosya bildirim özelliklerini varsayılan değerlerine ayarlar. (Dosya karşıya yükleme bildiriminin yaşam süresi bir saat, kilit süresi ise 60 saniye olarak ayarlanır.)
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
Aşağıdaki komut anahtar tabanlı kimlik doğrulamasını yapılandırmaktadır:
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type keyBased
Aşağıdaki komut, IoT hub'ına sistem tarafından atanan yönetilen kimliği kullanarak kimlik doğrulamasını yapılandırıyor. Bu komutu çalıştırabilmeniz için önce IoT hub'ınız için sistem tarafından atanan yönetilen kimliği etkinleştirmeniz ve Azure Depolama hesabınızda doğru rol tabanlı erişim denetimi rolünü vermeniz gerekir. Nasıl yapılacağını öğrenmek için bkz . Yönetilen kimlikler için IoT Hub desteği.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity [system]
Aşağıdaki komutlar IoT hub'ınızda yapılandırılan kullanıcı tarafından atanan yönetilen kimlikleri alır ve bunlardan biriyle kimlik doğrulamasını yapılandırabilir. Kimlik doğrulaması için kullanıcı tarafından atanan yönetilen kimliği kullanabilmeniz için önce IoT hub'ınızda yapılandırılması ve Azure Depolama hesabınızda uygun rol tabanlı erişim denetimi rolü verilmesi gerekir. Daha fazla ayrıntı ve adım için bkz . Yönetilen kimlikler için IoT Hub desteği.
IoT hub'ınızda kullanıcı tarafından atanan yönetilen kimlikleri sorgulamak için az iot hub identity show komutunu kullanın.
az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
komutu, IoT hub'ınızda yapılandırılan kullanıcı tarafından atanan yönetilen kimliklerin bir koleksiyonunu döndürür. Aşağıdaki çıkışta, kullanıcı tarafından atanan tek bir yönetilen kimliği içeren bir koleksiyon gösterilmektedir.
{
"/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>"
}
}
Aşağıdaki komut, kimlik doğrulamasını yukarıda kullanıcı tarafından atanan kimliği kullanacak şekilde yapılandırıyor.
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}"
Aşağıdaki komutu kullanarak IoT hub'ınızdaki ayarları gözden geçirebilirsiniz:
az iot hub show --name {your iot hub name}
Yalnızca dosya yükleme ayarlarını gözden geçirmek için aşağıdaki komutu kullanın:
az iot hub show --name {your iot hub name}
--query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'
Çoğu durumda, Azure CLI komutlarında adlandırılmış parametreleri kullanmak en kolayıdır; ancak, parametresiyle --set
dosya yükleme ayarlarını da yapılandırabilirsiniz. Aşağıdaki komutlar nasıl yapılacağını anlamanıza yardımcı olabilir.
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