DeviceManagementClient.CreateOrUpdateDeployment Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea o actualiza una implementación.
public virtual Azure.Response CreateOrUpdateDeployment(string groupId, string deploymentId, Azure.Core.RequestContent content, Azure.RequestContext context = default);
abstract member CreateOrUpdateDeployment : string * string * Azure.Core.RequestContent * Azure.RequestContext -> Azure.Response
override this.CreateOrUpdateDeployment : string * string * Azure.Core.RequestContent * Azure.RequestContext -> Azure.Response
Public Overridable Function CreateOrUpdateDeployment (groupId As String, deploymentId As String, content As RequestContent, Optional context As RequestContext = Nothing) As Response
Parámetros
- groupId
- String
Identificador de grupo.
- deploymentId
- String
Identificador de implementación.
- content
- RequestContent
Contenido que se va a enviar como el cuerpo de la solicitud. Los detalles del esquema del cuerpo de la solicitud se encuentran en la sección Comentarios a continuación.
- context
- RequestContext
Contexto de solicitud, que puede invalidar los comportamientos predeterminados de la canalización de cliente por llamada.
Devoluciones
Respuesta devuelta desde el servicio. Los detalles del esquema del cuerpo de la respuesta se encuentran en la sección Comentarios a continuación.
Excepciones
groupId
, deploymentId
o content
es un valor null.
groupId
o deploymentId
es una cadena vacía y se espera que no esté vacía.
El servicio devolvió un código de estado no correcto.
Ejemplos
En este ejemplo se muestra cómo llamar a CreateOrUpdateDeployment con los parámetros necesarios y el contenido de la solicitud, y cómo analizar el resultado.
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 = client.CreateOrUpdateDeployment("<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());
En este ejemplo se muestra cómo llamar a CreateOrUpdateDeployment con todos los parámetros y el contenido de la solicitud, y cómo analizar el resultado.
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 = client.CreateOrUpdateDeployment("<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());
Comentarios
A continuación se muestra el esquema JSON para las cargas de solicitud y respuesta.
Cuerpo de la solicitud:
Esquema para 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.
}
Cuerpo de la respuesta:
Esquema para 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.
}
Se aplica a
Azure SDK for .NET