create-ota-update
Описание
Создаёт обновление IoT OTA для целевой группы устройств или групп.
Требуется разрешение на доступ к действию CreateOTAUpdate.
См. также: Документация API AWS
Синтаксис
create-ota-update
--ota-update-id <value>
[--description <value>]
--targets <value>
[--protocols <value>]
[--target-selection <value>]
[--aws-job-executions-rollout-config <value>]
[--aws-job-presigned-url-config <value>]
[--aws-job-abort-config <value>]
[--aws-job-timeout-config <value>]
--files <value>
--role-arn <value>
[--additional-parameters <value>]
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--ota-update-id (строка)
--description (строка)
--targets (список)
Устройства, на которые нацелено обновление OTA.
(строка)
Синтаксис:
"string" "string" ...
--protocols (список)
Протокол, используемый для передачи изображения обновления OTA. Допустимые значения: [HTTP], [MQTT], [HTTP, MQTT]. Если указаны HTTP и MQTT, целевое устройство может выбрать протокол.
(строка)
Синтаксис:
"string" "string" ...
Where valid values are:
MQTT
HTTP
--target-selection (строка)
Указывает, будет ли обновление продолжать работу (CONTINUOUS), или будет завершено после того, как все устройства, указанные как цели, завершат обновление (SNAPSHOT). Если непрерывное, обновление может также выполняться на устройстве при обнаружении изменений в целевой группе. Например, обновление будет запущено на устройстве, когда устройство добавлено в целевую группу, даже после завершения обновления всеми устройствами, изначально находившимися в группе. Допустимые значения: CONTINUOUS | SNAPSHOT.
Возможные значения:
CONTINUOUSSNAPSHOT
--aws-job-executions-rollout-config (структура)
Настройка развертывания обновлений OTA.
maximumPerMinute -> (целое число)
exponentialRate -> (структура)
Темп увеличения развертывания задачи. Этот параметр позволяет задать экспоненциальное увеличение темпа развертывания задачи.
baseRatePerMinute -> (целое число)
incrementFactor -> (двойное число)
rateIncreaseCriteria -> (структура)
Критерии для запуска увеличения темпа развертывания задачи.
Amazon Web Services IoT Core поддерживает до одного знака после запятой (например, 1,5, но не 1,55).
numberOfNotifiedThings -> (целое число)
numberOfSucceededThings -> (целое число)
Сокращённый синтаксис:
maximumPerMinute=integer,exponentialRate={baseRatePerMinute=integer,incrementFactor=double,rateIncreaseCriteria={numberOfNotifiedThings=integer,numberOfSucceededThings=integer}}
Синтаксис JSON:
{
"maximumPerMinute": integer,
"exponentialRate": {
"baseRatePerMinute": integer,
"incrementFactor": double,
"rateIncreaseCriteria": {
"numberOfNotifiedThings": integer,
"numberOfSucceededThings": integer
}
}
}
--aws-job-presigned-url-config (структура)
Конфигурационная информация для предварительно подписанных URL-адресов.
expiresInSec -> (длинное целое число)
Сокращённый синтаксис:
expiresInSec=long
Синтаксис JSON:
{
"expiresInSec": long
}
--aws-job-abort-config (структура)
Критерии, определяющие, когда и как происходит прерывание задачи.
abortCriteriaList -> (список)
Список критериев, определяющих, когда и как прервать задачу.
(структура)
Критерии, определяющие, когда и как происходит прерывание задачи.
failureType -> (строка)
action -> (строка)
thresholdPercentage -> (двойное число)
Минимальный процент сбоев выполнения задачи, которые должны произойти для запуска прерывания задачи.
Amazon Web Services IoT Core поддерживает до двух знаков после запятой (например, 10,9 и 10,99, но не 10,999).
minNumberOfExecutedThings -> (целое число)
Сокращённый синтаксис:
abortCriteriaList=[{failureType=string,action=string,thresholdPercentage=double,minNumberOfExecutedThings=integer},{failureType=string,action=string,thresholdPercentage=double,minNumberOfExecutedThings=integer}]
Синтаксис JSON:
{
"abortCriteriaList": [
{
"failureType": "FAILED"|"REJECTED"|"TIMED_OUT"|"ALL",
"action": "CANCEL",
"thresholdPercentage": double,
"minNumberOfExecutedThings": integer
}
...
]
}
--aws-job-timeout-config (структура)
Устанавливает время, которое каждому устройству нужно для завершения выполнения задачи. Таймер запускается, когда статус выполнения задачи устанавливается в IN_PROGRESS. Если статус выполнения задачи не установлен в другое конечное состояние до истечения таймера, он автоматически устанавливается в TIMED_OUT.
inProgressTimeoutInMinutes -> (длинное целое число)
TIMED_OUT.Сокращённый синтаксис:
inProgressTimeoutInMinutes=long
Синтаксис JSON:
{
"inProgressTimeoutInMinutes": long
}
--files (список)
Файлы, которые должны быть переданы обновлением OTA.
(структура)
Описание файла, который должен быть связан с обновлением OTA.
fileName -> (строка)
fileType -> (целое число)
fileVersion -> (строка)
fileLocation -> (структура)
Расположение обновлённого ПО.
stream -> (структура)
Поток, который содержит обновление OTA.
streamId -> (строка)
fileId -> (целое число)
s3Location -> (структура)
Расположение обновлённого ПО в S3.
bucket -> (строка)
key -> (строка)
version -> (строка)
codeSigning -> (структура)
Метод кодирования подписи файла.
awsSignerJobId -> (строка)
AWSSignerJob, который был создан для подписи файла.startSigningJobParameter -> (структура)
Описание задачи кодирования подписи.
signingProfileParameter -> (структура)
Описание профиля кодирования подписи.
certificateArn -> (строка)
platform -> (строка)
certificatePathOnDevice -> (строка)
signingProfileName -> (строка)
destination -> (структура)
Место для записи подписанного файла.
s3Destination -> (структура)
Описание расположения обновлённого ПО в S3.
bucket -> (строка)
prefix -> (строка)
customCodeSigning -> (структура)
Пользовательский метод для кодирования подписи файла.
signature -> (структура)
Подпись для файла.
inlineDocument -> (двоичные данные)
certificateChain -> (структура)
Цепочка сертификатов.
certificateName -> (строка)
inlineDocument -> (строка)
hashAlgorithm -> (строка)
SHA256 или SHA1, поэтому можно передать любой из них, в зависимости от того, какой был использован для генерации подписи.signatureAlgorithm -> (строка)
ECDSA или RSA, поэтому можно передать любой из них, в зависимости от того, какой был использован для генерации подписи.attributes -> (массив)
Список пар имя-атрибут. Они не будут отправлены устройствам в качестве части документа задачи.
key -> (строка)
value -> (строка)
Синтаксис JSON:
[
{
"fileName": "string",
"fileType": integer,
"fileVersion": "string",
"fileLocation": {
"stream": {
"streamId": "string",
"fileId": integer
},
"s3Location": {
"bucket": "string",
"key": "string",
"version": "string"
}
},
"codeSigning": {
"awsSignerJobId": "string",
"startSigningJobParameter": {
"signingProfileParameter": {
"certificateArn": "string",
"platform": "string",
"certificatePathOnDevice": "string"
},
"signingProfileName": "string",
"destination": {
"s3Destination": {
"bucket": "string",
"prefix": "string"
}
}
},
"customCodeSigning": {
"signature": {
"inlineDocument": blob
},
"certificateChain": {
"certificateName": "string",
"inlineDocument": "string"
},
"hashAlgorithm": "string",
"signatureAlgorithm": "string"
}
},
"attributes": {"string": "string"
...}
}
...
]
--role-arn (строка)
--additional-parameters (массив)
Список дополнительных параметров обновления OTA, которые являются парами имя-значение. Они не будут отправлены устройствам в качестве части документа задачи.
key -> (строка)
value -> (строка)
Сокращённый синтаксис:
KeyName1=string,KeyName2=string
Синтаксис JSON:
{"string": "string"
...}
--tags (список)
Метаданные, которые могут использоваться для управления обновлениями.
(структура)
Набор пар ключ/значение, используемых для управления ресурсом.
Key -> (строка)
Value -> (строка)
Сокращённый синтаксис:
Key=string,Value=string ...
Синтаксис JSON:
[
{
"Key": "string",
"Value": "string"
}
...
]
--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной JSON-строки. JSON-строка соответствует формату, предоставленному в --generate-cli-skeleton. Если на командной строке указаны другие аргументы, эти значения переопределят значения, предоставленные JSON. Невозможно передать произвольные двоичные значения с помощью значения, предоставленного JSON, так как строка будет взята дословно. Это может не быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если предоставлено значение без значения или значение input, выводится пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, будет выведен пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, оно проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Общие параметры
--debug (логическое значение)
Включить отладочную запись в журнал.
--endpoint-url (строка)
Переопределяет URL по умолчанию команды заданным URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение по умолчанию проверки SSL-сертификатов.
--no-paginate (логическое значение)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования для вывода команды.
- json
- text
- таблица
- yaml
- yaml-поток
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из вашего файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- включить
- выключить
- автоматически
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--ca-bundle (строка)
Файл сертификатов CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, который будет использоваться для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены в виде закодированной в base64 строки. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI версии 1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, отображаемого в двоичном блоке, fileb:// всегда будет обрабатываться как двоичное и будет использовать содержимое файла непосредственно независимо от cli-binary-format настройки. При использовании file:// содержимое файла должно быть правильно отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить кли-страничник для вывода.
--cli-auto-prompt (логическое значение)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запросы параметров ввода CLI.
Примеры
Примечание
Чтобы использовать следующие примеры, вы должны установить и настроить AWS CLI. Дополнительную информацию см. в руководстве «Начало работы» в Руководстве пользователя AWS CLI.
Если не указано иное, все примеры имеют правила кавычек, аналогичные Unix. Эти примеры необходимо адаптировать к правилам кавычек вашей оболочки. См. «Использование кавычек со строками» в Руководстве пользователя AWS CLI.
Создание обновления OTA для использования с Amazon FreeRTOS
Следующий create-ota-update пример создаёт AWS IoT OTAUpdate для группы целевых устройств или групп. Это часть обновления Amazon FreeRTOS по воздуху, которое позволяет развернуть новые изображения прошивки на одном устройстве или группе устройств.
aws iot create-ota-update \
--cli-input-json file://create-ota-update.json
Содержимое create-ota-update.json:
{
"otaUpdateId": "ota12345",
"description": "A critical update needed right away.",
"targets": [
"device1",
"device2",
"device3",
"device4"
],
"targetSelection": "SNAPSHOT",
"awsJobExecutionsRolloutConfig": {
"maximumPerMinute": 10
},
"files": [
{
"fileName": "firmware.bin",
"fileLocation": {
"stream": {
"streamId": "004",
"fileId":123
}
},
"codeSigning": {
"awsSignerJobId": "48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6"
}
}
]
"roleArn": "arn:aws:iam:123456789012:role/service-role/my_ota_role"
}
Вывод:
{
"otaUpdateId": "ota12345",
"awsIotJobId": "job54321",
"otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/itsaupdate",
"awsIotJobArn": "arn:aws:iot:us-west-2:123456789012:job/itsajob",
"otaUpdateStatus": "CREATE_IN_PROGRESS"
}
Дополнительную информацию см. в разделе CreateOTAUpdate в Справочнике по API AWS IoT.
Вывод
otaUpdateId -> (строка)
awsIotJobId -> (строка)
otaUpdateArn -> (строка)
awsIotJobArn -> (строка)
otaUpdateStatus -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.