Spec-Zone.ru › AWS CLI v2

[ aws . greengrass ]

создать-определение-устройства

Описание

Создаёт определение устройства. Вы можете предоставить начальную версию определения устройства сейчас или использовать «CreateDeviceDefinitionVersion» в более позднее время.

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

Синтаксис

  create-device-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 (структура) Информация о начальной версии определения устройства.Устройства -> (список)

Список устройств в версии определения.

(структура)

Информация об устройстве.

CertificateArn -> (строка)

Идентификатор ресурса (ARN) сертификата, связанного с устройством.

Id -> (строка)

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

SyncShadow -> (булево)

Если true, локальное облако устройства будет автоматически синхронизировано с облаком.

ThingArn -> (строка)

Идентификатор ресурса (ARN) вещи устройства.

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

Devices=[{CertificateArn=string,Id=string,SyncShadow=boolean,ThingArn=string},{CertificateArn=string,Id=string,SyncShadow=boolean,ThingArn=string}]

Синтаксис JSON:

{
  "Devices": [
    {
      "CertificateArn": "string",
      "Id": "string",
      "SyncShadow": true|false,
      "ThingArn": "string"
    }
    ...
  ]
}

--name (строка) Название определения устройства.

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

значение -> (строка)

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

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
  • текст
  • таблица
  • 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.

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

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

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

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

Примеры

Примечание

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

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

Для создания определения устройства

Следующий create-device-definition пример создаёт определение устройства, содержащее начальную версию определения устройства. Начальная версия определяет два устройства. Прежде чем вы сможете создать устройство Greengrass, вам сначала необходимо создать и задействовать соответствующую вещь AWS IoT. Этот процесс включает следующие iot команды, которые вы должны выполнить, чтобы получить необходимую информацию для команды Greengrass:

  • Создайте вещь AWS IoT, соответствующую устройству:

    aws iot create-thing \
        --thing-name "InteriorTherm"
    

Вывод:

{
    "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm",
    "thingName": "InteriorTherm",
    "thingId": "01d4763c-78a6-46c6-92be-7add080394bf"
}
  • Создайте открытые и закрытые ключи и сертификат устройства для вещи. В этом примере используется команда create-keys-and-certificate, и требуется право записи в текущий каталог. В качестве альтернативы вы можете использовать команду create-certificate-from-csr:

    aws iot create-keys-and-certificate \
        --set-as-active \
        --certificate-pem-outfile "myDevice.cert.pem" \
        --public-key-outfile "myDevice.public.key" \
        --private-key-outfile "myDevice.private.key"
    

Вывод:

{
    "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92",
    "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCAkGgAwIBATgIUCgq6EGqou6zFqWgIZRndgQEFW+gwDQYJKoZIhvc...KdGewQS\n-----END CERTIFICATE-----\n",
    "keyPair": {
        "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBzrqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqKpRgnn6yq26U3y...wIDAQAB\n-----END PUBLIC KEY-----\n",
        "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIABAKCAQEAqKpRgnn6yq26U3yt5YFZquyukfRjbMXDcNOK4rMCxDR...fvY4+te\n-----END RSA PRIVATE KEY-----\n"
    },
    "certificateId": "66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92"
}
  • Создайте политику AWS IoT, которая разрешает iot и greengrass действия. Для простоты эта политика разрешает действия на всех ресурсах, но ваша политика может быть более ограниченной:

    aws iot create-policy \
        --policy-name "GG_Devices" \
        --policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}"
    

Вывод:

{
    "policyName": "GG_Devices",
    "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GG_Devices",
    "policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iot:Publish\",\"iot:Subscribe\",\"iot:Connect\",\"iot:Receive\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"iot:GetThingShadow\",\"iot:UpdateThingShadow\",\"iot:DeleteThingShadow\"],\"Resource\":[\"*\"]},{\"Effect\":\"Allow\",\"Action\":[\"greengrass:*\"],\"Resource\":[\"*\"]}]}",
    "policyVersionId": "1"
}
  • Прикрепите политику к сертификату:

    aws iot attach-policy \
        --policy-name "GG_Devices" \
        --target "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92"
    
  • Прикрепите вещь к сертификату:

    aws iot attach-thing-principal \
        --thing-name "InteriorTherm" \
        --principal "arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92"
    

После создания и настройки вещи IoT, как показано выше, используйте ThingArn и CertificateArn из первых двух команд в следующем примере.

aws greengrass create-device-definition \
    --name "Sensors" \
    --initial-version "{\"Devices\":[{\"Id\":\"InteriorTherm\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/InteriorTherm\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/66a415ec415668c2349a76170b64ac0878231c1e21ec83c10e92a18bd568eb92\",\"SyncShadow\":true},{\"Id\":\"ExteriorTherm\",\"ThingArn\":\"arn:aws:iot:us-west-2:123456789012:thing/ExteriorTherm\",\"CertificateArn\":\"arn:aws:iot:us-west-2:123456789012:cert/6c52ce1b47bde88a637e9ccdd45fe4e4c2c0a75a6866f8f63d980ee22fa51e02\",\"SyncShadow\":true}]}"

Вывод:

{
    "LatestVersionArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd/versions/3b5cc510-58c1-44b5-9d98-4ad858ffa795",
    "Name": "Sensors",
    "LastUpdatedTimestamp": "2019-09-11T00:11:06.197Z",
    "LatestVersion": "3b5cc510-58c1-44b5-9d98-4ad858ffa795",
    "CreationTimestamp": "2019-09-11T00:11:06.197Z",
    "Id": "f9ba083d-5ad4-4534-9f86-026a45df1ccd",
    "Arn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/devices/f9ba083d-5ad4-4534-9f86-026a45df1ccd"
}

Вывод

Arn -> (строка)

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

CreationTimestamp -> (строка)

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

Id -> (строка)

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

LastUpdatedTimestamp -> (строка)

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

LatestVersion -> (строка)

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

LatestVersionArn -> (строка)

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

Name -> (строка)

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

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

Spec-Zone.ru

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