Spec-Zone.ru › AWS CLI v2

[ aws . iot ]

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 (строка)

Идентификатор создаваемого обновления OTA.

--description (строка)

Описание обновления OTA.

--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.

Возможные значения:

  • CONTINUOUS
  • SNAPSHOT

--aws-job-executions-rollout-config (структура)

Настройка развертывания обновлений OTA.

maximumPerMinute -> (целое число)

Максимальное количество запусков задач обновления OTA в минуту.

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 -> (длинное целое число)

Срок действия предварительно подписанных URL-адресов (в секундах). Допустимые значения: 60 - 3600, значение по умолчанию - 1800 секунд. Предварительно подписанные URL-адреса генерируются при получении запроса на документ задачи.

Сокращённый синтаксис:

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 -> (длинное целое число)

Устанавливает время (в минутах), которое у данного устройства есть для завершения выполнения данной задачи. Продолжительность таймаута может составлять от 1 минуты до 7 дней (от 1 до 10080 минут). Таймер ожидания выполнения нельзя обновлять, и он будет применяться ко всем выполнениям задачи для данной задачи. Всякий раз, когда выполнение задачи остаётся в состоянии IN_PROGRESS дольше этого интервала, выполнение задачи завершается неудачно и переключается на конечное состояние TIMED_OUT.

Сокращённый синтаксис:

inProgressTimeoutInMinutes=long

Синтаксис JSON:

{
  "inProgressTimeoutInMinutes": long
}

--files (список)

Файлы, которые должны быть переданы обновлением OTA.

(структура)

Описание файла, который должен быть связан с обновлением OTA.

fileName -> (строка)

Название файла.

fileType -> (целое число)

Целое значение, которое можно включить в документ задачи, чтобы устройства могли идентифицировать тип полученного файла из облака.

fileVersion -> (строка)

Версия файла.

fileLocation -> (структура)

Расположение обновлённого ПО.

stream -> (структура)

Поток, который содержит обновление OTA.

streamId -> (строка)

Идентификатор потока.

fileId -> (целое число)

Идентификатор файла, связанного с потоком.

s3Location -> (структура)

Расположение обновлённого ПО в S3.

bucket -> (строка)

Вёдро S3.

key -> (строка)

Ключ S3.

version -> (строка)

Версия вёдра S3.

codeSigning -> (структура)

Метод кодирования подписи файла.

awsSignerJobId -> (строка)

Идентификатор AWSSignerJob, который был создан для подписи файла.

startSigningJobParameter -> (структура)

Описание задачи кодирования подписи.

signingProfileParameter -> (структура)

Описание профиля кодирования подписи.

certificateArn -> (строка)

ARN сертификата.

platform -> (строка)

Платформа аппаратного обеспечения устройства.

certificatePathOnDevice -> (строка)

Расположение сертификата кодирования подписи на устройстве.

signingProfileName -> (строка)

Имя профиля кодирования подписи.

destination -> (структура)

Место для записи подписанного файла.

s3Destination -> (структура)

Описание расположения обновлённого ПО в S3.

bucket -> (строка)

Вёдро S3, содержащее обновлённое ПО.

prefix -> (строка)

Префикс S3.

customCodeSigning -> (структура)

Пользовательский метод для кодирования подписи файла.

signature -> (структура)

Подпись для файла.

inlineDocument -> (двоичные данные)

Представление двоичных данных подписи кодирования в формате base64.

certificateChain -> (структура)

Цепочка сертификатов.

certificateName -> (строка)

Имя сертификата.

inlineDocument -> (строка)

Представление двоичной цепочки сертификатов кодирования подписи в формате base64.

hashAlgorithm -> (строка)

Алгоритм хеширования, используемый для кодирования подписи файла. Можно использовать строку в качестве имени алгоритма, если устройства по воздуху (OTA) могут проверить подпись, которая была сгенерирована с помощью того же алгоритма подписи. Например, FreeRTOS использует SHA256 или SHA1, поэтому можно передать любой из них, в зависимости от того, какой был использован для генерации подписи.

signatureAlgorithm -> (строка)

Алгоритм подписи, используемый для кодирования подписи файла. Можно использовать строку в качестве имени алгоритма, если устройства по воздуху (OTA) могут проверить подпись, которая была сгенерирована с помощью того же алгоритма подписи. Например, FreeRTOS использует 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 (строка)

Роль IAM, которая даёт Amazon Web Services IoT Core доступ к ресурсам Amazon S3, IoT-задач и Amazon Web Services Code Signing для создания задачи обновления OTA.

--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 -> (строка)

Идентификатор обновления OTA.

awsIotJobId -> (строка)

Идентификатор задания IoT, связанный с обновлением OTA.

otaUpdateArn -> (строка)

ARN обновления OTA.

awsIotJobArn -> (строка)

ARN задания IoT, связанного с обновлением OTA.

otaUpdateStatus -> (строка)

Статус обновления OTA.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API