create-virtual-node
Описание
Создаёт виртуальный узел в рамках сервисной сетки.
Виртуальный узел выступает в качестве логической ссылки на определённую группу задач, например, сервис Amazon ECS или развертывание Kubernetes. При создании виртуального узла вы можете указать информацию о обнаружении сервиса для вашей группы задач и то, будет ли прокси, запущенный в группе задач, взаимодействовать с другими прокси с использованием Transport Layer Security (TLS).
Вы определяете listener для любого входящего трафика, который ожидает ваш виртуальный узел. Любой виртуальный сервис, с которым должен взаимодействовать ваш виртуальный узел, указывается как backend.
Метаданные ответа для вашего нового виртуального узла содержат arn, связанную с виртуальным узлом. Установите это значение в полном ARN; например, arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp) в качестве переменной среды APPMESH_RESOURCE_ARN для контейнера прокси Envoy вашей группы задач в вашем определении задачи или спецификации под. Это затем сопоставляется с параметрами Envoy node.id и node.cluster.
Примечание
По умолчанию App Mesh использует имя ресурса, указанного вAPPMESH_RESOURCE_ARN, когда Envoy ссылается на себя в метриках и трассировках. Вы можете переопределить это поведение, установив переменную среды APPMESH_RESOURCE_CLUSTER со своим именем.Для получения дополнительной информации о виртуальных узлах см. Виртуальные узлы . Вам необходимо использовать 1.15.0 или более позднюю версию образа Envoy при установке этих переменных. Дополнительную информацию о переменных Envoy в App Mesh см. в руководстве пользователя App Mesh в разделе Образ Envoy.
См. также: Документацию API AWS
Синтаксис
create-virtual-node
[--client-token <value>]
--mesh-name <value>
[--mesh-owner <value>]
--spec <value>
[--tags <value>]
--virtual-node-name <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]
Параметры
--client-token (строка)
--mesh-name (строка)
--mesh-owner (строка)
--spec (структура)
Спецификация виртуального узла для применения.
backendDefaults -> (структура)
Ссылка на объект, представляющий значения по умолчанию для бэкендов.
clientPolicy -> (структура)
Ссылка на объект, представляющий политику клиента.
tls -> (структура)
Ссылка на объект, представляющий политику клиента Transport Layer Security (TLS).
certificate -> (структура помеченного объединения)
Ссылка на объект, представляющий сертификат TLS клиента.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:file, sds.file -> (структура)
Объект, представляющий локальный сертификат файла. Сертификат должен удовлетворять определённым требованиям, и вам необходимо включить авторизацию прокси. Дополнительную информацию см. в разделе Transport Layer Security (TLS).
certificateChain -> (строка)
privateKey -> (строка)
sds -> (структура)
Ссылка на объект, представляющий сертификат TLS службы обнаружения секретов клиента.
secretName -> (строка)
enforce -> (булево)
True, если значение не указано.ports -> (список)
Один или несколько портов, для которых применяется политика.
(целое число)
validation -> (структура)
Ссылка на объект, представляющий контекст проверки TLS.
subjectAlternativeNames -> (структура)
Ссылка на объект, представляющий SAN для контекста проверки Transport Layer Security (TLS). Если вы не указываете SAN на завершающем узле сетки, прокси Envoy для этого узла не проверяет SAN в сертификате клиента-партнёра. Если вы не указываете SAN на исходном узле сетки, SAN в сертификате, предоставленном завершающим узлом, должен соответствовать конфигурации обнаружения сервиса узла сетки. Поскольку сертификаты SPIRE предоставляют SPIFFE ID в качестве имени, вам необходимо установить SAN, так как имя не соответствует имени обнаружения сервиса.
match -> (структура)
Объект, представляющий критерии для определения соответствия SAN.
exact -> (список)
Передаваемые значения должны точно совпадать со значениями, указанными.
(строка)
trust -> (структура помеченного объединения)
Ссылка на место получения цепочки доверия при проверке сертификата Transport Layer Security (TLS) партнёра.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:acm, file, sds.acm -> (структура)
Ссылка на объект, представляющий доверие контекста проверки Transport Layer Security (TLS) для сертификата Certificate Manager.
certificateAuthorityArns -> (список)
Один или несколько ARN ACM.
(строка)
file -> (структура)
Объект, представляющий доверие контекста проверки Transport Layer Security (TLS) для локального файла.
certificateChain -> (строка)
sds -> (структура)
Ссылка на объект, представляющий доверие контекста проверки Transport Layer Security (TLS) службы обнаружения секретов.
secretName -> (строка)
backends -> (список)
Бэкенды, которым виртуальный узел должен отправлять исходящий трафик.
(структура помеченного объединения)
Объект, представляющий бэкенды, которым виртуальный узел должен отправлять исходящий трафик.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:virtualService.virtualService -> (структура)
Указывает виртуальный сервис для использования в качестве бэкенда.
clientPolicy -> (структура)
Ссылка на объект, представляющий политику клиента для бэкенда.
tls -> (структура)
Ссылка на объект, представляющий политику клиента Transport Layer Security (TLS).
certificate -> (структура помеченного объединения)
Ссылка на объект, представляющий сертификат TLS клиента.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:file, sds.file -> (структура)
Объект, представляющий локальный сертификат файла. Сертификат должен удовлетворять определённым требованиям, и вам необходимо включить авторизацию прокси. Дополнительную информацию см. в разделе Transport Layer Security (TLS).
certificateChain -> (строка)
privateKey -> (строка)
sds -> (структура)
Ссылка на объект, представляющий сертификат TLS службы обнаружения секретов клиента.
secretName -> (строка)
enforce -> (булево)
True, если значение не указано.ports -> (список)
Один или несколько портов, для которых применяется политика.
(целое число)
validation -> (структура)
Ссылка на объект, представляющий контекст проверки TLS.
subjectAlternativeNames -> (структура)
Ссылка на объект, представляющий SAN для контекста проверки Transport Layer Security (TLS). Если вы не указываете SAN на завершающем узле сетки, прокси Envoy для этого узла не проверяет SAN в сертификате клиента-партнёра. Если вы не указываете SAN на исходном узле сетки, SAN в сертификате, предоставленном завершающим узлом, должен соответствовать конфигурации обнаружения сервиса узла сетки. Поскольку сертификаты SPIRE предоставляют SPIFFE ID в качестве имени, вам необходимо установить SAN, так как имя не соответствует имени обнаружения сервиса.
match -> (структура)
Объект, представляющий критерии для определения соответствия SAN.
exact -> (список)
Передаваемые значения должны точно совпадать со значениями, указанными.
(строка)
trust -> (структура помеченного объединения)
Ссылка на место получения цепочки доверия при проверке сертификата Transport Layer Security (TLS) партнёра.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:acm, file, sds.acm -> (структура)
Ссылка на объект, представляющий доверие контекста проверки Transport Layer Security (TLS) для сертификата Certificate Manager.
certificateAuthorityArns -> (список)
Один или несколько ARN ACM.
(строка)
file -> (структура)
Объект, представляющий доверие контекста проверки Transport Layer Security (TLS) для локального файла.
certificateChain -> (строка)
sds -> (структура)
Ссылка на объект, представляющий доверие контекста проверки Transport Layer Security (TLS) службы обнаружения секретов.
secretName -> (строка)
virtualServiceName -> (строка)
listeners -> (список)
Слушатель, от которого виртуальный узел ожидает получения входящего трафика. Можно указать одного слушателя.
(структура)
Объект, представляющий слушателя для виртуального узла.
connectionPool -> (структура помеченного объединения)
Информация о пуле подключений для слушателя.
Примечание
Это структура помеченного объединения. Можно задать только один из следующих ключевых элементов верхнего уровня:grpc, http, http2, tcp.grpc -> (структура)
Объект, представляющий тип пула подключений.
maxRequests -> (целое число)
http -> (структура)
Объект, представляющий тип пула подключений.
maxConnections -> (целое число)
maxPendingRequests -> (целое число)
max_connections.http2 -> (структура)
Объект, представляющий тип пула подключений.
maxRequests -> (целое число)
tcp -> (структура)
Объект, представляющий тип пула подключений.
maxConnections -> (целое число)
healthCheck -> (структура)
Информация о проверке работоспособности для слушателя.
healthyThreshold -> (целое число)
intervalMillis -> (длинное целое число)
path -> (строка)
port -> (целое число)
protocol -> (строка)
grpc, то ваш сервис должен соответствовать протоколу проверки работоспособности GRPC.timeoutMillis -> (длинное целое число)
unhealthyThreshold -> (целое число)
outlierDetection -> (структура)
Информация о выявлении выбросов для слушателя.
baseEjectionDuration -> (структура)
Основное время, на которое узел исключается.
unit -> (строка)
value -> (длинное целое число)
interval -> (структура)
Интервал времени между анализом исключения.
unit -> (строка)
value -> (длинное целое число)
maxEjectionPercent -> (целое число)
maxServerErrors -> (длинное целое число)
5xx, необходимых для исключения.portMapping -> (структура)
Информация о сопоставлении портов для слушателя.
port -> (целое число)
protocol -> (строка)
timeout -> (структура помеченного объединения)
Объект, представляющий таймауты для различных протоколов.
Примечание
Это структура помеченного объединения. Можно задать только один из следующих ключевых элементов верхнего уровня:grpc, http, http2, tcp.grpc -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое число)
perRequest -> (структура)
Объект, представляющий таймаут на запрос. Значение по умолчанию — 15 секунд. Если вы устанавливаете больший таймаут, убедитесь, что большее значение установлено для каждого ресурса App Mesh в разговоре. Например, если backend виртуального узла использует поставщика виртуального маршрутизатора для маршрутизации к другому виртуальному узлу, таймаут должен быть больше 15 секунд для исходного и целевого виртуального узла и маршрута.
unit -> (строка)
value -> (длинное целое число)
http -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое число)
perRequest -> (структура)
Объект, представляющий таймаут на запрос. Значение по умолчанию — 15 секунд. Если вы устанавливаете больший таймаут, убедитесь, что большее значение установлено для каждого ресурса App Mesh в разговоре. Например, если backend виртуального узла использует поставщика виртуального маршрутизатора для маршрутизации к другому виртуальному узлу, таймаут должен быть больше 15 секунд для исходного и целевого виртуального узла и маршрута.
unit -> (строка)
value -> (длинное целое число)
http2 -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое число)
perRequest -> (структура)
Объект, представляющий таймаут на запрос. Значение по умолчанию — 15 секунд. Если вы устанавливаете больший таймаут, убедитесь, что большее значение установлено для каждого ресурса App Mesh в разговоре. Например, если backend виртуального узла использует поставщика виртуального маршрутизатора для маршрутизации к другому виртуальному узлу, таймаут должен быть больше 15 секунд для исходного и целевого виртуального узла и маршрута.
unit -> (строка)
value -> (длинное целое число)
tcp -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое число)
tls -> (структура)
Ссылка на объект, представляющий свойства Transport Layer Security (TLS) для слушателя.
certificate -> (структура помеченного объединения)
Ссылка на объект, представляющий сертификат Transport Layer Security (TLS) слушателя.
Примечание
Это структура помеченного объединения. Можно задать только один из следующих ключевых элементов верхнего уровня:acm, file, sds.acm -> (структура)
Ссылка на объект, представляющий сертификат Certificate Manager.
certificateArn -> (строка)
file -> (структура)
Ссылка на объект, представляющий локальный сертификат файла.
certificateChain -> (строка)
privateKey -> (строка)
sds -> (структура)
Ссылка на объект, представляющий сертификат Secret Discovery Service слушателя.
secretName -> (строка)
mode -> (строка)
Укажите один из следующих режимов.
- STRICT – Слушатель принимает только подключения с включенным TLS.
- PERMISSIVE – Слушатель принимает подключения с включенным или выключенным TLS.
- DISABLED – Слушатель принимает только подключения без TLS.
validation -> (структура)
Ссылка на объект, представляющий контекст валидации Transport Layer Security (TLS) слушателя.
subjectAlternativeNames -> (структура)
Ссылка на объект, представляющий SAN для контекста валидации Transport Layer Security (TLS) слушателя.
match -> (структура)
Объект, представляющий критерии для определения соответствия SAN.
exact -> (список)
Переданные значения должны точно соответствовать указанным значениям.
(строка)
trust -> (структура помеченного объединения)
Ссылка на место получения цепочки доверия при проверке сертификата Transport Layer Security (TLS) партнера.
Примечание
Это структура помеченного объединения. Можно задать только один из следующих ключевых элементов верхнего уровня:file, sds.file -> (структура)
Объект, представляющий контекст доверия валидации Transport Layer Security (TLS) для локального файла.
certificateChain -> (строка)
sds -> (структура)
Ссылка на объект, представляющий контекст валидации Transport Layer Security (TLS) Secret Discovery Service слушателя.
secretName -> (строка)
logging -> (структура)
Информация о входящих и исходящих журналах доступа для виртуального узла.
accessLog -> (структура помеченного объединения)
Настройка журнала доступа для виртуального узла.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть установлен:file.file -> (структура)
Объект файла, в который будут отправляться журналы доступа виртуального узла.
format -> (структура помеченного объединения)
Указанный формат журналов. Формат может быть json_format или text_format.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть установлен:json, text.json -> (список)
(структура)
Объект, представляющий пары ключ-значение для JSON.
key -> (строка)
value -> (строка)
text -> (строка)
path -> (строка)
Путь к файлу для записи журналов доступа. Вы можете использовать /dev/stdout, чтобы отправлять журналы доступа в стандартный вывод и настроить контейнер Envoy на использование драйвера журналов, такого как awslogs, для экспорта журналов доступа в службу хранения журналов, например, Amazon CloudWatch Logs. Также можно указать путь в файловой системе контейнера Envoy для записи файлов на диск.
Примечание
Процесс Envoy должен иметь права записи в указанный путь. В противном случае Envoy не запустится должным образом.serviceDiscovery -> (структура помеченного объединения)
Информация о службе обнаружения для виртуального узла. Если ваш виртуальный узел не ожидает трафика входа, вы можете опустить этот параметр. Если вы укажете listener, то вы должны указать информацию об обнаружении службы.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть установлен:awsCloudMap, dns.awsCloudMap -> (структура)
Указывает любую информацию Cloud Map для виртуального узла.
attributes -> (список)
Карта строк, содержащая атрибуты со значениями, которые можно использовать для фильтрации экземпляров по любым настраиваемым атрибутам, которые вы указали при регистрации экземпляра. Будут возвращены только экземпляры, соответствующие всем указанным парам ключ/значение.
(структура)
Объект, представляющий информацию об атрибутах Cloud Map для вашего виртуального узла.
Примечание
Cloud Map недоступен в регионе eu-south-1.key -> (строка)
value -> (строка)
ipPreference -> (строка)
namespaceName -> (строка)
serviceName -> (строка)
dns -> (структура)
Указывает информацию DNS для виртуального узла.
hostname -> (строка)
ipPreference -> (строка)
responseType -> (строка)
Синтаксис JSON:
{
"backendDefaults": {
"clientPolicy": {
"tls": {
"certificate": {
"file": {
"certificateChain": "string",
"privateKey": "string"
},
"sds": {
"secretName": "string"
}
},
"enforce": true|false,
"ports": [integer, ...],
"validation": {
"subjectAlternativeNames": {
"match": {
"exact": ["string", ...]
}
},
"trust": {
"acm": {
"certificateAuthorityArns": ["string", ...]
},
"file": {
"certificateChain": "string"
},
"sds": {
"secretName": "string"
}
}
}
}
}
},
"backends": [
{
"virtualService": {
"clientPolicy": {
"tls": {
"certificate": {
"file": {
"certificateChain": "string",
"privateKey": "string"
},
"sds": {
"secretName": "string"
}
},
"enforce": true|false,
"ports": [integer, ...],
"validation": {
"subjectAlternativeNames": {
"match": {
"exact": ["string", ...]
}
},
"trust": {
"acm": {
"certificateAuthorityArns": ["string", ...]
},
"file": {
"certificateChain": "string"
},
"sds": {
"secretName": "string"
}
}
}
}
},
"virtualServiceName": "string"
}
}
...
],
"listeners": [
{
"connectionPool": {
"grpc": {
"maxRequests": integer
},
"http": {
"maxConnections": integer,
"maxPendingRequests": integer
},
"http2": {
"maxRequests": integer
},
"tcp": {
"maxConnections": integer
}
},
"healthCheck": {
"healthyThreshold": integer,
"intervalMillis": long,
"path": "string",
"port": integer,
"protocol": "http"|"tcp"|"http2"|"grpc",
"timeoutMillis": long,
"unhealthyThreshold": integer
},
"outlierDetection": {
"baseEjectionDuration": {
"unit": "s"|"ms",
"value": long
},
"interval": {
"unit": "s"|"ms",
"value": long
},
"maxEjectionPercent": integer,
"maxServerErrors": long
},
"portMapping": {
"port": integer,
"protocol": "http"|"tcp"|"http2"|"grpc"
},
"timeout": {
"grpc": {
"idle": {
"unit": "s"|"ms",
"value": long
},
"perRequest": {
"unit": "s"|"ms",
"value": long
}
},
"http": {
"idle": {
"unit": "s"|"ms",
"value": long
},
"perRequest": {
"unit": "s"|"ms",
"value": long
}
},
"http2": {
"idle": {
"unit": "s"|"ms",
"value": long
},
"perRequest": {
"unit": "s"|"ms",
"value": long
}
},
"tcp": {
"idle": {
"unit": "s"|"ms",
"value": long
}
}
},
"tls": {
"certificate": {
"acm": {
"certificateArn": "string"
},
"file": {
"certificateChain": "string",
"privateKey": "string"
},
"sds": {
"secretName": "string"
}
},
"mode": "STRICT"|"PERMISSIVE"|"DISABLED",
"validation": {
"subjectAlternativeNames": {
"match": {
"exact": ["string", ...]
}
},
"trust": {
"file": {
"certificateChain": "string"
},
"sds": {
"secretName": "string"
}
}
}
}
}
...
],
"logging": {
"accessLog": {
"file": {
"format": {
"json": [
{
"key": "string",
"value": "string"
}
...
],
"text": "string"
},
"path": "string"
}
}
},
"serviceDiscovery": {
"awsCloudMap": {
"attributes": [
{
"key": "string",
"value": "string"
}
...
],
"ipPreference": "IPv6_PREFERRED"|"IPv4_PREFERRED"|"IPv4_ONLY"|"IPv6_ONLY",
"namespaceName": "string",
"serviceName": "string"
},
"dns": {
"hostname": "string",
"ipPreference": "IPv6_PREFERRED"|"IPv4_PREFERRED"|"IPv4_ONLY"|"IPv6_ONLY",
"responseType": "LOADBALANCER"|"ENDPOINTS"
}
}
}
--tags (список)
Необязательные метаданные, которые можно применить к виртуальному узлу для помощи в категоризации и организации. Каждый тег состоит из ключа и необязательного значения, оба из которых вы определяете. Ключи тегов могут иметь максимальную длину 128 символов, а значения тегов — максимальную длину 256 символов.
(структура)
Необязательные метаданные, которые вы применяете к ресурсу для помощи в категоризации и организации. Каждый тег состоит из ключа и необязательного значения, оба из которых вы определяете. Ключи тегов могут иметь максимальную длину 128 символов, а значения тегов — максимальную длину 256 символов.
key -> (строка)
key — это общее метка, которая действует как категория для более конкретных значений тегов.value -> (строка)
value служит описателем в категории тега (ключ).Сокращённый синтаксис:
key=string,value=string ...
Синтаксис JSON:
[
{
"key": "string",
"value": "string"
}
...
]
--virtual-node-name (строка)
--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 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 .
Пример 1: Создание нового виртуального узла с использованием DNS для обнаружения
Следующий create-virtual-node пример использует файл входных данных JSON для создания виртуального узла, использующего DNS для обнаружения службы.
aws appmesh create-virtual-node \
--cli-input-json file://create-virtual-node-dns.json
Содержимое create-virtual-node-dns.json:
{
"meshName": "app1",
"spec": {
"listeners": [
{
"portMapping": {
"port": 80,
"protocol": "http"
}
}
],
"serviceDiscovery": {
"dns": {
"hostname": "serviceBv1.svc.cluster.local"
}
}
},
"virtualNodeName": "vnServiceBv1"
}
Вывод:
{
"virtualNode": {
"meshName": "app1",
"metadata": {
"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv1",
"createdAt": 1563810019.874,
"lastUpdatedAt": 1563810019.874,
"uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
"version": 1
},
"spec": {
"listeners": [
{
"portMapping": {
"port": 80,
"protocol": "http"
}
}
],
"serviceDiscovery": {
"dns": {
"hostname": "serviceBv1.svc.cluster.local"
}
}
},
"status": {
"status": "ACTIVE"
},
"virtualNodeName": "vnServiceBv1"
}
}
Пример 2: Создание нового виртуального узла с использованием AWS Cloud Map для обнаружения
Следующий create-virtual-node пример использует файл входных данных JSON для создания виртуального узла, использующего AWS Cloud Map для обнаружения службы.
aws appmesh create-virtual-node \
--cli-input-json file://create-virtual-node-cloud-map.json
Содержимое create-virtual-node-cloud-map.json:
{
"meshName": "app1",
"spec": {
"backends": [
{
"virtualService": {
"virtualServiceName": "serviceA.svc.cluster.local"
}
}
],
"listeners": [
{
"portMapping": {
"port": 80,
"protocol": "http"
}
}
],
"serviceDiscovery": {
"awsCloudMap": {
"attributes": [
{
"key": "Environment",
"value": "Testing"
}
],
"namespaceName": "namespace1",
"serviceName": "serviceA"
}
}
},
"virtualNodeName": "vnServiceA"
}
Вывод:
{
"virtualNode": {
"meshName": "app1",
"metadata": {
"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceA",
"createdAt": 1563810859.465,
"lastUpdatedAt": 1563810859.465,
"uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
"version": 1
},
"spec": {
"backends": [
{
"virtualService": {
"virtualServiceName": "serviceA.svc.cluster.local"
}
}
],
"listeners": [
{
"portMapping": {
"port": 80,
"protocol": "http"
}
}
],
"serviceDiscovery": {
"awsCloudMap": {
"attributes": [
{
"key": "Environment",
"value": "Testing"
}
],
"namespaceName": "namespace1",
"serviceName": "serviceA"
}
}
},
"status": {
"status": "ACTIVE"
},
"virtualNodeName": "vnServiceA"
}
}
Дополнительную информацию см. в разделе Виртуальные узлы в руководстве пользователя AWS App Mesh.
Вывод
virtualNode -> (структура)
Полное описание вашего виртуального узла после вызова create.
meshName -> (строка)
metadata -> (структура)
Сопутствующие метаданные для виртуального узла.
arn -> (строка)
createdAt -> (временная метка)
lastUpdatedAt -> (временная метка)
meshOwner -> (строка)
resourceOwner -> (строка)
uid -> (строка)
version -> (длинное целое)
spec -> (структура)
Характеристики виртуального узла.
backendDefaults -> (структура)
Ссылка на объект, представляющий значения по умолчанию для бэкендов.
clientPolicy -> (структура)
Ссылка на объект, представляющий политику клиента.
tls -> (структура)
Ссылка на объект, представляющий политику клиента Transport Layer Security (TLS).
certificate -> (структура помеченных объединений)
Ссылка на объект, представляющий сертификат TLS клиента.
Примечание
Это структура помеченных объединений. Только один из следующих ключей верхнего уровня может быть установлен:file, sds.file -> (структура)
Объект, представляющий сертификат локального файла. Сертификат должен соответствовать определённым требованиям, и у вас должна быть включена авторизация прокси. Дополнительную информацию см. в разделе Transport Layer Security (TLS).
certificateChain -> (строка)
privateKey -> (строка)
sds -> (структура)
Ссылка на объект, представляющий сертификат TLS службы обнаружения секретов клиента.
secretName -> (строка)
enforce -> (булево)
True, если значение не указано.ports -> (список)
Один или несколько портов, для которых применяется политика.
(целое число)
validation -> (структура)
Ссылка на объект, представляющий контекст проверки TLS.
subjectAlternativeNames -> (структура)
Ссылка на объект, представляющий SAN для контекста проверки Transport Layer Security (TLS). Если вы не указываете SAN на завершающем узле сетки, прокси Envoy для этого узла не проверяет SAN в сертификате клиента-партнёра. Если вы не указываете SAN на исходном узле сетки, SAN в сертификате, предоставленном завершающим узлом, должен соответствовать конфигурации обнаружения служб узла сетки. Поскольку SPIRE выдаёт сертификаты с SPIFFE ID в качестве имени, вам необходимо установить SAN, поскольку имя не совпадает с именем службы обнаружения.
match -> (структура)
Объект, представляющий критерии для определения соответствия SAN.
exact -> (список)
Отправленные значения должны точно совпадать с указанными значениями.
(строка)
trust -> (структура помеченных объединений)
Ссылка на место получения цепочки доверия при проверке сертификата Transport Layer Security (TLS) партнёра.
Примечание
Это структура помеченных объединений. Только один из следующих ключей верхнего уровня может быть установлен:acm, file, sds.acm -> (структура)
Ссылка на объект, представляющий доверие для контекста проверки TLS для сертификата Certificate Manager.
certificateAuthorityArns -> (список)
Один или несколько ACM Amazon Resource Name (ARN).
(строка)
file -> (структура)
Объект, представляющий доверие для контекста проверки TLS для локального файла.
certificateChain -> (строка)
sds -> (структура)
Ссылка на объект, представляющий доверие для контекста проверки TLS службы обнаружения секретов.
secretName -> (строка)
backends -> (список)
Бэкенды, к которым виртуальный узел, как ожидается, будет отправлять исходящий трафик.
(структура помеченных объединений)
Объект, представляющий бэкенды, к которым виртуальный узел, как ожидается, будет отправлять исходящий трафик.
Примечание
Это структура помеченных объединений. Только один из следующих ключей верхнего уровня может быть установлен:virtualService.virtualService -> (структура)
Указывает виртуальную службу, используемую в качестве бэкенда.
clientPolicy -> (структура)
Ссылка на объект, представляющий политику клиента для бэкенда.
tls -> (структура)
Ссылка на объект, представляющий политику клиента Transport Layer Security (TLS).
certificate -> (структура помеченных объединений)
Ссылка на объект, представляющий сертификат TLS клиента.
Примечание
Это структура помеченных объединений. Только один из следующих ключей верхнего уровня может быть установлен:file, sds.file -> (структура)
Объект, представляющий сертификат локального файла. Сертификат должен соответствовать определённым требованиям, и у вас должна быть включена авторизация прокси. Дополнительную информацию см. в разделе Transport Layer Security (TLS).
certificateChain -> (строка)
privateKey -> (строка)
sds -> (структура)
Ссылка на объект, представляющий сертификат TLS службы обнаружения секретов клиента.
secretName -> (строка)
enforce -> (булево)
True, если значение не указано.ports -> (список)
Один или несколько портов, для которых применяется политика.
(целое число)
validation -> (структура)
Ссылка на объект, представляющий контекст проверки TLS.
subjectAlternativeNames -> (структура)
Ссылка на объект, представляющий SAN для контекста проверки Transport Layer Security (TLS). Если вы не указываете SAN на завершающем узле сетки, прокси Envoy для этого узла не проверяет SAN в сертификате клиента-партнёра. Если вы не указываете SAN на исходном узле сетки, SAN в сертификате, предоставленном завершающим узлом, должен соответствовать конфигурации обнаружения служб узла сетки. Поскольку SPIRE выдаёт сертификаты с SPIFFE ID в качестве имени, вам необходимо установить SAN, поскольку имя не совпадает с именем службы обнаружения.
match -> (структура)
Объект, представляющий критерии для определения соответствия SAN.
exact -> (список)
Отправленные значения должны точно совпадать с указанными значениями.
(строка)
trust -> (структура помеченных объединений)
Ссылка на место получения цепочки доверия при проверке сертификата Transport Layer Security (TLS) партнёра.
Примечание
Это структура помеченных объединений. Только один из следующих ключей верхнего уровня может быть установлен:acm, file, sds.acm -> (структура)
Ссылка на объект, представляющий доверие для контекста проверки TLS для сертификата Certificate Manager.
certificateAuthorityArns -> (список)
Один или несколько ACM Amazon Resource Name (ARN).
(строка)
file -> (структура)
Объект, представляющий доверие для контекста проверки TLS для локального файла.
certificateChain -> (строка)
sds -> (структура)
Ссылка на объект, представляющий доверие для контекста проверки TLS службы обнаружения секретов.
secretName -> (строка)
virtualServiceName -> (строка)
listeners -> (список)
Слушатель, от которого виртуальный узел ожидает получения входящего трафика. Вы можете указать одного слушателя.
(структура)
Объект, представляющий слушателя виртуального узла.
connectionPool -> (структура помеченного объединения)
Информация о пуле подключений для слушателя.
Примечание
Это структура помеченного объединения. Можно установить только один из следующих ключей верхнего уровня:grpc, http, http2, tcp.grpc -> (структура)
Объект, представляющий тип пула подключений.
maxRequests -> (целое число)
http -> (структура)
Объект, представляющий тип пула подключений.
maxConnections -> (целое число)
maxPendingRequests -> (целое число)
max_connections, которые Envoy будет помещать в очередь для кластера вверх по потоку.http2 -> (структура)
Объект, представляющий тип пула подключений.
maxRequests -> (целое число)
tcp -> (структура)
Объект, представляющий тип пула подключений.
maxConnections -> (целое число)
healthCheck -> (структура)
Информация о проверке работоспособности для слушателя.
healthyThreshold -> (целое число)
intervalMillis -> (длинное целое)
path -> (строка)
port -> (целое число)
protocol -> (строка)
grpc, то ваш сервис должен соответствовать протоколу проверки работоспособности GRPC.timeoutMillis -> (длинное целое)
unhealthyThreshold -> (целое число)
outlierDetection -> (структура)
Информация об обнаружении выбросов для слушателя.
baseEjectionDuration -> (структура)
Базовая продолжительность вывода хоста из работы.
unit -> (строка)
value -> (длинное целое)
interval -> (структура)
Интервал времени между анализом вывода из работы.
unit -> (строка)
value -> (длинное целое)
maxEjectionPercent -> (целое число)
maxServerErrors -> (длинное целое)
5xx ошибок, необходимых для вывода из работы.portMapping -> (структура)
Информация о сопоставлении портов для слушателя.
port -> (целое число)
protocol -> (строка)
timeout -> (структура помеченного объединения)
Объект, представляющий таймауты для различных протоколов.
Примечание
Это структура помеченного объединения. Можно установить только один из следующих ключей верхнего уровня:grpc, http, http2, tcp.grpc -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое)
perRequest -> (структура)
Объект, представляющий таймаут на запрос. Значение по умолчанию — 15 секунд. Если вы установите больший таймаут, убедитесь, что это значение установлено для каждого ресурса App Mesh в диалоге. Например, если бэкенд виртуального узла использует виртуальный маршрутизатор для маршрутизации к другому виртуальному узлу, то таймаут должен быть больше 15 секунд для исходного и целевого виртуального узла и маршрута.
unit -> (строка)
value -> (длинное целое)
http -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое)
perRequest -> (структура)
Объект, представляющий таймаут на запрос. Значение по умолчанию — 15 секунд. Если вы установите больший таймаут, убедитесь, что это значение установлено для каждого ресурса App Mesh в диалоге. Например, если бэкенд виртуального узла использует виртуальный маршрутизатор для маршрутизации к другому виртуальному узлу, то таймаут должен быть больше 15 секунд для исходного и целевого виртуального узла и маршрута.
unit -> (строка)
value -> (длинное целое)
http2 -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое)
perRequest -> (структура)
Объект, представляющий таймаут на запрос. Значение по умолчанию — 15 секунд. Если вы установите больший таймаут, убедитесь, что это значение установлено для каждого ресурса App Mesh в диалоге. Например, если бэкенд виртуального узла использует виртуальный маршрутизатор для маршрутизации к другому виртуальному узлу, то таймаут должен быть больше 15 секунд для исходного и целевого виртуального узла и маршрута.
unit -> (строка)
value -> (длинное целое)
tcp -> (структура)
Объект, представляющий типы таймаутов.
idle -> (структура)
Объект, представляющий таймаут бездействия. Таймаут бездействия ограничивает время, в течение которого подключение может быть бездействующим. Значение по умолчанию — none.
unit -> (строка)
value -> (длинное целое)
tls -> (структура)
Ссылка на объект, представляющий свойства Transport Layer Security (TLS) для слушателя.
certificate -> (структура помеченного объединения)
Ссылка на объект, представляющий сертификат Transport Layer Security (TLS) слушателя.
Примечание
Это структура помеченного объединения. Можно установить только один из следующих ключей верхнего уровня:acm, file, sds.acm -> (структура)
Ссылка на объект, представляющий сертификат Certificate Manager.
certificateArn -> (строка)
file -> (структура)
Ссылка на объект, представляющий локальный сертификат файла.
certificateChain -> (строка)
privateKey -> (строка)
sds -> (структура)
Ссылка на объект, представляющий сертификат Secret Discovery Service слушателя.
secretName -> (строка)
mode -> (строка)
Укажите один из следующих режимов.
- STRICT – Слушатель принимает только подключения с включенным TLS.
- PERMISSIVE – Слушатель принимает подключения с включенным или выключенным TLS.
- DISABLED – Слушатель принимает только подключения без TLS.
validation -> (структура)
Ссылка на объект, представляющий контекст проверки валидации Transport Layer Security (TLS) слушателя.
subjectAlternativeNames -> (структура)
Ссылка на объект, представляющий SAN для контекста проверки валидации Transport Layer Security (TLS) слушателя.
match -> (структура)
Объект, представляющий критерии определения совпадения SAN.
exact -> (список)
Передаваемые значения должны точно совпадать с указанными значениями.
(строка)
trust -> (структура помеченного объединения)
Ссылка на место получения цепочки доверия при проверке сертификата Transport Layer Security (TLS) удаленного узла.
Примечание
Это структура помеченного объединения. Можно установить только один из следующих ключей верхнего уровня:file, sds.file -> (структура)
Объект, представляющий контекст доверия Transport Layer Security (TLS) валидации для локального файла.
certificateChain -> (строка)
sds -> (структура)
Ссылка на объект, представляющий контекст проверки валидации Transport Layer Security (TLS) Secret Discovery Service слушателя.
secretName -> (строка)
logging -> (структура)
Информация о входящих и исходящих журналах доступа для виртуального узла.
accessLog -> (структура помеченного объединения)
Конфигурация журнала доступа для виртуального узла.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:file.file -> (структура)
Объект файла для отправки журналов доступа виртуального узла.
format -> (структура помеченного объединения)
Указанный формат журналов. Формат может быть json_format или text_format.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:json, text.json -> (список)
(структура)
Объект, представляющий пары ключ-значение для JSON.
key -> (строка)
value -> (строка)
text -> (строка)
path -> (строка)
Путь к файлу для записи журналов доступа. Вы можете использовать /dev/stdout для отправки журналов доступа в стандартный вывод и настроить ваш контейнер Envoy на использование драйвера журналов, например, awslogs, для экспорта журналов доступа в службу хранения журналов, такую как Amazon CloudWatch Logs. Вы также можете указать путь в файловой системе контейнера Envoy для записи файлов на диск.
Примечание
Процесс Envoy должен иметь права записи в указанный здесь путь. В противном случае Envoy не может корректно запуститься.serviceDiscovery -> (структура помеченного объединения)
Информация о службе обнаружения для виртуального узла. Если ваш виртуальный узел не ожидает входящего трафика, вы можете опустить этот параметр. Если вы указываете listener, то вы должны указать информацию о службе обнаружения.
Примечание
Это структура помеченного объединения. Только один из следующих верхнеуровневых ключей может быть установлен:awsCloudMap, dns.awsCloudMap -> (структура)
Указывает информацию Cloud Map для виртуального узла.
attributes -> (список)
Массив строк, содержащий атрибуты со значениями, которые можно использовать для фильтрации экземпляров по любым настраиваемым атрибутам, указанным при регистрации экземпляра. Будут возвращены только экземпляры, соответствующие всем указанным парам ключ/значение.
(структура)
Объект, представляющий информацию об атрибутах Cloud Map для вашего виртуального узла.
Примечание
Cloud Map недоступен в регионе eu-south-1.key -> (строка)
value -> (строка)
ipPreference -> (строка)
namespaceName -> (строка)
serviceName -> (строка)
dns -> (структура)
Указывает информацию DNS для виртуального узла.
hostname -> (строка)
ipPreference -> (строка)
responseType -> (строка)
status -> (структура)
Текущий статус виртуального узла.
status -> (строка)
virtualNodeName -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.