4.Контейнер
1. Создать контейнер
Адрес интерфейса:/v2/instance/create
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.18.0
callbackUrl предоставляется версией v1.19.0
Описание интерфейса:
Запланировать создание контейнера на уже запрошенной плате; количество создания представляет количество плат, фактическое количество созданных контейнеров=количество плат*число открытий. Максимальное количество создания за один раз зависит от конфигурации среды, по умолчанию 200;создание завершается в течение 60 минут
Требования к формату переменных окружения: поддерживаемые символы включают буквы (верхнего и нижнего регистра), цифры и подчеркивание _, при этом имя должно начинаться с буквы или подчеркивания. Максимальная длина — 100 символов. Бизнес-правила: 1、 Поддерживаются переменные окружения, начинающиеся с AIC_; при создании контейнера эта переменная окружения передается через параметр docker create, а при запуске контейнера, если обнаружена переменная окружения, начинающаяся с AIC_, она преобразуется в свойство. Особое примечание: 1)В системе Android максимальная длина ключа свойства (key) составляет 32 символа. Это жестко заданное системное ограничение; ключи, превышающие эту длину, не смогут нормально задавать свойства. 2) Максимальная длина значения свойства (value) составляет 92 символа. Это также жестко заданное системное ограничение; если заданное значение превышает эту длину, система обрежет лишнюю часть. 2、Системные зарезервированные переменные окружения задавать запрещено. 3、Зарезервированные переменные окружения, начинающиеся с AIC_, настраивать запрещено.
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| nodeUuid | uuid узла | body | true | string | |
| armCardOfferingUuid | uuid вычислительной спецификации платы | body | true | string | Пройдено Получить вычислительную спецификацию платы Получить через интерфейс |
| os | Система | body | true | string | Например: Android |
| osVersion | Версия системы | body | true | string | Например "10" |
| createType | Стратегия создания | body | false | integer | 1:случайное планирование 2:указанная плата [по умолчанию случайное планирование] |
| snList | Список SN плат | body | false | list | Длина списка не может превышать 200. Когда createType=2, список не может быть пустым |
| offeringUuid | uuid вычислительной спецификации контейнера | body | true | string | Спецификация контейнера по умолчанию включает разрешение, ориентацию экрана, частоту обновления и плотность экрана; получается через вычислительную спецификацию контейнера |
| layoutUuid | UUID макета экрана | body | false | string | Пройдено Список раскладок экрана контейнера Получить через интерфейс. Если не пусто, заменить соответствующие спецификации контейнера: разрешение, ориентацию экрана, частоту обновления и плотность экрана |
| imageId | id образа | body | true | string | |
| networkUuid | uuid бизнес-сети | body | false | string | Поддерживает несколько бизнес-сетей, несколько значений разделяются с помощью ,, networkUuid и subnetUuid нельзя указывать одновременно; если не заполнено, система выберет случайно. |
| subnetUuid | uuid бизнес-подсети | body | false | string | Поддерживает несколько подсетей, несколько значений разделяются с помощью ,, networkUuid и subnetUuid нельзя указывать одновременно; если не заполнено, система выберет случайно. |
| num | Количество создаваемых плат | body | true | integer | Максимум 200. И удовлетворяет: 1. num <= [4.12 Получить количество плат, на которых можно создать контейнеры]; 2. num * количество запусков <= [4.13 Получить количество доступных ip] |
| tagIds | Тег | body | false | List<integer> | |
| environment | Переменные окружения | body | false | object | Пара ключ-значение. Общее количество не более 20, длина ключа и значения не более 100 |
| root | root ли | body | false | integer | 0:нет 1:да [по умолчанию нет] |
| stopStatus | Выключать ли после создания, по умолчанию не выключать | body | false | boolean | true означает выключить,false означает не выключать |
| instanceLimit | Количество контейнеров превышает квоту (0:не превышает, 1:превышает, по умолчанию не превышает) | body | false | integer | Если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате, на которой находится данный контейнер>Количество запусков; в этом случае количество запускаемых контейнеров будет ограничено и не должно превышать максимальное количество, разрешенное платой (то есть количество запусков). Когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате, где находится этот контейнер = количество запусков. |
| instanceLimitNum | Количество создаваемых контейнеров на плате | body | false | integer | Когда instanceLimit является лимитом, это поле обязательно; должно быть больше level количества запусков спецификации контейнера и меньше либо равно instanceLimitMax максимального количества контейнеров спецификации платы |
| storeType | Тип хранилища | body | false | integer | Тип хранилища: 1.локальный диск, 2.облачный диск (по умолчанию выбран локальный диск; контейнеры с типом хранилища облачный диск можно запустить только после подключения облачного диска) |
| idGenerateType | Правило генерации ID контейнера | body | false | integer | По умолчанию:узел-16-значный uuid;1.узел-16-значный uuid;2.32-значный uuid,3.префикс-16-значный uuid |
| prefix | Префикс ID контейнера | body | false | string | Когда idGenerateType равен 3, это поле обязательно; максимум 10 символов; поддерживаются только: цифры, буквы, дефис -, подчеркивание _ |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v2/instance/create"
body:
{
"projectId":"7b5a664173f526309e43faf775f09d1d",
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"armCardOfferingUuid":"f64a987692a711ef9b070242ac12000d",
"os":"Android",
"osVersion":"10",
"createType":1,
"snList":["ORG2M32QC2J231400077"],
"offeringUuid":"6d6e456aecdb9d4a89c1712e8f7fc759",
"layoutUuid":"6197fc3d5e1140028cb18159b096247a",
"imageId":"192.168.130.241:3734/7b5a664173f526309e43faf775f09d1d/img-1728651639344:latest",
"networkUuid":"943da341eede495282278cd06ccd1623",
"num":1,
"tagIds":[200,257],
"root":0,
"stopStatus":true,
"idGenerateType":3,
"prefix":"abc",
"callbackUrl": "http://127.0.0.1/notice"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | list<object> | |
| jobs | Результат задачи | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid платы | string | |
| sn | SN платы | string | |
| projectId | id проекта | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"jobs": [
{
"jobId": "e1d8895789114132a568a85873f35625",
"code": 200,
"sn": "OR65T31QC2D221000072",
"message": "success",
"uuid": "0b4294e92763a79283def0e83bb9303a",
"projectId": "7b5a664173f526309e43faf775f09d1d"
}
]
},
"timestamp": 1734679127799,
"traceId": "E20241220151847733892"
}
2. Удалить контейнер
Адрес интерфейса:/v1/arm/card/apply/destroy/container
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.18.0
callbackUrl предоставляется версией v1.19.0
Описание интерфейса:
Удалить контейнеры платы
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | string | |
| batchMap | Пара ключ-значение uuid платы/название платы | body | true | object | |
| uuids | Список uuid плат | body | false | List |
|
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса
POST "/openapi/v1/arm/card/apply/destroy/container"
body:
{
"batchMap":{
"a438e3d6a5d57083385fb6ee21c267fc":"fjz-api-1"
},
"uuids": ["a438e3d6a5d57083385fb6ee21c267fc"],
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"callbackUrl": "http://127.0.0.1/notice"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| jobs | Результат задачи | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| sn | SN платы | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"jobs": [
{
"jobId": "9bc83f3703f245d2a8f98f39f560dbae",
"code": 200,
"sn": "OR65T31QC2D221000019",
"message": "success",
"uuid": "95b0cd8b672235f49224679a298f7bc8"
}
]
},
"timestamp": 1730188041492,
"traceId": "E20241029154721445265"
}
3. Постраничный список контейнеров
Адрес интерфейса:/v2/instance/page/list
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
Описание интерфейса:
Постраничный запрос контейнеров, возвращает образ контейнера, разрешение и другие данные
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| nodeUuids | Список uuid узлов | body | false | List<String> | |
| armCardSns | SN платы | body | false | List<String> | Запрос по указанным SN плат, максимум 200 |
| instanceUuids | Список uuid контейнеров | body | false | List<String> | |
| hardModels | Вычислительная модель --планируется вывести из эксплуатации | body | false | List<String> | |
| imageNames | Название образа | body | false | List<String> | |
| levels | Количество запусков | body | false | List |
1 - 40 |
| instanceOfferingUuids | uuid спецификации контейнера | body | false | List |
Фильтрация по указанной спецификации контейнера, получить через интерфейс 5.1 |
| tagNames | Название тега | body | false | string | Несколько значений разделяются запятыми |
| instanceLimits | Количество контейнеров превышает квоту | body | false | List |
Если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате, на которой находится данный контейнер>Количество запусков; в этом случае количество запускаемых контейнеров будет ограничено и не должно превышать максимальное количество, разрешенное платой (то есть количество запусков). Когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате, где находится этот контейнер = количество запусков. |
| storeTypes | Тип хранилища | body | false | List |
Тип хранилища: 1.локальный диск, 2.облачный диск |
| pageNum | Номер текущей страницы | body | false | integer | По умолчанию 1 |
| pageSize | Количество данных на текущей странице | body | false | integer | По умолчанию 10 |
Пример запроса, в фактическом запросе замените значения параметров:
POST "/openapi/v2/instance/page/list"
body:
{
"instanceUuids": [
"132322",
"132322"
],
"pageNum": 1,
"pageSize": 10,
"projectId": "project_admin"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | IPage<object> | |
| records | Список данных текущей страницы | list<object> | |
| uuid | uuid вычислительного контейнера | string | |
| name | Название контейнера | string | |
| armCardUuid | uuid платы | string | |
| armCardSn | SN платы | string | |
| armCardIp | IP платы | string | |
| imageId | ID образа | string | ID инициализационного образа |
| imageUuid | UUID образа | string | |
| imageName | Название образа | string | |
| cceImage | Текущий образ контейнера | string | Фактический текущий образ контейнера |
| ip | IP | string | ip контейнера |
| mac | mac-адрес | string | |
| dns | DNS | string | |
| gateway | Шлюз | string | |
| businessStatus | бизнес-статус | integer | |
| status | Статус контейнера | integer | См. 1.9.1 |
| enableStatus | Состояние доступности | boolean | false:недоступно true:доступно |
| delStatus | Состояние удаления | boolean | false:нормально true:удалено |
| resolution | Разрешение | string | 720x1280 |
| orientation | Направление поворота | integer | 0:портретная ориентация 1:альбомная ориентация |
| refreshRate | Частота обновления | integer | целое число от 30 до 60 |
| root | root ли | integer | 0:нет 1:да |
| networkMode | Сетевой режим | string | |
| envVariable | Переменные окружения | string | |
| cceId | ID контейнера | string | 64-битная строка |
| ccePorts | Группа открытых портов | string | ip платы:порт сопоставлен с внутренним портом контейнера |
| cceStatus | статус выполнения cce | string | Выполняется:Up Завершен:Exit Неизвестно:UnKnow |
| level | Количество запусков | integer | 1 - 40 экземпляров |
| osVersion | Операционная система образа контейнера | string | Android 10 Android 13 |
| gameImageId | id игрового образа | string | |
| properties | Свойства | string | |
| areaUuid | uuid региона | string | |
| areaName | Название региона | string | |
| nodeUuid | uuid узла | string | |
| nodeName | Название узла | string | |
| nodeIp | ip узла | string | |
| nodePort | Порт узла | string | |
| armServerUuid | uuid сервера | string | |
| armServerName | Имя сервера | sting | |
| hostIp | IP-адрес хоста | string | |
| hostUuid | UUID хоста | string | |
| projectId | id проекта | string | |
| remark | Примечание | string | |
| instanceOffering | Объект вычислительной спецификации | object | |
| uuid | uuid вычислительной спецификации | integer | |
| hardwareCode | Вычислительная спецификация контейнера --планируется вывести из эксплуатации | string | Например: Orion865_3C_4G |
| name | Название | string | |
| level | Количество запусков | integer | 1 - 40 экземпляров |
| remark | Примечание | string | |
| instanceOfferingName | Спецификация контейнера | string | Например: один запуск - ограниченное хранилище - 8vCPU - 12GB памяти - 175GB |
| tagNames | Тег | list | |
| dnat | Список DNAT IP | list | |
| ip | Внутренний IP | string | |
| port | Номер внутреннего порта | integer | |
| publicIp | Публичный IP | string | |
| publicPort | Номер публичного порта | integer | |
| protocol | Протокол | string | |
| isp | Оператор | string | |
| idc | Машинный зал | string | |
| snat | Список SNAT IP | list | |
| publicIp | Публичный IP | string | |
| isp | Оператор | string | |
| createTime | Время создания | string | |
| updateTime | Время обновления | string | |
| instanceLimit | Количество контейнеров превышает квоту | integer | Если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате, на которой находится данный контейнер>Количество запусков; в этом случае количество запускаемых контейнеров будет ограничено и не должно превышать максимальное количество, разрешенное платой (то есть количество запусков). Когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате, где находится этот контейнер = количество запусков. |
| stopStatus | Статус остановки контейнера | boolean | true:остановить,false:запустить |
| natType | Тип NAT | integer | 1-полноконусный, 2-DNAT, 3-полноконусный+DNAT, 0-не настроено |
| storeType | Тип хранилища | integer | Тип хранилища: 1.локальный диск, 2.облачный диск |
| displayLayout | Макет экрана | string | |
| total | Общее количество записей | integer | |
| current | Номер текущей страницы | integer | |
| pages | Общее количество страниц | integer | |
| size | Количество строк на странице | integer | |
| traceId | ID обработки запроса | string | |
| timestamp | Временная метка | integer(int64) |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"uuid": "nashan1-edzbbck35fbfp942",
"areaUuid": "a8a4c72bb116e765d079e93c174e5b03",
"areaName": "sz",
"armServerName": "sz_nashan1_s-eb95057e3f1cb4aad656a9fb6492963f",
"armServerUuid": "s-eb95057e3f1cb4aad656a9fb6492963f",
"armCardUuid": "fa9ce25ee8c6f457ba8cfc29ac5689b5",
"armCardId": "OR65Q61QC2D240402561",
"armCardSn": "OR65Q61QC2D240402561",
"nodeUuid": "1ddf1365dac9137cf77d6d0142ff7251",
"nodeName": "nashan1",
"armCardIp": "172.31.1.29",
"name": "ZQtest_Auto-3-i3",
"level": 3,
"ip": "10.255.1.99",
"cceId": "3051536e6c6714f72850cb8b0d7468a80e9077b5e77a7a1a49cbfbaa06614177",
"cceImage": "orion865-android_10:img-1732526889678",
"ccePorts": "",
"cceStatus": "Up",
"status": 2,
"enableStatus": true,
"delStatus": false,
"createTime": "2025-07-03 16:37:34",
"updateTime": "2025-07-03 16:37:34",
"imageId": "orion865-android_10:img-1732526889678",
"imageUuid": "ba9d06f249dd4cd39b56c81ac1ef60da",
"imageName": "865_A10",
"resolution": "1080x1920",
"orientation": 0,
"refreshRate": 60,
"root": null,
"networkMode": "macvlan",
"envVariable": null,
"remark": null,
"hostIp": "172.31.1.29",
"hostUuid": "fa9ce25ee8c6f457ba8cfc29ac5689b5",
"mac": "06:8a:90:0a:6b:f3",
"dns": null,
"gateway": "10.255.0.1",
"nodeIp": "192.168.40.88",
"nodePort": "80",
"gameImageId": null,
"projectId": null,
"businessStatus": 2,
"osVersion": "Android 10",
"properties": null,
"instanceOffering": {
"uuid": "86e93b78d47f11efa27fd67956f2361b",
"name": "Orion865",
"remark": "三开-限存储",
"level": 3,
"hardwareCode": "Orion865_3C_4G",
"instanceOfferingName": "一开-限存储 | 8vCPU |12GB内存 | 175GB"
},
"tagNames": [
"电信公网IP"
],
"dnat": [
{
"ip": "10.255.1.99",
"port": 10101,
"publicIp": "14.17.100.66",
"publicPort": 20512,
"protocol": "udp",
"isp": "电信",
"idc": "广州机房"
}
],
"snat": [
{
"publicIp": "192.168.3.99",
"isp": "电信"
}
],
"instanceLimit": 1,
"stopStatus": false,
"natType": 0,
"storeType": 1,
"displayLayout": "{\"height\":1920,\"pixelDensity\":320,\"refreshRate\":60,\"uuid\":\"cdd2c57c45a111f0bfdd0242ac12000d\",\"weight\":1080}"
}
],
"total": 1,
"current": 1,
"pages": 1,
"size": 10
},
"timestamp": 1751597826079,
"traceId": "C20250704105706079185"
}
4. Сведения о контейнере
Адрес интерфейса:/v2/instance/details/{uuid}
Метод запроса:GET
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
Описание интерфейса:
Запрос сведений об одном контейнере, включая образ контейнера, разрешение, открытые порты и т. д.
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuid | uuid контейнера | path | true | string | Один контейнер |
Пример запроса, в фактическом запросе замените значения параметров:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| uuid | uuid контейнера | string | |
| name | Название контейнера | string | |
| ip | ip | string | |
| mac | mac-адрес | string | |
| dns | dns | string | |
| gateway | Шлюз | string | |
| tagNames | Тег | List<string> | |
| armServerUuid | uuid сервера | string | |
| armServerName | Имя сервера | string | |
| areaUuid | uuid региона | string | |
| areaName | Название региона | string | |
| nodeUuid | uuid узла | string | |
| nodeName | Название узла | string | |
| armCardUuid | uuid платы | string | |
| armCardSn | SN платы | string | |
| armCardIp | IP платы | string | |
| level | Вычислительная спецификация | integer | 1 - 40 экземпляров |
| envVariable | Переменные окружения | string | |
| ports | Группа портов | string | |
| resolution | Разрешение | string | 720x1280 |
| orientation | Направление поворота | integer | 0:портретная ориентация 1:альбомная ориентация |
| refreshRate | Частота обновления | integer | целое число от 30 до 60 |
| networkMode | Сетевой режим | string | bridge;macvlan |
| imageId | ID образа | string | |
| imageName | Название образа | string | |
| cceId | ID контейнера | string | |
| cceImage | образ, используемый при создании docker | string | |
| cceStatus | статус выполнения cce | string | Выполняется:Up;Завершен:Exit;Неизвестно:UnKnow |
| createStatus | Состояние создания | integer | 0:ожидает создания 1:создано успешно,2:ошибка создания |
| enableStatus | Статус включения | boolean | false:отключено true:включено |
| status | Статус контейнера | integer | См. 1.9.1 |
| createTime | Время создания | string | |
| updateTime | Время последнего изменения | string | |
| remark | Примечание | string | |
| osVersion | Операционная система образа контейнера | string | Android 10 Android 13 |
| instanceOffering | Объект вычислительной спецификации | object | |
| uuid | uuid вычислительной спецификации | string | |
| name | Название | string | |
| instanceOfferingName | Спецификация контейнера | string | Например: один запуск - ограниченное хранилище - 8vCPU - 12GB памяти - 175GB |
| hardwareCode | Вычислительная спецификация контейнера --планируется вывести из эксплуатации | string | |
| remark | Примечание | string | |
| level | Вычислительная спецификация | integer | 1 - 40 экземпляров |
| dnat | Список DNAT IP | list | |
| ip | Внутренний IP | string | |
| port | Номер внутреннего порта | integer | |
| publicIp | Публичный IP | string | |
| publicPort | Номер публичного порта | integer | |
| protocol | Протокол | string | |
| isp | Оператор | string | |
| snat | Список SNAT IP | list | |
| publicIp | Публичный IP | string | |
| isp | Оператор | string | |
| instanceLimit | Количество контейнеров превышает квоту | integer | Если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате, на которой находится данный контейнер>Количество запусков; в этом случае количество запускаемых контейнеров будет ограничено и не должно превышать максимальное количество, разрешенное платой (то есть количество запусков). Когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате, где находится этот контейнер = количество запусков. |
| natType | Тип NAT | integer | 1-полноконусный, 2-DNAT, 3-полноконусный+DNAT, 0-не настроено |
| storeType | Тип хранилища | integer | Тип хранилища: 1.локальный диск, 2.облачный диск |
| displayLayout | Макет экрана | string | |
| mounts | Информация монтирования облачного диска | list | |
| cloudDriveUuid | uuid облачного диска | string | |
| traceId | ID обработки запроса | string | |
| timestamp | Временная метка | integer(int64) |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"armServerUuid": "s-8c2c9cca5853789031ac60d332a2bdfd",
"uuid": "qs-fs-pre-bmjf5xy6ieq9fvuw",
"resolution": "720x1280",
"dnat": null,
"areaName": "华南",
"refreshRate": 30,
"instanceOffering": {
"level": 4,
"hardwareCode": "Orion865_2C_4G",
"name": "Orion865",
"remark": "四开-限存储",
"uuid": "86e9f4a3d47f11efa27fd67956f2361b",
"instanceOfferingName": "一开-限存储 | 8vCPU |12GB内存 | 175GB"
},
"armCardSn": "OR65M62QC2D242400557",
"networkMode": "macvlan",
"cceId": "f7930793fa41fa89ec2eaa8f9132cfe3e826a5495c54cd5dceff6752f154403a",
"imageId": "img-1743489439031:latest",
"imageName": "20250401-api",
"level": 4,
"ip": "10.20.2.37",
"dns": null,
"nodeUuid": "beb95a81559b894a92c9f1bb13c7aeba",
"name": "hf_auto_test-9-i4",
"envVariable": null,
"armCardUuid": "0511f641304a4c82f4ab67bfa4cc5a74",
"enableStatus": true,
"status": 2,
"nodeName": "qs-fs-pre",
"cceStatus": "Up",
"remark": null,
"mac": "ec:ad:be:c0:b8:cc",
"tagNames": [
"HF自动化测试专用-勿动"
],
"armCardIp": "172.30.0.36",
"osVersion": "Android 10",
"areaUuid": "f2a584df5e91724a94a31a4a68b5dcd0",
"orientation": 0,
"updateTime": "2025-08-21 16:27:52",
"armServerName": "华南_qs-fs-pre_s-01cde1e2894191fd5bc05764f5318a19",
"createTime": "2025-08-21 16:27:52",
"cceImage": "img-1743489439031:latest",
"snat": [
{
"isp": "电信",
"publicIp": "192.168.4.110"
}
],
"gateway": "10.20.2.1",
"instanceLimit": 0,
"natType": 0,
"storeType": 1,
"displayLayout": "{\"height\":1920,\"pixelDensity\":320,\"refreshRate\":60,\"uuid\":\"cdd2c57c45a111f0bfdd0242ac12000d\",\"weight\":1080}",
"mounts": [
{
"cloudDriveUuid": "3e25ec2f7103483b8abc8e3cde49ebca"
},
{
"cloudDriveUuid": "088234e7fbd149b0945d6428913577be"
}
]
},
"timestamp": 1755765048991,
"traceId": "E20250821163048991023"
}
5. Перезагрузить контейнер
Адрес интерфейса:/v2/instance/restart
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Интерфейс пакетной перезагрузки контейнеров
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | list | Одна или несколько записей данных контейнера |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v2/instance/restart"
body:
{
"instanceUuids": ["348504568b904b7eb64264e488a2f79d","ae674f4546c74bf48c00c211334f214a"]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "fb3e172cbbc847e6ba18bdd991b79e72",
"code": 200,
"message": "success",
"uuid": "348504568b904b7eb64264e488a2f79d",
"command": "restartInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "1e3388fddf3e4c1496fa109986c05383",
"code": 200,
"message": "success",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"command": "restartInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691369821823,
"traceId": "E75320230807085701790"
}
6. Запустить контейнер
Адрес интерфейса:/v2/instance/start
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Интерфейс пакетного запуска контейнеров (при запуске контейнера добавляется проверка, превышает ли количество запущенных контейнеров на плате лимит экземпляров)
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | list | Одна или несколько записей данных контейнера |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v2/instance/start"
body:
{
"instanceUuids": ["21f8ec0beadc46b0bd0a437e7a74ea14","2256ed29c9f7464aaac65cacb2843e12"]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "f07e77c4dcd04359b56730dbd7d1162e",
"code": 200,
"message": "success",
"uuid": "21f8ec0beadc46b0bd0a437e7a74ea14",
"command": "startInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "610d31b12f58487b884775078682427c",
"code": 200,
"message": "success",
"uuid": "2256ed29c9f7464aaac65cacb2843e12",
"command": "startInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691369668713,
"traceId": "E75020230807085428674"
}
7. Остановить контейнер
Адрес интерфейса:/v2/instance/stop
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Интерфейс пакетной остановки контейнеров
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | list | Одна или несколько записей данных контейнера |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "406f1720dc7b4fbda540ad48206628ee",
"code": 200,
"message": "success",
"uuid": "f4d2fccea3e341dcba0bf0d6ec40455e",
"command": "stopInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691372308394,
"traceId": "E76220230807093828363"
}
8. Сбросить контейнер
Адрес интерфейса:/v2/instance/reset
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Интерфейс пакетного сброса контейнеров, очистка раздела data
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | list | Одна или несколько записей данных контейнера |
| appPersistedType | Стратегия сохранения предустановленных приложений, по умолчанию 0 | body | false | integer | 0: полная очистка, 1: сохранить приложение, очистить данные приложения |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
| Пример запроса: |
POST "/openapi/v2/instance/reset"
body:
{
"instanceUuids": ["348504568b904b7eb64264e488a2f79d","ae674f4546c74bf48c00c211334f214a"]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"code": 0,
"message": "操作成功",
"result":[
{
"jobId": "b59b5f35f7d743d3ad740b8df05277bf",
"code": 200,
"message": "success",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"command": "resetInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "b59b5f35f7d743d3ad740b8df05274f3",
"code": 50003,
"message": "容器未找到",
"uuid": "348504568b904b7eb64264e488a2f79d",
"command": "resetInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1749452586155,
"traceId": "C20250609150306154764"
}
9. Обновление образа контейнера
Адрес интерфейса:/v2/instance/upgradeImage
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Пакетное обновление образов контейнеров
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | list | Одна или несколько записей данных контейнера |
| imageId | ID образа | body | true | string | |
| wipeData | Очищать ли данные контейнера(раздел data) | body | true | boolean | true очистить;false не очищать |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
| statusStartType | Тип запуска контейнера | body | false | integer | 0:запустить(параметр по умолчанию)1:сохранить исходное состояние(запущено/остановлено) |
Пример запроса:
POST "/openapi/v2/instance/upgradeImage"
body:
{
"imageId": "qsandroid:1.0.78",
"wipeData": false,
"instanceUuids": [
"f4d2fccea3e341dcba0bf0d6ec40455e","ae674f4546c74bf48c00c211334f214a"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | object | |
| jobs | Результат задачи | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | uuid узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"code": 0,
"message": "操作成功",
"result": [
{
"jobId": "b59b5f35f7d743d3ad740b8df05277bf",
"code": 200,
"message": "success",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"command": "upgradeImageInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "b59b5f35f7d743d3ad740b8df05274f3",
"code": 50003,
"message": "容器未找到",
"uuid": "f4d2fccea3e341dcba0bf0d6ec40455e",
"command": "upgradeImageInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1749452601305,
"traceId": "C20250609150321303778"
}
10. Установить ограничение скорости
Адрес интерфейса: /v1/arm/card/apply/network/limit
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.19.0
Описание интерфейса:
Пакетная настройка ограничения скорости платы/контейнера
Параметры запроса
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuids | Набор uuid плат или контейнеров | body | true | list |
Пакетная операция |
| type | Тип | body | true | integer | 1:плата;2:контейнер |
| txLimit | Исходящая пропускная способность(Mbps) | body | false | integer | Диапазон:0~10000。0 или отсутствие параметра означает отсутствие ограничения скорости |
| rxLimit | Входящая пропускная способность(Mbps) | body | false | integer | Диапазон:0~10000。0 или отсутствие параметра означает отсутствие ограничения скорости |
| callbackUrl | Адрес callback уведомления | body | false | string |
Пример запроса, в фактическом запросе замените значения параметров:
POST "/openapi/v1/arm/card/apply/network/limit"
body:
{
"callbackUrl": "https://baidu.com",
"rxLimit": 0,
"txLimit": 50,
"type": 1,
"uuids": [
"35cdb073f6b143c27193cda1b1f5223f"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | object | |
| jobs | Результат задачи | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| sn | sn платы | string | |
| message | Описание отправки задачи | string | |
| uuid | uuid ресурса | string | uuid платы или uuid контейнера |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"jobs": [
{
"jobId": "d33cf1faf04d46118e6863d67d4a5790",
"code": 200,
"sn": "OR65M22QC2D221101036",
"message": "success",
"uuid": "35cdb073f6b143c27193cda1b1f5223f"
}
]
},
"timestamp": 1735635597561,
"traceId": "C20241231165957548043"
}
11. Запрос ограничения скорости
Адрес интерфейса: /v1/arm/card/apply/query/network/limit
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.19.0
Описание интерфейса:
Пакетный запрос ограничения скорости платы/контейнера
Параметры запроса
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuids | Набор uuid плат или контейнеров | body | true | list |
Пакетная операция |
| type | Тип | body | true | integer | 1:плата;2:контейнер |
Пример запроса, в фактическом запросе замените значения параметров:
POST "/openapi/v1/arm/card/apply/query/network/limit"
body:
{
"type": 1,
"uuids": [
"35cdb073f6b143c27193cda1b1f5223f"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | object | |
| list | Результат задачи | list<object> | |
| uuid | uuid | string | |
| txLimit | Исходящая пропускная способность(Mbps) | integer | |
| rxLimit | Входящая пропускная способность(Mbps) | integer | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"list": {
"2de6e9a68cd46c09a600a6e4ea70f6cb": {
"rxLimit": 0,
"txLimit": 0
}
}
},
"timestamp": 1736494048934,
"traceId": "C20250110152728934900"
}
12. Инкрементная синхронизация списка контейнеров
Адрес интерфейса:/v2/instance/sync
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.0.0
Описание интерфейса:
Синхронизировать указанное количество записей изменений данных контейнера на основе временной базовой линии и id базовой линии
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | true | string | Синхронизировать данные указанного project id |
| timeLine | Временная базовая линия, возвращаются только данные больше или равные этому времени | body | true | long | |
| uuid | базовая линия uuid,поскольку существуют данные с одинаковым временем, сортировка по uuid используется для пропуска уже синхронизированных данных | body | false | string | |
| ticketId | Номер заявки | body | true | string | Будет включено в возвращаемое содержимое |
| pageSize | Размер пакета | body | false | integer | Максимальный объем данных запроса, возвращаемый за один раз, по умолчанию 10 |
Пример запроса:
POST "/openapi/v2/instance/sync"
body:
{
"timeLine":1742288362249,
"pageSize":3,
"uuid": "nashan-ggca3oneqdqkr2vv",
"ticketId":"xxxxxx",
"projectId":"7b5a664173f526309e43faf775f09d1d",
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | list<object> | |
| records | Список данных текущей страницы | list<object> | |
| uuid | uuid вычислительного контейнера | string | |
| name | Название контейнера | string | |
| armCardId | SN платы | string | |
| armCardSn | SN платы | string | |
| armCardIp | IP платы | string | |
| imageId | ID образа | string | Инициализационный образ для создания контейнера |
| imageUuid | UUID образа | string | |
| cceImage | Текущий образ контейнера | string | При обновлении образа это значение станет текущим образом |
| ip | ip | string | |
| mac | mac-адрес | string | |
| dns | dns | string | |
| gateway | Шлюз | string | |
| businessStatus | бизнес-статус | integer | |
| status | Статус контейнера | integer | См. 1.9.1 |
| enableStatus | Состояние доступности | boolean | false:недоступно true:доступно |
| delStatus | Состояние удаления | boolean | false:нормально true:удалено |
| resolution | Разрешение | string | 720x1280 |
| orientation | Направление поворота | integer | 0:портретная ориентация 1:альбомная ориентация |
| refreshRate | Частота обновления | integer | целое число от 30 до 60 |
| root | root ли | integer | 0:нет 1:да |
| networkMode | Сетевой режим | string | |
| envVariable | Переменные окружения | string | |
| cceId | ID контейнера | string | 64-битная строка |
| ccePorts | Группа открытых портов | string | ip платы:порт сопоставлен с внутренним портом контейнера |
| cceStatus | статус выполнения cce | string | Выполняется:Up Завершен:Exit Неизвестно:UnKnow |
| level | Вычислительная спецификация | integer | 1 - 7 экземпляров |
| areaUuid | uuid региона | string | |
| areaName | Название региона | string | |
| nodeUuid | uuid узла | string | |
| nodeName | Название узла | string | |
| armServerUuid | uuid сервера | string | |
| armServerName | Имя сервера | sting | |
| armCardUuid | uuid платы | string | |
| hostIp | IP-адрес хоста | string | |
| hostUuid | UUID хоста | string | |
| remark | Примечание | string | |
| osVersion | Операционная система образа контейнера | string | Android 10 Android 13 |
| tagNames | Тег | List<string> | |
| dnat | Список DNAT IP | list | |
| ip | Внутренний IP | string | |
| port | Номер внутреннего порта | integer | |
| publicIp | Публичный IP | string | |
| publicPort | Номер публичного порта | integer | |
| protocol | Протокол | string | |
| isp | Оператор | string | |
| idc | Машинный зал | string | |
| createTime | Время создания | string | |
| instanceOffering | Объект вычислительной спецификации | object | |
| uuid | uuid вычислительной спецификации | integer | |
| name | Название | string | |
| remark | Примечание | string | |
| instanceOfferingName | Спецификация контейнера | string | Например: один запуск - ограниченное хранилище - 8vCPU - 12GB памяти - 175GB |
| hardwareCode | Вычислительная спецификация контейнера --планируется вывести из эксплуатации | string | |
| level | Вычислительная спецификация | integer | 1 - 7 экземпляров |
| updateTime | Время обновления | string | |
| nodeIp | ip узла | string | |
| nodePort | Порт узла | string | |
| gameImageId | id игрового образа | string | |
| properties | Свойства | string | |
| instanceLimit | Количество контейнеров превышает квоту | integer | Если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате, на которой находится данный контейнер>Количество запусков; в этом случае количество запускаемых контейнеров будет ограничено и не должно превышать максимальное количество, разрешенное платой (то есть количество запусков). Когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате, где находится этот контейнер = количество запусков. |
| stopStatus | Статус остановки контейнера | boolean | true:остановить,false:запустить |
| natType | Тип NAT | integer | 1-полноконусный, 2-DNAT, 3-полноконусный+DNAT, 0-не настроено |
| storeType | Тип хранилища | integer | Тип хранилища: 1.локальный диск, 2.облачный диск |
| displayLayout | Макет экрана | string | |
| timeLine | Максимальное время этой партии данных | long | |
| uuid | UUID последнего контейнера в этой партии данных | string | |
| ticketId | Номер заявки | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"uuid": "qs-fs-pre-s9rf5snjhh97b8a1",
"areaUuid": "f2a584df5e91724a94a31a4a68b5dcd0",
"areaName": "华南",
"armServerName": "华南_qs-fs-pre_s-8c2c9cca5853789031ac60d332a2bdfd",
"armServerUuid": "s-8c2c9cca5853789031ac60d332a2bdfd",
"armCardUuid": "46b635c9669ee824db9f19d64cca8c4e",
"armCardId": "OR65M62QC2D242406460",
"armCardSn": "OR65M62QC2D242406460",
"nodeUuid": "beb95a81559b894a92c9f1bb13c7aeba",
"nodeName": "qs-fs-pre",
"armCardIp": "172.30.0.57",
"name": "hf_auto_test-10-i2",
"level": 4,
"ip": "10.20.2.67",
"cceId": "7d3632807bbd004f4086e76b9210f8da1c24e22343e945b7bac558ac2aae2efd",
"cceImage": "img-1743489439031",
"imageName": "20250401-api",
"ccePorts": "",
"cceStatus": "Up",
"status": 6,
"enableStatus": true,
"delStatus": false,
"createTime": "2025-08-21 16:27:54",
"updateTime": "2025-08-21 16:31:25",
"imageId": "img-1743489439031:latest",
"imageUuid": "bf78f87b27d64cc88ad70b0cbe4dda16",
"resolution": "720x1280",
"orientation": 0,
"refreshRate": 30,
"root": null,
"networkMode": "macvlan",
"envVariable": null,
"remark": null,
"hostIp": "172.30.0.57",
"hostUuid": "46b635c9669ee824db9f19d64cca8c4e",
"mac": "48:17:8f:bb:de:8d",
"dns": null,
"gateway": "10.20.2.1",
"nodeIp": "10.21.0.10",
"nodePort": "80",
"gameImageId": "",
"projectId": null,
"businessStatus": 6,
"osVersion": "Android 10",
"properties": null,
"instanceLimit": 1,
"stopStatus": false,
"natType":1,
"storeType":1,
"displayLayout": "{\"height\":1920,\"pixelDensity\":320,\"refreshRate\":60,\"uuid\":\"cdd2c57c45a111f0bfdd0242ac12000d\",\"weight\":1080}",
"instanceOffering": {
"uuid": "86e9f4a3d47f11efa27fd67956f2361b",
"name": "Orion865",
"remark": "四开-限存储",
"level": 4,
"hardwareCode": "Orion865_2C_4G",
"instanceOfferingName": "一开-限存储 | 8vCPU |12GB内存 | 175GB"
},
"tagNames": [
"HF自动化测试专用-勿动"
],
"dnat": [
{
"ip": "10.255.1.99",
"port": 10101,
"publicIp": "14.17.100.66",
"publicPort": 20512,
"protocol": "udp",
"isp": "电信",
"idc": "广州机房"
}
],
"snat": [
{
"publicIp": "192.168.4.110",
"isp": "电信"
}
]
}
],
"timeLine": 1755765085287,
"uuid": "qs-fs-pre-s9rf5snjhh97b8a1",
"ticketId": "1755765046889"
},
"timestamp": 1755765088019,
"traceId": "C20250821163128019156"
}
13. Информация ssh-подключения контейнера
Адрес интерфейса: /v2/instance/ssh-info
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.19.0
Описание интерфейса:
Получить информацию для ssh-подключения к контейнеру
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuid | uuid контейнера | body | true | string | uuid контейнера |
| liveTime | Срок действия подключения | body | true | integer | Срок действия подключения, единица: секунды, диапазон:[1, 86400] |
Пример запроса, в фактическом запросе замените значения параметров:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | list<object> | |
| type | Целевая операционная система подключения | integer | 1 означает android,2 означает debain |
| uuid | uuid контейнера | string integer | uuid android-контейнера |
| sshCommand | Команда подключения | string | |
| host | Адрес подключения | string | |
| port | Порт подключения | integer | |
| username | Имя пользователя подключения | string | |
| sshPwd | Пароль подключения | string | |
| expireTime | Метка времени истечения срока | long | Единица измерения ms |
| timestamp | Временная метка | integer | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"type": 1,
"uuid": "nashan1-0i5thpnoliqyjnwy",
"sshCommand": "ssh 10.255.1.13_22_1_1752133964400@192.168.40.86 -p 2226",
"sshPwd": "eyJtZXRhIjoiZXlKdVlXMWxJam9pWVdSdGFXNGlMQ0owZVhCbElqb2lNVEFpZlE9PSIsInNpZ24iOiJ3VXFMcHRFRmFaVFQ0TmVZRHBiclJBPT0ifQ==",
"expireTime": 1752133964400,
"host": "192.168.40.86",
"port": 2226,
"username": "10.255.1.13_22_1_1752133964400"
},
"timestamp": 1752047564479,
"traceId": "C20250709155244479102"
}
14. Количество плат, на которых можно создать контейнеры (используется для создания контейнера)
Адрес интерфейса: /v1/arm/card/apply/available/apply/num
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.18.0
Описание интерфейса:
Получить количество плат, доступных для создания контейнеров
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| nodeUuid | uuid узла | body | true | string | |
| offeringUuid | uuid спецификации платы | body | true | string | Пройдено Получить вычислительную спецификацию платы Получить через интерфейс |
| snList | Список SN плат | body | false | list | |
| storageIsolation | Требуется ли изоляция хранилища | body | false | boolean | По умолчанию false, то есть поддержка изоляции хранилища не требуется |
Пример запроса
POST "/openapi/v1/arm/card/apply/available/apply/num"
body:
{
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"projectId":"7b5a664173f526309e43faf775f09d1d",
"offeringUuid":"f64a987692a711ef9b070242ac12000d"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| applyNum | Количество плат, на которых можно создать контейнеры | integer(int32) | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"applyNum": 5
},
"timestamp": 1730201010116,
"traceId": "E20241029192330116567"
}
15. Количество доступных IP (используется при создании контейнера) Планируется вывод из эксплуатации
Адрес интерфейса: /v1/arm/card/apply/available/ip/num
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.18.0
Описание интерфейса:
Получить количество ip, доступных для создания контейнеров
Используется при создании контейнера для определения, соответствует ли пул ip количеству контейнеров
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | string | |
| subnetUuid | uuid подсети | body | true | string | Поддерживает несколько сетевых сегментов, разделять запятыми |
Пример запроса
POST "/openapi/v1/arm/card/apply/available/ip/num"
body:
{
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"subnetUuid":"943da341eede495282278cd06ccd1623"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| ipNum | Количество доступных ip | integer(int32) | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"ipNum": 5
},
"timestamp": 1730201010116,
"traceId": "E20241029192330116567"
}
16. Получить бизнес-сеть и подсети(используется при создании контейнера)
Адрес интерфейса: /v1/network/list
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.7.4
Описание интерфейса:
Получить бизнес-сеть и ее подсети указанного узла в проекте
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| nodeUuid | uuid узла | body | true | string | Запрос сети под узлом |
Пример запроса, в фактическом запросе замените значения параметров:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | list<object> | |
| networkUuid | uuid сети | string | |
| name | Название сети | string | |
| ipv4 | ipv4 | string | |
| cidr | длина префикса cidr | string | |
| ipv4Cidr | ipv4Cidr | string | |
| dns1 | dns1 | string | |
| dns2 | dns2 | string | |
| gateway | Шлюз | string | |
| vlan | vlan | integer | |
| subnetCount | Количество подсетей | integer | Количество подсетей, созданных в сети |
| availableIpTotal | общее количество доступных IP в подсети бизнес-сети | integer | общее количество доступных IP в подсети бизнес-сети |
| natType | Тип NAT | integer | 1-полноконусный, 2-DNAT, 3-полноконусный+DNAT, 0-не настроено |
| subnets | Список подсетей | list<object> | |
| subnetUuid | uuid подсети | string | |
| ipv4 | ipv4 | string | |
| cidr | длина префикса cidr | string | Есть значение при типе сетевого сегмента |
| ipv4Cidr | ipv4Cidr | string | Есть значение при типе сетевого сегмента |
| startIp | startIp | string | имеет значение при типе диапазона ip |
| endIp | endIp | string | имеет значение при типе диапазона ip |
| gateway | Адрес шлюза | string | |
| availableNum | Количество доступных IP в подсети | integer | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": [
{
"networkUuid": "3c81e61a35de401bv076bdb0d6675ee3",
"name": "business1",
"ipv4": "10.255.0.0",
"cidr": "25",
"ipv4Cidr": "10.255.0.0/25",
"dns1": "8.8.8.8",
"dns2": "114.114.114.114",
"vlan": 101,
"gateway": "10.255.0.1",
"subnetCount": 3,
"availableIpTotal": 8,
"natType":1,
"subnets": [
{
"subnetUuid": "943da341eede495282278cd06ccd1623",
"ipv4": "10.255.0.0",
"cidr": "29",
"ipv4Cidr": "10.255.0.0/29",
"gateway": "10.255.0.1",
"availableNum": 3,
"startIp": null,
"endIp": null
},
{
"subnetUuid": "64e261771e8a43edb27e70f7185c9702",
"ipv4": "10.255.0.10",
"cidr": null,
"ipv4Cidr": null,
"gateway": "10.255.0.1",
"availableNum": 2,
"startIp": "10.255.0.10",
"endIp": "10.255.0.69"
},
{
"subnetUuid": "091e0e26816945029c00adf463f8e73d",
"ipv4": "10.255.0.70",
"cidr": null,
"ipv4Cidr": null,
"gateway": "10.255.0.1",
"availableNum": 3,
"startIp": "10.255.0.70",
"endIp": "10.255.0.127"
}
]
}
],
"timestamp": 1736499769597,
"traceId": "C20250110170249597948"
}
17. Список раскладок экрана контейнера
Адрес интерфейса:/v1/layout/page/list
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.4.0
Описание интерфейса:
Список раскладок экрана контейнера
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
Пример запроса:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | IPage«Информация о регионе» | |
| records | Список данных текущей страницы | list<object> | |
| uuid | UUID макета | string | |
| name | Название макета | string | |
| weight | Ширина | integer | Единица измерения: px |
| height | Высота | integer | Единица измерения: px |
| pixelDensity | Плотность пикселей | integer | Единица измерения: dpi |
| refreshRate | Частота обновления экрана | integer | Единица измерения: fps |
| projectId | Id проекта | string | project_pubilc:макет по умолчанию Другое: пользовательский макет |
| createTime | Время создания | string | |
| updateTime | Время обновления | string | |
| total | Общее количество записей | integer | |
| current | Номер текущей страницы | integer | |
| pages | Общее количество страниц | integer | |
| size | Количество строк на странице | integer | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | boolean |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"uuid": "c0e226e745a111f0bfdd0242ac12000d",
"name": "ID1",
"projectId": "project_public",
"createTime": "2025-06-13 12:58:16",
"updateTime": "2025-06-13 12:58:16",
"weight": 720,
"height": 1280,
"pixelDensity": 320,
"refreshRate": 30
},
{
"uuid": "c9a17ece45a111f0bfdd0242ac12000d",
"name": "ID2",
"projectId": "project_public",
"createTime": "2025-06-13 12:58:16",
"updateTime": "2025-06-13 12:58:16",
"weight": 1280,
"height": 720,
"pixelDensity": 320,
"refreshRate": 30
},
{
"uuid": "cdd2c57c45a111f0bfdd0242ac12000d",
"name": "ID3",
"projectId": "project_public",
"createTime": "2025-06-13 12:58:16",
"updateTime": "2025-06-13 12:58:16",
"weight": 1080,
"height": 1920,
"pixelDensity": 320,
"refreshRate": 60
},
{
"uuid": "cfa7b8c745a111f0bfdd0242ac12000d",
"name": "ID4",
"projectId": "project_public",
"createTime": "2025-06-13 12:58:16",
"updateTime": "2025-06-13 12:58:16",
"weight": 1920,
"height": 1080,
"pixelDensity": 320,
"refreshRate": 60
}
],
"total": 4,
"current": 1,
"pages": 1,
"size": 10
},
"timestamp": 1750044687220,
"traceId": "C20250616113127220345"
}
18. Список статусов запуска/остановки контейнеров на плате
Адрес интерфейса:/v2/instance/stopStatus/list
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.7.0
Описание интерфейса:
Постраничный запрос статуса запуска/остановки контейнеров, возвращает соответствующий статус запуска/остановки контейнеров
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| armCardSns | SN платы | body | false | List<String> | Запрос по указанным SN плат, максимум 200 |
| pageNum | Номер текущей страницы | body | false | integer | По умолчанию 1 |
| pageSize | Количество данных на текущей странице | body | false | integer | По умолчанию 10 |
Пример запроса, в фактическом запросе замените значения параметров:
POST "/openapi/v2/instance/stopStatus/list"
body:
{
"armCardSns": [
"132322",
"132322"
],
"pageNum": 1,
"pageSize": 10
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | IPage<object> | |
| records | Список данных текущей страницы | list<object> | |
| sn | sn платы | string | |
| uuid | uuid вычислительного контейнера | string | |
| stopStatus | Статус остановки контейнера | boolean | true:остановить,false:запустить |
| total | Общее количество записей | integer | |
| current | Номер текущей страницы | integer | |
| pages | Общее количество страниц | integer | |
| size | Количество строк на странице | integer | |
| traceId | ID обработки запроса | string | |
| timestamp | Временная метка | integer(int64) |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"sn": "OR65Q61QC2D240402563",
"uuid": "c0e226e745a111f0bfdd0242ac12000a",
"stopStatus": true
},
{
"sn": "OR65Q61QC2D240402564",
"uuid": "c0e226e745a111f0bfdd0242ac12000c",
"stopStatus": true
}
],
"total": 1,
"current": 1,
"pages": 1,
"size": 10
},
"timestamp": 1751597826079,
"traceId": "C20250704105706079185"
}