[ 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 -> (строка)
$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 -> (целое число)
maxInstancesCount -> (целое число)
maxIdleTimeInSeconds -> (целое число)
timeoutInSeconds -> (целое число)
statusTimeoutInSeconds -> (целое число)
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 (строка)
--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 -> (строка)
componentName -> (строка)
componentVersion -> (строка)
creationTimestamp -> (метка времени)
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.