Вызов 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"
}
}