Freigeben über


DeviceUpdateClient.StartImportUpdateAsync Methode

Definition

Neue Updateversion importieren. Dies ist ein lang andauernder Vorgang; Verwenden Sie Operation-Location Antwortheaderwert, um den Vorgang status zu überprüfen.

public virtual System.Threading.Tasks.Task<Azure.Operation> StartImportUpdateAsync (Azure.WaitUntil waitUntil, Azure.Core.RequestContent content, Azure.RequestContext context = default);
abstract member StartImportUpdateAsync : Azure.WaitUntil * Azure.Core.RequestContent * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Operation>
override this.StartImportUpdateAsync : Azure.WaitUntil * Azure.Core.RequestContent * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Operation>
Public Overridable Function StartImportUpdateAsync (waitUntil As WaitUntil, content As RequestContent, Optional context As RequestContext = Nothing) As Task(Of Operation)

Parameter

waitUntil
WaitUntil

Completed , wenn die Methode auf die Rückgabe warten soll, bis der zeitintensive Vorgang für den Dienst abgeschlossen ist; Started , wenn sie nach dem Starten des Vorgangs zurückgegeben werden soll. Weitere Informationen zu Vorgängen mit langer Ausführungszeit finden Sie unter Beispiele für Azure.Core-Long-Running-Vorgänge.

content
RequestContent

Der Inhalt, der als Text der Anforderung gesendet werden soll. Details zum Anforderungstextschema finden Sie unten im Abschnitt Hinweise.

context
RequestContext

Der Anforderungskontext, der das Standardverhalten der Clientpipeline pro Aufruf außer Kraft setzen kann.

Gibt zurück

Die , Operation die einen asynchronen Vorgang für den Dienst darstellt.

Ausnahmen

content ist NULL.

Der Dienst hat einen nicht erfolgreichen status Code zurückgegeben.

Beispiele

In diesem Beispiel wird gezeigt, wie StartImportUpdateAsync mit erforderlichen Parametern und Anforderungsinhalten aufgerufen wird.

var credential = new DefaultAzureCredential();
var endpoint = new Uri("<https://my-service.azure.com>");
var client = new DeviceUpdateClient(endpoint, "<instanceId>", credential);

var data = new[] {
    new {
        importManifest = new {
            url = "<url>",
            sizeInBytes = 1234L,
            hashes = new {
                key = "<String>",
            },
        },
        friendlyName = "<friendlyName>",
        files = new[] {
            new {
                filename = "<filename>",
                url = "<url>",
            }
        },
    }
};

var operation = await client.StartImportUpdateAsync(WaitUntil.Completed, RequestContent.Create(data));

var response = await operation.WaitForCompletionResponseAsync();
Console.WriteLine(response.Status)

Hinweise

Im Folgenden finden Sie das JSON-Schema für die Anforderungsnutzlast.

Anforderungstext:

Schema für ImportUpdateInputItem:

{
              importManifest: {
                url: string, # Required. Azure Blob location from which the import manifest can be downloaded by Device Update for IoT Hub. This is typically a read-only SAS-protected blob URL with an expiration set to at least 4 hours.
                sizeInBytes: number, # Required. File size in number of bytes.
                hashes: Dictionary<string, string>, # Required. A JSON object containing the hash(es) of the file. At least SHA256 hash is required. This object can be thought of as a set of key-value pairs where the key is the hash algorithm, and the value is the hash of the file calculated using that algorithm.
              }, # Required. Import manifest metadata like source URL, file size/hashes, etc.
              friendlyName: string, # Optional. Friendly update name.
              files: [
                {
                  filename: string, # Required. Update file name as specified inside import manifest.
                  url: string, # Required. Azure Blob location from which the update file can be downloaded by Device Update for IoT Hub. This is typically a read-only SAS-protected blob URL with an expiration set to at least 4 hours.
                }
              ], # Optional. One or more update file properties like filename and source URL.
            }

Gilt für: