Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
API de administración y control de trabajos y tipos de datos
Los siguientes comandos están disponibles para la administración y control de trabajos en la CLI a través del protocolo HTTPS.
Para determinar el parámetro endpoint-url
de los comandos de la CLI, ejecute este comando.
aws iot describe-endpoint --endpoint-type=iot:Jobs
Este comando devuelve la siguiente salida.
{ "endpointAddress": "
account-specific-prefix
.jobs.iot.aws-region
.amazonaws.com" }
nota
El punto de conexión de Jobs no admite la ALPN z-amzn-http-ca
.
Tipos de datos de administración y control de trabajo
Las aplicaciones de administración y control utilizan los siguientes tipos de datos para comunicarse con Jobs de AWS IoT.
El objeto Job
contiene detalles acerca de un trabajo. En el siguiente ejemplo se muestra la sintaxis:
{ "jobArn": "string", "jobId": "string", "status": "IN_PROGRESS|CANCELED|SUCCEEDED", "forceCanceled": boolean, "targetSelection": "CONTINUOUS|SNAPSHOT", "comment": "string", "targets": ["string"], "description": "string", "createdAt": timestamp, "lastUpdatedAt": timestamp, "completedAt": timestamp, "jobProcessDetails": { "processingTargets": ["string"], "numberOfCanceledThings": long, "numberOfSucceededThings": long, "numberOfFailedThings": long, "numberOfRejectedThings": long, "numberOfQueuedThings": long, "numberOfInProgressThings": long, "numberOfRemovedThings": long, "numberOfTimedOutThings": long }, "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "SchedulingConfig": { "startTime": string "endTime": string "timeZone": string "endTimeBehavior": string }, "timeoutConfig": { "inProgressTimeoutInMinutes": long } }
El objeto JobSummary
contiene un resumen de trabajos. En el siguiente ejemplo se muestra la sintaxis:
{ "jobArn": "string", "jobId": "string", "status": "IN_PROGRESS|CANCELED|SUCCEEDED|SCHEDULED", "targetSelection": "CONTINUOUS|SNAPSHOT", "thingGroupId": "string", "createdAt": timestamp, "lastUpdatedAt": timestamp, "completedAt": timestamp }
Para obtener más información, consulte JobSummary
o job-summary
.
El objeto JobExecution
representa la ejecución de un trabajo en un dispositivo. En el siguiente ejemplo se muestra la sintaxis:
nota
Cuando se utilizan las operaciones de la API del plano de control, el tipo de datos JobExecution
no contiene ningún campo JobDocument
. Para obtener esta información, puede utilizar la operación GetJobDocument
de la API o el comando get-job-document
de la CLI.
{ "approximateSecondsBeforeTimedOut": 50, "executionNumber": 1234567890, "forceCanceled": true|false, "jobId": "string", "lastUpdatedAt": timestamp, "queuedAt": timestamp, "startedAt": timestamp, "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED", "forceCanceled": boolean, "statusDetails": { "detailsMap": { "string": "string" ... }, "status": "string" }, "thingArn": "string", "versionNumber": 123 }
Para obtener más información, consulte JobExecution
o job-execution
.
El objeto JobExecutionSummary
contiene información del resumen de ejecución de trabajo. En el siguiente ejemplo se muestra la sintaxis:
{ "executionNumber": 1234567890, "queuedAt": timestamp, "lastUpdatedAt": timestamp, "startedAt": timestamp, "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED" }
Para obtener más información, consulte JobExecutionSummary
o job-execution-summary
.
El objeto JobExecutionSummaryForJob
contiene un resumen de información acerca de las ejecuciones de trabajo para un trabajo específico. En el siguiente ejemplo se muestra la sintaxis:
{ "executionSummaries": [ { "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyThing", "jobExecutionSummary": { "status": "IN_PROGRESS", "lastUpdatedAt": 1549395301.389, "queuedAt": 1541526002.609, "executionNumber": 1 } }, ... ] }
Para obtener más información, consulte JobExecutionSummaryForJob
o job-execution-summary-for-job
.
El objeto JobExecutionSummaryForThing
contiene un resumen de información acerca de una ejecución de trabajo en un objeto específico. En el siguiente ejemplo se muestra la sintaxis:
{ "executionSummaries": [ { "jobExecutionSummary": { "status": "IN_PROGRESS", "lastUpdatedAt": 1549395301.389, "queuedAt": 1541526002.609, "executionNumber": 1 }, "jobId": "MyThingJob" }, ... ] }
Para obtener más información, consulte JobExecutionSummaryForThing
o job-execution-summary-for-thing
.
Operaciones de la API de administración y control del trabajo
Utilice las siguientes operaciones de la API o comandos de la CLI:
Asocia un grupo a un trabajo continuo. Deben cumplirse los siguientes criterios:
-
El trabajo debe haberse creado con el campo
targetSelection
establecido enCONTINUOUS
. -
El estado del trabajo debe ser actualmente
IN_PROGRESS
. -
El número total de destinos asociados con un trabajo no debe ser superior a 100.
Cancela un trabajo.
Cancela la ejecución de un trabajo en un dispositivo.
Crea un trabajo. Puede proporcionar el documento de trabajo como enlace a un archivo en un bucket de Amazon S3 (parámetro documentSource
) o en el cuerpo de la solicitud (parámetro document
).
Un trabajo puede ser continuo si se establece el parámetro opcional targetSelection
en CONTINUOUS
(el predeterminado es SNAPSHOT
). Un trabajo continuo se puede usar para incorporar o actualizar los dispositivos a medida que se agregan a un grupo, ya que continúa ejecutándose y se lanza cuando se agregan nuevos objetos. Esto puede ocurrir incluso después de que los objetos del grupo en el momento en que se creó el trabajo lo hayan completado.
Un trabajo puede tener un valor TimeoutConfig opcional que establece el valor del temporizador en curso. El temporizador en curso no se puede actualizar y se aplica a todas las ejecuciones del trabajo.
Se realizan las siguientes validaciones en los argumentos para la API CreateJob
:
-
El argumento
targets
debe ser una lista de ARN de grupo de objetos u objetos válidos. Todos los objetos y grupos de objetos deben estar en la Cuenta de AWS. -
El argumento
documentSource
debe ser una URL de Amazon S3 válida para un documento de trabajo. Las URL de Amazon S3 tienen el formato:https://s3.amazonaws.com/
.bucketName
/objectName
-
El documento almacenado en la URL especificada por el argumento
documentSource
debe ser un documento JSON con codificación UTF-8. -
El tamaño del documento de trabajo está limitado a 32 KB debido al límite del tamaño de un mensaje MQTT (128 KB) y el cifrado.
-
El
jobId
debe ser único en la Cuenta de AWS.
Elimina un trabajo y sus ejecuciones de trabajo relacionadas.
La eliminación de un trabajo puede tardar tiempo, en función del número de ejecuciones de trabajo creadas para el trabajo y otros factores diversos. Aunque el trabajo se está eliminando, el estado del trabajo se muestra como "DELETION_IN_PROGRESS". Si se intenta eliminar o cancelar un trabajo cuyo estado ya es DELETION_IN_PROGRESS, se producirá un error.
Elimina una ejecución de trabajo.
Obtiene los detalles de la ejecución de trabajo.
Obtiene los detalles de una ejecución de trabajo. El estado de la ejecución del trabajo debe ser SUCCEEDED
o FAILED
.
Obtiene el documento de trabajo para un trabajo.
nota
Las URL de marcador de posición no se reemplazan por las URL de Amazon S3 prefirmadas en el documento devuelto. Las URL prefirmadas se generan solo cuando el servicio Jobs de AWS IoT recibe una solicitud a través de MQTT.
Obtiene una lista de ejecuciones de trabajo para un trabajo.
Obtiene una lista de ejecuciones de trabajo para un objeto.
Obtiene una lista de trabajos en la Cuenta de AWS.
Actualiza los campos admitidos del trabajo especificado. Los valores actualizados de timeoutConfig
surten efecto solo en lanzamientos recientemente en curso. Actualmente, los lanzamientos en curso siguen lanzándose con la configuración de tiempo de espera anterior.