Spec-Zone.ru › AWS CLI v2

[ aws . greengrass ]

create-function-definition

Описание

Создаёт определение Lambda-функции, содержащее список Lambda-функций и их конфигураций, которые будут использоваться в группе. Вы можете создать начальную версию определения, предоставив список Lambda-функций и их конфигураций сейчас или использовать «CreateFunctionDefinitionVersion» позже.

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

Синтаксис

  create-function-definition
[--amzn-client-token <value>]
[--initial-version <value>]
[--name <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]

Параметры

--amzn-client-token (строка) Токен клиента, используемый для корреляции запросов и ответов.

--initial-version (структура) Информация о начальной версии определения функции.DefaultConfig -> (структура)

Базовая конфигурация, которая применяется ко всем Lambda-функциям в этой версии определения функции. Индивидуальные Lambda-функции могут переопределять эти настройки.

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

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

IsolationMode -> (строка)

Указывает, выполняется ли Lambda-функция в контейнере Greengrass (по умолчанию) или без контейнеризации. Если ваш сценарий не требует запуска без контейнеризации, рекомендуется запускать в контейнере Greengrass. Опустите это значение, чтобы запустить Lambda-функцию с помощью стандартной контейнеризации для группы.

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

Определяет пользователя и группу, права которых используются при выполнении Lambda-функции. Вы можете указать одно или оба значения для переопределения значений по умолчанию. Мы рекомендуем избегать запуска от root, если это не абсолютно необходимо, чтобы минимизировать риск непреднамеренных изменений или вредоносных атак. Для запуска от root необходимо установить «IsolationMode» в «NoContainer» и обновить config.json в «greengrass-root/config», чтобы установить «allowFunctionsToRunAsRoot» в «yes».

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

Идентификатор группы, права которой используются для запуска Lambda-функции.

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

Идентификатор пользователя, права которого используются для запуска Lambda-функции.

Functions -> (список)

Список Lambda-функций в этой версии определения функции.

(структура)

Информация о Lambda-функции.

FunctionArn -> (строка)

ARN Lambda-функции.

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

Конфигурация Lambda-функции.

EncodingType -> (строка)

Ожидаемый тип кодирования входной полезной нагрузки для функции. По умолчанию — «json».

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

Конфигурация среды функции.

AccessSysfs -> (булево)

Если true, Lambda-функция имеет разрешение на доступ к папке /sys хоста. Используйте это, когда Lambda-функции нужно прочитать информацию об устройстве из /sys. Это значение применяется только при запуске Lambda-функции в контейнере Greengrass.

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

Конфигурация, связанная с выполнением Lambda-функции

IsolationMode -> (строка)

Указывает, выполняется ли Lambda-функция в контейнере Greengrass (по умолчанию) или без контейнеризации. Если ваш сценарий не требует запуска без контейнеризации, рекомендуется запускать в контейнере Greengrass. Опустите это значение, чтобы запустить Lambda-функцию с помощью стандартной контейнеризации для группы.

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

Определяет пользователя и группу, права которых используются при выполнении Lambda-функции. Вы можете указать одно или оба значения для переопределения значений по умолчанию. Мы рекомендуем избегать запуска от root, если это не абсолютно необходимо, чтобы минимизировать риск непреднамеренных изменений или вредоносных атак. Для запуска от root необходимо установить «IsolationMode» в «NoContainer» и обновить config.json в «greengrass-root/config», чтобы установить «allowFunctionsToRunAsRoot» в «yes».

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

Идентификатор группы, права которой используются для запуска Lambda-функции.

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

Идентификатор пользователя, права которого используются для запуска Lambda-функции.

ResourceAccessPolicies -> (список)

Список ресурсов с разрешениями, к которым Lambda-функция получит доступ. Lambda-функция может иметь не более 10 ресурсов. ResourceAccessPolicies применяются только при запуске Lambda-функции в контейнере Greengrass.

(структура)

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

Permission -> (строка)

Разрешения Lambda-функции на доступ к ресурсу. Может быть «rw» (чтение/запись) или «ro» (только чтение).

ResourceId -> (строка)

Идентификатор ресурса. (Этот идентификатор назначается ресурсу при создании определения ресурса.)

Variables -> (массив)

Переменные среды для конфигурации Lambda-функции.

key -> (строка)

value -> (строка)

ExecArgs -> (строка)

Аргументы выполнения.

Executable -> (строка)

Имя исполняемого файла функции.

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

Размер памяти в КБ, необходимый для функции. Это значение неприменимо и должно быть очищено при запуске Lambda-функции без контейнеризации.

Pinned -> (булево)

True, если функция закреплена. Закреплённая функция — долгоживущая и запускается при запуске ядра.

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

Разрешённое время выполнения функции, после чего Lambda должна завершить функцию. Этот таймаут всё ещё применяется к закреплённым Lambda-функциям для каждого запроса.

FunctionRuntimeOverride -> (строка)

Lambda runtime, поддерживаемый Greengrass, который будет использоваться вместо указанного в Lambda-функции.

Id -> (строка)

Дескриптивный или произвольный идентификатор функции. Это значение должно быть уникальным в пределах версии определения функции. Максимальная длина — 128 символов с шаблоном «[a-zA-Z0-9:_-]+».

Синтаксис JSON:

{
  "DefaultConfig": {
    "Execution": {
      "IsolationMode": "GreengrassContainer"|"NoContainer",
      "RunAs": {
        "Gid": integer,
        "Uid": integer
      }
    }
  },
  "Functions": [
    {
      "FunctionArn": "string",
      "FunctionConfiguration": {
        "EncodingType": "binary"|"json",
        "Environment": {
          "AccessSysfs": true|false,
          "Execution": {
            "IsolationMode": "GreengrassContainer"|"NoContainer",
            "RunAs": {
              "Gid": integer,
              "Uid": integer
            }
          },
          "ResourceAccessPolicies": [
            {
              "Permission": "ro"|"rw",
              "ResourceId": "string"
            }
            ...
          ],
          "Variables": {"string": "string"
            ...}
        },
        "ExecArgs": "string",
        "Executable": "string",
        "MemorySize": integer,
        "Pinned": true|false,
        "Timeout": integer,
        "FunctionRuntimeOverride": "string"
      },
      "Id": "string"
    }
    ...
  ]
}

--name (строка) Имя определения функции.

--tags (массив) Тег(и), добавляемый к новому ресурсу.key -> (строка)

value -> (строка)

Краткая запись:

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "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
  • table
  • yaml
  • yaml-stream

--query (строка)

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

--profile (строка)

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

--region (строка)

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

--version (строка)

Выводит версию этого инструмента.

--color (строка)

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

  • on
  • off
  • auto

--no-sign-request (булево)

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

--ca-bundle (строка)

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

--cli-read-timeout (int)

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

--cli-connect-timeout (int)

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

--cli-binary-format (строка)

Стиль форматирования, используемый для двоичных блоков. По умолчанию — 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 (булево)

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

--cli-auto-prompt (булево)

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

--no-cli-auto-prompt (булево)

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

Примеры

Примечание

Чтобы использовать следующие примеры, у вас должен быть установлен и настроен AWS CLI. Дополнительную информацию см. в руководстве «Начало работы» в руководстве пользователя AWS CLI.

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

Для создания определения функции Lambda

Следующий create-function-definition пример создает определение функции Lambda и начальную версию, предоставив список функций Lambda (в данном случае список из одной функции с именем TempMonitorFunction) и их конфигурации. Прежде чем вы сможете создать определение функции, вам понадобится ARN функции Lambda. Чтобы создать функцию и ее псевдоним, используйте команды Lambda create-function и publish-version. Команда Lambda create-function требует ARN роли выполнения, хотя AWS IoT Greengrass не использует эту роль, так как разрешения указаны в роли группы Greengrass. Вы можете использовать команду IAM create-role для создания пустой роли, чтобы получить ARN для использования с командой Lambda create-function, или вы можете использовать существующую роль выполнения.

aws greengrass create-function-definition \
    --name MyGreengrassFunctions \
    --initial-version "{\"Functions\": [{\"Id\": \"TempMonitorFunction\", \"FunctionArn\": \"arn:aws:lambda:us-west-2:123456789012:function:TempMonitor:GG_TempMonitor\", \"FunctionConfiguration\": {\"Executable\": \"temp_monitor.function_handler\", \"MemorySize\": 16000,\"Timeout\": 5}}]}"

Вывод:

{
    "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/3b0d0080-87e7-48c6-b182-503ec743a08b",
    "CreationTimestamp": "2019-06-19T22:24:44.585Z",
    "Id": "3b0d0080-87e7-48c6-b182-503ec743a08b",
    "LastUpdatedTimestamp": "2019-06-19T22:24:44.585Z",
    "LatestVersion": "67f918b9-efb4-40b0-b87c-de8c9faf085b",
    "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/3b0d0080-87e7-48c6-b182-503ec743a08b/versions/67f918b9-efb4-40b0-b87c-de8c9faf085b",
    "Name": "MyGreengrassFunctions"
}

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

Вывод

Arn -> (строка)

ARN определения.

CreationTimestamp -> (строка)

Время в миллисекундах с начала эпохи, когда определение было создано.

Id -> (строка)

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

LastUpdatedTimestamp -> (строка)

Время в миллисекундах с начала эпохи, когда определение было в последний раз обновлено.

LatestVersion -> (строка)

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

LatestVersionArn -> (строка)

ARN последней версии, связанной с определением.

Name -> (строка)

Имя определения.

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

Spec-Zone.ru

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