Вызов API контейнера

Вызов API контейнера в контейнере, развернутом на узле Service Fabric.

Вызывает API контейнера, развернутого на узле Service Fabric для указанного пакета кода.

Запрос

Метод Универсальный код ресурса (URI) запроса
POST /Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName={ServiceManifestName}&CodePackageName={CodePackageName}&CodePackageInstanceId={CodePackageInstanceId}&timeout={timeout}

Параметры

Имя Тип Обязательно Расположение
nodeName строка Да Путь
applicationId строка Да Путь
api-version строка Да Запрос
ServiceManifestName строка Да Запрос
CodePackageName строка Да Запрос
CodePackageInstanceId строка Да Запрос
timeout целое число (int64) Нет Запрос
ContainerApiRequestBody ContainerApiRequestBody да Текст

nodeName

Тип: строка
Обязательный: да

Имя узла.


applicationId

Тип: строка
Обязательный: да

Идентификатор приложения. Обычно это полное имя приложения без схемы универсального кода ресурса (URI) "fabric:". Начиная с версии 6.0, иерархические имена разделяются знаком "~". Например, если имя приложения — "fabric:/myapp/app1", то в версии 6.0 и более поздних версиях идентификатором приложения будет "myapp~app1", а в предыдущих версиях идентификатором был бы "myapp/app1".


api-version

Тип: строка
Обязательный: да
По умолчанию: 6.2

Версия API. Этот параметр является обязательным и его значение должно быть "6.2".

Версия REST API Service Fabric основана на версии среды выполнения, в которой api был представлен или изменен. Среда выполнения Service Fabric поддерживает несколько версий API. Эта версия является последней поддерживаемой версией API. Если передается более ранжная версия API, возвращаемый ответ может отличаться от той, что описано в этой спецификации.

Кроме того, среда выполнения принимает любую версию, которая выше последней поддерживаемой версии, вплоть до текущей версии среды выполнения. Поэтому, если последняя версия API — 6.0, а среда выполнения — 6.1, среда выполнения примет версию 6.1 для этого API. Однако поведение API будет выполняться согласно описанной версии 6.0.


ServiceManifestName

Тип: строка
Обязательный: да

Имя манифеста службы, зарегистрированное для типа приложения в кластере Service Fabric.


CodePackageName

Тип: строка
Обязательный: да

Имя пакета кода, указанное в манифесте службы и зарегистрированное для типа приложения в кластере Service Fabric.


CodePackageInstanceId

Тип: строка
Обязательный: да

Уникальный идентификатор экземпляра пакета кода, развернутого на узле Service Fabric.


timeout

Тип: integer (int64)
Обязательный: нет
По умолчанию: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

Время ожидания сервера до выполнения операции в секундах. Время ожидания — промежуток времени, в течение которого клиент готов ждать выполнения запрошенной операции. Значение по умолчанию для этого параметра — 60 секунд.


ContainerApiRequestBody

Тип: ContainerApiRequestBody
Обязательный: да

Параметры для вызова API контейнера

Ответы

Код состояния HTTP Описание схеме ответа.
200 OK; Успешная операция вернет код состояния 200 и ответ API контейнера для контейнера, развернутого на узле Service Fabric для данного пакета кода.
ContainerApiResponse
Все остальные коды состояния Подробный ответ об ошибке.
FabricError

Примеры

Получение журналов контейнера

В этом примере показано, как вызвать API контейнера с помощью HTTP GET для пакета кода, развернутого на узле.

Запрос

POST http://localhost:19080/Nodes/Node01/$/GetApplications/samples/winnodejs/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName=NodeServicePackage&CodePackageName=NodeService.Code&CodePackageInstanceId=131668159770315380
Текст
{
  "UriPath": "/containers/{id}/logs?stdout=true&stderr=true"
}

Ответ 200

Текст
{
  "ContainerApiResult": {
    "Status": "200",
    "Content-Type": "text/plain; charset=utf-8",
    "Body": "vEthernet (Container NIC ec5c19b2) 172.17.201.44\n"
  }
}

Обновление контейнера

В этом примере показано, как вызвать API контейнера с помощью HTTP POST для пакета кода, развернутого на узле.

Запрос

POST http://localhost:19080/Nodes/N0020/$/GetApplications/samples/nodejs1/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName=NodeOnSF&CodePackageName=Code&CodePackageInstanceId=131673596679688285
Текст
{
  "HttpVerb": "POST",
  "UriPath": "/containers/{id}/update",
  "Body": "{ \"CpuShares\": 512}"
}

Ответ 200

Текст
{
  "ContainerApiResult": {
    "Status": "200",
    "Content-Type": "application/json",
    "Body": "{\"Warnings\":null}\n"
  }
}