Spec-Zone.ru › AWS CLI v2

[ aws . greengrassv2 ]

create-component-version

Описание

Создаёт компонент. Компоненты — это программное обеспечение, выполняемое на устройствах ядра Greengrass. После разработки и тестирования компонента на устройстве ядра вы можете использовать эту операцию для загрузки своего компонента в IoT Greengrass. Затем вы можете развернуть компонент на других устройствах ядра.

Вы можете использовать эту операцию для выполнения следующих действий:

  • Создание компонентов из рецептов Создайте компонент из рецепта, который представляет собой файл, определяющий метаданные, параметры, зависимости, жизненный цикл, артефакты и возможности платформы компонента. Дополнительную информацию см. в справке по рецептам компонентов IoT Greengrass в руководстве разработчика IoT Greengrass V2. Чтобы создать компонент из рецепта, укажите inlineRecipe при вызове этой операции.
  • Создание компонентов из функций Lambda Создайте компонент из функции Lambda, выполняющейся на IoT Greengrass. Это создаёт рецепт и артефакты из пакета развертывания функции Lambda. Вы можете использовать эту операцию для миграции функций Lambda из IoT Greengrass V1 в IoT Greengrass V2. Эта функция принимает функции Lambda во всех поддерживаемых версиях Python, Node.js и Java. IoT Greengrass не применяет дополнительных ограничений на устаревшие версии среды выполнения Lambda. Чтобы создать компонент из функции Lambda, укажите lambdaFunction при вызове этой операции.

Примечание

IoT Greengrass в настоящее время поддерживает функции Lambda только на устройствах ядра Linux.

См. также: Документацию API AWS

Синтаксис

  create-component-version
[--inline-recipe <value>]
[--lambda-function <value>]
[--tags <value>]
[--client-token <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]

Параметры

--inline-recipe (блок)

Рецепт, используемый для создания компонента. Рецепт определяет метаданные компонента, параметры, зависимости, жизненный цикл, артефакты и совместимость с платформами.

Вы должны указать либо inlineRecipe, либо lambdaFunction.

--lambda-function (структура)

Параметры для создания компонента из функции Lambda.

Вы должны указать либо inlineRecipe, либо lambdaFunction.

lambdaArn -> (строка)

Идентификатор ресурса (ARN) функции Lambda. ARN должен включать версию функции для импорта. Вы не можете использовать алиасы версий, такие как $LATEST.

componentName -> (строка)

Название компонента.

По умолчанию совпадает с именем функции Lambda.

componentVersion -> (строка)

Версия компонента.

По умолчанию соответствует версии функции Lambda в виде семантической версии. Например, если версия вашей функции — 3, версия компонента становится 3.0.0.

componentPlatforms -> (список)

Поддерживаемые платформы версии компонента.

(структура)

Содержит информацию о поддерживаемой платформе.

name -> (строка)

Наименование платформы. Помогает идентифицировать платформу.

Если этот параметр опущен, IoT Greengrass создаст дружественное имя из os и architecture платформы.

attributes -> (массив)

Словарь атрибутов платформы. Программное обеспечение ядра IoT Greengrass по умолчанию определяет os и architecture. Вы можете указать дополнительные атрибуты платформы для ядра устройства при развертывании компонента ядра Greengrass. Дополнительную информацию см. в разделе «Компонент ядра Greengrass» в руководстве разработчика IoT Greengrass V2.

key -> (строка)

value -> (строка)

componentDependencies -> (массив)

Версии компонентов, от которых зависит эта функция Lambda.

key -> (строка)

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

Содержит информацию о зависимости компонента для компонента функции Lambda.

versionRequirement -> (строка)

Требование к версии компонента для зависимости компонента.

IoT Greengrass V2 использует семантические ограничения версий. Дополнительную информацию см. в разделе «Семантическая версия».

dependencyType -> (строка)

Тип зависимости. Выберите один из следующих вариантов:

  • SOFT — компонент не перезапускается, если состояние зависимости изменяется.
  • HARD — компонент перезапускается, если состояние зависимости изменяется.

По умолчанию: HARD

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

Параметры системы и среды выполнения функции Lambda при выполнении на устройстве ядра Greengrass.

eventSources -> (список)

Список источников событий для подписки на получение сообщений о работе. Функция Lambda выполняется при получении сообщения от источника событий. Вы можете подписать эту функцию на локальные сообщения publish/subscribe и сообщения MQTT Amazon Web Services IoT Core.

(структура)

Содержит информацию об источнике событий для функции Lambda. Источник событий определяет темы, на которые эта функция Lambda подписывается для получения сообщений, которые запускают функцию.

topic -> (строка)

Тема для подписки на получение сообщений о событиях.

type -> (строка)

Тип источника событий. Выберите один из следующих вариантов:

  • PUB_SUB — Подписка на локальные сообщения publish/subscribe. Этот тип источника событий не поддерживает MQTT-подстановочные знаки (+ и #) в теме источника событий.
  • IOT_CORE — Подписка на сообщения MQTT Amazon Web Services IoT Core. Этот тип источника событий поддерживает MQTT-подстановочные знаки (+ и #) в теме источника событий.

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

Максимальный размер очереди сообщений для компонента функции Lambda. Ядро IoT Greengrass хранит сообщения в очереди FIFO (первым вошел, первым вышел) до тех пор, пока не сможет запустить функцию Lambda для обработки каждого сообщения.

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

Максимальное количество экземпляров, которые может одновременно запускать не закреплённая функция Lambda.

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

Максимальное время в секундах, в течение которого не закреплённая функция Lambda может простаивать, прежде чем программное обеспечение ядра IoT Greengrass остановит свой процесс.

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

Максимальное время в секундах, которое функция Lambda может потратить на обработку элемента работы.

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

Интервал в секундах, через который закреплённый (также известный как долгоживущий) компонент функции Lambda отправляет обновления статуса компоненту-менеджеру Lambda.

pinned -> (логическое значение)

Закреплён ли Lambda-функция или долгоживущая.

  • Закреплённая функция Lambda запускается при запуске IoT Greengrass и продолжает работать в собственном контейнере.
  • Не закреплённая функция Lambda запускается только при получении элемента работы и существует после простоя в течение maxIdleTimeInSeconds. Если у функции есть несколько элементов работы, программное обеспечение ядра IoT Greengrass создаёт несколько экземпляров функции.

По умолчанию: true

inputPayloadEncodingType -> (строка)

Тип кодирования, который поддерживает функция Lambda.

По умолчанию: json

execArgs -> (список)

Список аргументов, которые необходимо передать функции Lambda при её запуске.

(строка)

environmentVariables -> (массив)

Массив переменных среды, доступных для функции Lambda при её запуске.

key -> (строка)

value -> (строка)

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

Параметры для процесса Linux, содержащего функцию Lambda.

isolationMode -> (строка)

Режим изоляции для процесса, содержащего функцию Lambda. Процесс может работать в изолированной среде выполнения внутри контейнера IoT Greengrass или как обычный процесс вне контейнера.

По умолчанию: GreengrassContainer

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

Параметры контейнера, в котором работает функция Lambda.

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

Размер памяти контейнера в килобайтах.

По умолчанию: 16384 (16 МБ)

mountROSysfs -> (логическое значение)

Возможность для контейнера читать информацию из папки /sys устройства.

По умолчанию: false

volumes -> (список)

Список томов, к которым контейнер имеет доступ.

(структура)

Содержит информацию о томе, к которому Linux-процессы в контейнере имеют доступ. При определении тома программное обеспечение ядра IoT Greengrass монтирует исходные файлы в целевой каталог внутри контейнера.

sourcePath -> (строка)

Путь к физическому тому в файловой системе.

destinationPath -> (строка)

Путь к логическому тому в файловой системе.

permission -> (строка)

Разрешение доступа к тому: только чтение (ro) или чтение/запись (rw).

По умолчанию: ro

addGroupOwner -> (логическое значение)

Добавить ли группу пользователей IoT Greengrass как владельца тома.

По умолчанию: false

devices -> (список)

Список системных устройств, к которым контейнер имеет доступ.

(структура)

Содержит информацию об устройстве, к которому Linux-процессы в контейнере имеют доступ.

path -> (строка)

Путь к монтированию устройства в файловой системе.

permission -> (строка)

Разрешение доступа к устройству: только чтение (ro) или чтение/запись (rw).

По умолчанию: ro

addGroupOwner -> (логическое значение)

Добавить ли системного пользователя компонента в качестве владельца устройства.

По умолчанию: false

Синтаксис JSON:

{
  "lambdaArn": "string",
  "componentName": "string",
  "componentVersion": "string",
  "componentPlatforms": [
    {
      "name": "string",
      "attributes": {"string": "string"
        ...}
    }
    ...
  ],
  "componentDependencies": {"string": {
        "versionRequirement": "string",
        "dependencyType": "HARD"|"SOFT"
      }
    ...},
  "componentLambdaParameters": {
    "eventSources": [
      {
        "topic": "string",
        "type": "PUB_SUB"|"IOT_CORE"
      }
      ...
    ],
    "maxQueueSize": integer,
    "maxInstancesCount": integer,
    "maxIdleTimeInSeconds": integer,
    "timeoutInSeconds": integer,
    "statusTimeoutInSeconds": integer,
    "pinned": true|false,
    "inputPayloadEncodingType": "json"|"binary",
    "execArgs": ["string", ...],
    "environmentVariables": {"string": "string"
      ...},
    "linuxProcessParams": {
      "isolationMode": "GreengrassContainer"|"NoContainer",
      "containerParams": {
        "memorySizeInKB": integer,
        "mountROSysfs": true|false,
        "volumes": [
          {
            "sourcePath": "string",
            "destinationPath": "string",
            "permission": "ro"|"rw",
            "addGroupOwner": true|false
          }
          ...
        ],
        "devices": [
          {
            "path": "string",
            "permission": "ro"|"rw",
            "addGroupOwner": true|false
          }
          ...
        ]
      }
    }
  }
}

--tags (массив)

Список пар ключ-значение, содержащих метаданные ресурса. Дополнительную информацию см. в разделе «Пометьте свои ресурсы» в руководстве разработчика IoT Greengrass V2.

key -> (строка)

value -> (строка)

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

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "string"
  ...}

--client-token (строка)

Уникальный, регистрозависимый идентификатор, который можно указать для обеспечения идемпотентности запроса. Идемпотентность означает, что запрос обрабатывается успешно только один раз, даже если вы отправляете его несколько раз. При успешном запросе и указании того же маркера клиента для последующих успешных запросов служба IoT Greengrass V2 возвращает успешный ответ, который она кэширует из предыдущего запроса. Служба IoT Greengrass V2 кэширует успешные ответы для идемпотентных запросов в течение 8 часов.

--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения с помощью предоставленного значения JSON, поскольку строка будет воспринята буквально. Это может не быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено значение null или input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, будет выведен пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, проверяет входные данные команд и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не стабилен между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.

Общие параметры

--debug (boolean)

Включить отладочную запись в журнал.

--endpoint-url (string)

Переопределить URL по умолчанию команды заданным URL.

--no-verify-ssl (boolean)

По умолчанию AWS CLI использует SSL при взаимодействии с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.

--no-paginate (boolean)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.

--output (string)

Стиль форматирования вывода команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (string)

Запрос JMESPath для фильтрации данных ответа.

--profile (string)

Использовать определенный профиль из файла учетных данных.

--region (string)

Регион для использования. Переопределяет настройки конфигурации/среды.

--version (string)

Отобразить версию этого инструмента.

--color (string)

Включить/отключить цветной вывод.

  • on
  • off
  • auto

--no-sign-request (boolean)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.

--ca-bundle (string)

Файл с сертификатами CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.

--cli-read-timeout (int)

Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет выполняться без блокировки и без таймаута. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (int)

Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет выполняться без блокировки и без таймаута. Значение по умолчанию — 60 секунд.

--cli-binary-format (string)

Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое соответствует двоичному блоку, fileb:// всегда будет рассматриваться как двоичное и будет использовать содержимое файла напрямую независимо от настроек cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (boolean)

Отключить пейджер CLI для вывода.

--cli-auto-prompt (boolean)

Автоматически запросить параметры ввода CLI.

--no-cli-auto-prompt (boolean)

Отключить автоматическое запросы параметров ввода CLI.

Примеры

Примечание

Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.

Если не указано иное, во всех примерах используются правила цитирования, аналогичные UNIX. Эти примеры потребуется адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в Руководстве пользователя AWS CLI.

Пример 1: Создание версии компонента из рецепта

Следующий create-component-version пример создает версию компонента «Hello World» из файла рецепта.

aws greengrassv2 create-component-version \
    --inline-recipe fileb://com.example.HelloWorld-1.0.0.json

Содержание com.example.HelloWorld-1.0.0.json:

{
    "RecipeFormatVersion": "2020-01-25",
    "ComponentName": "com.example.HelloWorld",
    "ComponentVersion": "1.0.0",
    "ComponentDescription": "My first AWS IoT Greengrass component.",
    "ComponentPublisher": "Amazon",
    "ComponentConfiguration": {
        "DefaultConfiguration": {
            "Message": "world"
        }
    },
    "Manifests": [
        {
            "Platform": {
                "os": "linux"
            },
            "Lifecycle": {
                "Run": "echo 'Hello {configuration:/Message}'"
            }
        }
    ]
}

Вывод:

{
    "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0",
    "componentName": "com.example.HelloWorld",
    "componentVersion": "1.0.0",
    "creationTimestamp": "2021-01-07T16:24:33.650000-08:00",
    "status": {
        "componentState": "REQUESTED",
        "message": "NONE",
        "errors": {}
    }
}

Дополнительную информацию см. в разделах Создание пользовательских компонентов и Загрузка компонентов для развертывания в Руководстве разработчика AWS IoT Greengrass V2.

Пример 2: Создание версии компонента из функции AWS Lambda

Следующий create-component-version пример создает версию компонента «Hello World» из функции AWS Lambda.

aws greengrassv2 create-component-version \
    --cli-input-json file://lambda-function-component.json

Содержание lambda-function-component.json:

{
    "lambdaFunction": {
        "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:HelloWorldPythonLambda:1",
        "componentName": "com.example.HelloWorld",
        "componentVersion": "1.0.0",
        "componentLambdaParameters": {
            "eventSources": [
                {
                    "topic": "hello/world/+",
                    "type": "IOT_CORE"
                }
            ]
        }
    }
}

Вывод:

{
    "arn": "arn:aws:greengrass:us-west-2:123456789012:components:com.example.HelloWorld:versions:1.0.0",
    "componentName": "com.example.HelloWorld",
    "componentVersion": "1.0.0",
    "creationTimestamp": "2021-01-07T17:05:27.347000-08:00",
    "status": {
        "componentState": "REQUESTED",
        "message": "NONE",
        "errors": {}
    }
}

Дополнительную информацию см. в разделе Выполнение функций AWS Lambda в Руководстве разработчика AWS IoT Greengrass V2.

Вывод

arn -> (строка)

ARN версии компонента.

componentName -> (строка)

Имя компонента.

componentVersion -> (строка)

Версия компонента.

creationTimestamp -> (метка времени)

Время создания компонента в формате ISO 8601.

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

Состояние версии компонента в IoT Greengrass V2. Это состояние отличается от состояния компонента на устройстве ядра.

componentState -> (строка)

Состояние версии компонента.

message -> (строка)

Сообщение, содержащее детали, такие как ошибки, о состоянии версии компонента.

errors -> (отображение)

Словарь ошибок, объясняющих, почему версия компонента находится в состоянии ошибки. Например, если IoT Greengrass не может получить доступ к артефакту для версии компонента, то errors содержит URI артефакта в качестве ключа, а сообщение об ошибке — в качестве значения для этого ключа.

key -> (строка)

value -> (строка)

vendorGuidance -> (строка)

Состояние рекомендаций поставщика для версии компонента. Это состояние указывает, есть ли у версии компонента какие-либо проблемы, которые следует учитывать перед развертыванием. Состояние рекомендаций поставщика может быть:

  • ACTIVE — Эта версия компонента доступна и рекомендуется к использованию.
  • DISCONTINUED — Эта версия компонента была прекращена его издателем. Вы можете развернуть эту версию компонента, но мы рекомендуем использовать другую версию этого компонента.
  • DELETED — Эта версия компонента была удалена его издателем, поэтому вы не можете ее развернуть. Если у вас есть существующие развертывания, которые указывают на эту версию компонента, эти развертывания завершатся ошибкой.

vendorGuidanceMessage -> (строка)

Сообщение, содержащее детали о состоянии рекомендаций поставщика для версии компонента. Это сообщение объясняет, почему версия компонента прекращена или удалена.

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

Spec-Zone.ru

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