Freigeben über


DeviceManagementClient.CreateOrUpdateDeploymentAsync Methode

Definition

Erstellt oder aktualisiert eine Bereitstellung.

public virtual System.Threading.Tasks.Task<Azure.Response> CreateOrUpdateDeploymentAsync (string groupId, string deploymentId, Azure.Core.RequestContent content, Azure.RequestContext context = default);
abstract member CreateOrUpdateDeploymentAsync : string * string * Azure.Core.RequestContent * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Response>
override this.CreateOrUpdateDeploymentAsync : string * string * Azure.Core.RequestContent * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Response>
Public Overridable Function CreateOrUpdateDeploymentAsync (groupId As String, deploymentId As String, content As RequestContent, Optional context As RequestContext = Nothing) As Task(Of Response)

Parameter

groupId
String

Gruppen-ID.

deploymentId
String

Bereitstellungsbezeichner.

content
RequestContent

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

context
RequestContext

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

Gibt zurück

Die vom Dienst zurückgegebene Antwort. Details zum Antworttextschema finden Sie im Abschnitt Hinweise unten.

Ausnahmen

groupId, deploymentId oder content ist NULL.

groupId oder deploymentId ist eine leere Zeichenfolge und wurde erwartet, dass sie nicht leer ist.

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

Beispiele

In diesem Beispiel wird gezeigt, wie CreateOrUpdateDeploymentAsync mit den erforderlichen Parametern und Anforderungsinhalten aufgerufen und das Ergebnis analysiert wird.

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

var data = new {
    deploymentId = "<deploymentId>",
    startDateTime = "2022-05-10T18:57:31.2311892Z",
    update = new {
        updateId = new {
            provider = "<provider>",
            name = "<name>",
            version = "<version>",
        },
    },
    groupId = "<groupId>",
};

Response response = await client.CreateOrUpdateDeploymentAsync("<groupId>", "<deploymentId>", RequestContent.Create(data));

JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;
Console.WriteLine(result.GetProperty("deploymentId").ToString());
Console.WriteLine(result.GetProperty("startDateTime").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("groupId").ToString());

In diesem Beispiel wird gezeigt, wie CreateOrUpdateDeploymentAsync mit allen Parametern und Anforderungsinhalten aufgerufen wird und wie das Ergebnis analysiert wird.

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

var data = new {
    deploymentId = "<deploymentId>",
    startDateTime = "2022-05-10T18:57:31.2311892Z",
    update = new {
        updateId = new {
            provider = "<provider>",
            name = "<name>",
            version = "<version>",
        },
    },
    groupId = "<groupId>",
    deviceClassSubgroups = new[] {
        "<String>"
    },
    isCanceled = true,
    isRetried = true,
    rollbackPolicy = new {
        update = new {
            updateId = new {
                provider = "<provider>",
                name = "<name>",
                version = "<version>",
            },
        },
        failure = new {
            devicesFailedPercentage = 1234,
            devicesFailedCount = 1234,
        },
    },
    isCloudInitiatedRollback = true,
};

Response response = await client.CreateOrUpdateDeploymentAsync("<groupId>", "<deploymentId>", RequestContent.Create(data));

JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;
Console.WriteLine(result.GetProperty("deploymentId").ToString());
Console.WriteLine(result.GetProperty("startDateTime").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("update").GetProperty("friendlyName").ToString());
Console.WriteLine(result.GetProperty("groupId").ToString());
Console.WriteLine(result.GetProperty("deviceClassSubgroups")[0].ToString());
Console.WriteLine(result.GetProperty("isCanceled").ToString());
Console.WriteLine(result.GetProperty("isRetried").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("update").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("update").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("update").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("update").GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("update").GetProperty("friendlyName").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("failure").GetProperty("devicesFailedPercentage").ToString());
Console.WriteLine(result.GetProperty("rollbackPolicy").GetProperty("failure").GetProperty("devicesFailedCount").ToString());
Console.WriteLine(result.GetProperty("isCloudInitiatedRollback").ToString());

Hinweise

Im Folgenden finden Sie das JSON-Schema für die Anforderungs- und Antwortnutzlasten.

Anforderungstext:

Schema für Deployment:

{
              deploymentId: string, # Required. The caller-provided deployment identifier. This cannot be longer than 73 characters, must be all lower-case, and cannot contain '&', '^', '[', ']', '{', '}', '|', '<', '>', forward slash, backslash, or double quote. The Updates view in the Azure Portal IoT Hub resource generates a GUID for deploymentId when you create a deployment.
              startDateTime: string (ISO 8601 Format), # Required. The deployment start datetime.
              update: {
                updateId: {
                  provider: string, # Required. Update provider.
                  name: string, # Required. Update name.
                  version: string, # Required. Update version.
                }, # Required. Update identifier.
                description: string, # Optional. Update description.
                friendlyName: string, # Optional. Friendly update name.
              }, # Required. Update information for the update in the deployment.
              groupId: string, # Required. The group identity for the devices the deployment is intended to update.
              deviceClassSubgroups: [string], # Optional. The device class subgroups the deployment is compatible with and subgroup deployments have been created for. This is not provided by the caller during CreateOrUpdateDeployment but is automatically determined by Device Update
              isCanceled: boolean, # Optional. Boolean flag indicating whether the deployment was canceled.
              isRetried: boolean, # Optional. Boolean flag indicating whether the deployment has been retried.
              rollbackPolicy: {
                update: UpdateInfo, # Required. Update to rollback to.
                failure: {
                  devicesFailedPercentage: number, # Required. Percentage of devices that failed.
                  devicesFailedCount: number, # Required. Number of devices that failed.
                }, # Required. Failure conditions to initiate rollback policy.
              }, # Optional. The rollback policy for the deployment.
              isCloudInitiatedRollback: boolean, # Optional. Boolean flag indicating whether the deployment is a rollback deployment.
            }

Antworttext:

Schema für Deployment:

{
              deploymentId: string, # Required. The caller-provided deployment identifier. This cannot be longer than 73 characters, must be all lower-case, and cannot contain '&', '^', '[', ']', '{', '}', '|', '<', '>', forward slash, backslash, or double quote. The Updates view in the Azure Portal IoT Hub resource generates a GUID for deploymentId when you create a deployment.
              startDateTime: string (ISO 8601 Format), # Required. The deployment start datetime.
              update: {
                updateId: {
                  provider: string, # Required. Update provider.
                  name: string, # Required. Update name.
                  version: string, # Required. Update version.
                }, # Required. Update identifier.
                description: string, # Optional. Update description.
                friendlyName: string, # Optional. Friendly update name.
              }, # Required. Update information for the update in the deployment.
              groupId: string, # Required. The group identity for the devices the deployment is intended to update.
              deviceClassSubgroups: [string], # Optional. The device class subgroups the deployment is compatible with and subgroup deployments have been created for. This is not provided by the caller during CreateOrUpdateDeployment but is automatically determined by Device Update
              isCanceled: boolean, # Optional. Boolean flag indicating whether the deployment was canceled.
              isRetried: boolean, # Optional. Boolean flag indicating whether the deployment has been retried.
              rollbackPolicy: {
                update: UpdateInfo, # Required. Update to rollback to.
                failure: {
                  devicesFailedPercentage: number, # Required. Percentage of devices that failed.
                  devicesFailedCount: number, # Required. Number of devices that failed.
                }, # Required. Failure conditions to initiate rollback policy.
              }, # Optional. The rollback policy for the deployment.
              isCloudInitiatedRollback: boolean, # Optional. Boolean flag indicating whether the deployment is a rollback deployment.
            }

Gilt für: