Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak uzyskać nową aktualizację i przygotować aktualizację do zaimportowania do usługi Device Update dla usługi IoT Hub.
Wymagania wstępne
- dostęp do usługi IoT Hub z włączoną aktualizacją urządzenia dla usługi IoT Hub.
- Urządzenie IoT (lub symulator) skonfigurowane do aktualizacji urządzenia w usłudze IoT Hub.
- program PowerShell 5 lub nowszy (obejmuje instalacje systemu Linux, macOS i Windows)
- Obsługiwane przeglądarki:
- Microsoft Edge
- Google Chrome
Uzyskiwanie aktualizacji dla urządzeń
Po skonfigurowaniu usługi Device Update i aprowizowaniu urządzeń potrzebne będą pliki aktualizacji, które zostaną wdrożone na tych urządzeniach.
Jeśli zakupiono urządzenia od producenta oryginalnego sprzętu (OEM) lub integratora rozwiązań, organizacja najprawdopodobniej udostępni ci pliki aktualizacji bez konieczności tworzenia aktualizacji. Skontaktuj się z producentem OEM lub integratorem rozwiązań, aby dowiedzieć się, w jaki sposób udostępniają aktualizacje.
Jeśli Twoja organizacja już tworzy oprogramowanie dla używanych urządzeń, ta sama grupa będzie służyć do tworzenia aktualizacji dla tego oprogramowania.
Podczas tworzenia aktualizacji do wdrożenia przy użyciu usługi Device Update dla usługi IoT Hub zacznij od opartego na obrazie lub opartego na pakietach podejścia w zależności od scenariusza.
Tworzenie podstawowego manifestu importowania aktualizacji urządzeń
Po utworzeniu plików aktualizacji utwórz manifest importu, aby opisać aktualizację. Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z podstawowymi pojęciami dotyczącymi importu . Chociaż można ręcznie utworzyć plik JSON manifestu importu przy użyciu edytora tekstowego, ten przewodnik będzie używał programu PowerShell jako przykładu.
Wskazówka
Wypróbuj samouczki oparte na obrazie, oparte na pakietach lub aktualizacji proxy, jeśli jeszcze tego nie zrobiłeś/zrobiłaś. Możesz również po prostu wyświetlić przykładowe pliki manifestu importu z tych samouczków w celach referencyjnych.
clone
Azure/iot-hub-device-updateGit repository.Przejdź do
Tools/AduCmdletsw klonie lokalnym z programu PowerShell.Uruchom następujące polecenia po zastąpieniu poniższych przykładowych wartości parametrów swoimi własnymi: Dostawca, Nazwa, Wersja, Właściwości, Obsługa, Kryteria Instalacji, Pliki. Aby uzyskać szczegółowe informacje na temat wartości, których można użyć, zobacz Import schema and API information (Importowanie schematu i interfejsu API). W szczególności należy pamiętać, że nie można używać tego samego dokładnie zestawu właściwości zgodności z więcej niż jedną kombinacją dostawcy i nazwy.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process Import-Module ./AduUpdate.psm1 $updateId = New-AduUpdateId -Provider Contoso -Name Toaster -Version 1.0 $compat = New-AduUpdateCompatibility -Properties @{ deviceManufacturer = 'Contoso'; deviceModel = 'Toaster' } $installStep = New-AduInstallationStep -Handler 'microsoft/swupdate:1'-HandlerProperties @{ installedCriteria = '1.0' } -Files 'path to your update file' $update = New-AduImportManifest -UpdateId $updateId -Compatibility $compat -InstallationSteps $installStep # Write the import manifest to a file, ideally next to the update file(s). $update | Out-File "./$($updateId.provider).$($updateId.name).$($updateId.version).importmanifest.json" -Encoding utf8
Po utworzeniu manifestu importu, jeśli jesteś gotowy do zaimportowania aktualizacji, możesz przewinąć na link Następne kroki w dolnej części tej strony.
Tworzenie zaawansowanego manifestu importowania usługi Device Update dla aktualizacji serwera proxy
Jeśli aktualizacja jest bardziej złożona, na przykład aktualizacji serwera proxy , może być konieczne utworzenie wielu importowych manifestów. Możesz użyć tego samego skryptu programu PowerShell z poprzedniej sekcji, aby utworzyć manifesty importu rodzicielskiego i potomnego dla złożonych aktualizacji. Uruchom następujące polecenia po zastąpieniu przykładowych wartości parametrów własnymi. Aby uzyskać szczegółowe informacje na temat wartości, których można użyć, zobacz Import schema and API information (Importowanie schematu i interfejsu API).
Import-Module $PSScriptRoot/AduUpdate.psm1 -ErrorAction Stop
# We will use arbitrary files as update payload files.
$childFile = "$env:TEMP/childFile.bin.txt"
$parentFile = "$env:TEMP/parentFile.bin.txt"
"This is a child update payload file." | Out-File $childFile -Force -Encoding utf8
"This is a parent update payload file." | Out-File $parentFile -Force -Encoding utf8
# ------------------------------
# Create a child update
# ------------------------------
Write-Host 'Preparing child update ...'
$microphoneUpdateId = New-AduUpdateId -Provider Contoso -Name Microphone -Version $UpdateVersion
$microphoneCompat = New-AduUpdateCompatibility -DeviceManufacturer Contoso -DeviceModel Microphone
$microphoneInstallStep = New-AduInstallationStep -Handler 'microsoft/swupdate:1' -Files $childFile
$microphoneUpdate = New-AduImportManifest -UpdateId $microphoneUpdateId `
-IsDeployable $false `
-Compatibility $microphoneCompat `
-InstallationSteps $microphoneInstallStep `
-ErrorAction Stop -Verbose:$VerbosePreference
# ------------------------------
# Create another child update
# ------------------------------
Write-Host 'Preparing another child update ...'
$speakerUpdateId = New-AduUpdateId -Provider Contoso -Name Speaker -Version $UpdateVersion
$speakerCompat = New-AduUpdateCompatibility -DeviceManufacturer Contoso -DeviceModel Speaker
$speakerInstallStep = New-AduInstallationStep -Handler 'microsoft/swupdate:1' -Files $childFile
$speakerUpdate = New-AduImportManifest -UpdateId $speakerUpdateId `
-IsDeployable $false `
-Compatibility $speakerCompat `
-InstallationSteps $speakerInstallStep `
-ErrorAction Stop -Verbose:$VerbosePreference
# ------------------------------------------------------------
# Create the parent update which parents the child update above
# ------------------------------------------------------------
Write-Host 'Preparing parent update ...'
$parentUpdateId = New-AduUpdateId -Provider Contoso -Name Toaster -Version $UpdateVersion
$parentCompat = New-AduUpdateCompatibility -DeviceManufacturer Contoso -DeviceModel Toaster
$parentSteps = @()
$parentSteps += New-AduInstallationStep -Handler 'microsoft/script:1' -Files $parentFile -HandlerProperties @{ 'arguments'='--pre'} -Description 'Pre-install script'
$parentSteps += New-AduInstallationStep -UpdateId $microphoneUpdateId -Description 'Microphone Firmware'
$parentSteps += New-AduInstallationStep -UpdateId $speakerUpdateId -Description 'Speaker Firmware'
$parentSteps += New-AduInstallationStep -Handler 'microsoft/script:1' -Files $parentFile -HandlerProperties @{ 'arguments'='--post'} -Description 'Post-install script'
$parentUpdate = New-AduImportManifest -UpdateId $parentUpdateId `
-Compatibility $parentCompat `
-InstallationSteps $parentSteps `
-ErrorAction Stop -Verbose:$VerbosePreference
# ------------------------------------------------------------
# Write all to files
# ------------------------------------------------------------
Write-Host 'Saving manifest and update files ...'
New-Item $Path -ItemType Directory -Force | Out-Null
$microphoneUpdate | Out-File "$Path/$($microphoneUpdateId.Provider).$($microphoneUpdateId.Name).$($microphoneUpdateId.Version).importmanifest.json" -Encoding utf8
$speakerUpdate | Out-File "$Path/$($speakerUpdateId.Provider).$($speakerUpdateId.Name).$($speakerUpdateId.Version).importmanifest.json" -Encoding utf8
$parentUpdate | Out-File "$Path/$($parentUpdateId.Provider).$($parentUpdateId.Name).$($parentUpdateId.Version).importmanifest.json" -Encoding utf8
Copy-Item $parentFile -Destination $Path -Force
Copy-Item $childFile -Destination $Path -Force
Write-Host "Import manifest JSON files saved to $Path" -ForegroundColor Green
Remove-Item $childFile -Force -ErrorAction SilentlyContinue | Out-Null
Remove-Item $parentFile -Force -ErrorAction SilentlyContinue | Out-Null