[ 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 -> (строка)
Id -> (строка)
SyncShadow -> (булево)
ThingArn -> (строка)
Сокращённый синтаксис:
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 -> (строка)
CreationTimestamp -> (строка)
Id -> (строка)
LastUpdatedTimestamp -> (строка)
LatestVersion -> (строка)
LatestVersionArn -> (строка)
Name -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.