Share via


컨테이너 API 호출

Service Fabric 노드에 배포된 컨테이너에서 컨테이너 API를 호출합니다.

지정된 코드 패키지에 대해 Service Fabric 노드에 배포한 컨테이너에 대한 컨테이너 API를 호출합니다.

요청

메서드 요청 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 yes 본문

nodeName

형식: 문자열
필수: 예

노드의 이름입니다.


applicationId

형식: 문자열
필수: 예

애플리케이션 ID입니다. 일반적으로 'fabric:' URI 스키마가 없는 애플리케이션의 전체 이름입니다. 버전 6.0에서 시작하며, 계층적 이름이 "~" 문자로 구분됩니다. 예를 들어 애플리케이션 이름이 ‘fabric://myapp/app1’인 경우 애플리케이션 ID가 6.0 이상에서는 “myapp~app1”이고 이전 버전에서는 “myapp/app1”입니다.


api-version

형식: 문자열
필수: 예
기본: 6.2

API 버전입니다. 이 매개 변수는 필수이며 해당 값은 '6.2'여야 합니다.

Service Fabric REST API 버전은 API가 도입되었거나 변경된 런타임 버전을 기반으로 합니다. Service Fabric 런타임은 둘 이상의 API 버전을 지원합니다. 이 버전은 지원되는 최신 버전의 API입니다. 더 낮은 API 버전이 전달되면 반환된 응답이 이 사양에 설명된 응답과 다를 수 있습니다.

또한 런타임은 현재 버전의 런타임까지 지원되는 최신 버전보다 높은 모든 버전을 허용합니다. 따라서 최신 API 버전이 6.0이고 런타임이 6.1인 경우 런타임은 해당 API에 대해 버전 6.1을 수락합니다. 그러나 API의 동작은 문서화된 6.0 버전에 따라 다릅니다.


ServiceManifestName

형식: 문자열
필수: 예

Service Fabric 클러스터에 애플리케이션 유형의 일부로 등록된 서비스 매니페스트의 이름입니다.


CodePackageName

형식: 문자열
필수: 예

Service Fabric 클러스터에 애플리케이션 유형의 일부로 등록된 서비스 매니페스트에 지정된 코드 패키지의 이름입니다.


CodePackageInstanceId

형식: 문자열
필수: 예

Service Fabric 노드에 배포된 코드 패키지 인스턴스를 고유하게 식별하는 ID입니다.


timeout

형식: 정수(int64)
필수: 아니요
기본: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

작업을 수행하기 위한 서버 제한 시간(초)입니다. 이 시간 제한은 요청된 작업이 완료될 때까지 클라이언트가 기다릴 시간을 지정합니다. 이 매개 변수의 기본값은 60초입니다.


ContainerApiRequestBody

형식: ContainerApiRequestBody
필수: 예

컨테이너 API 호출을 위한 매개 변수

응답

HTTP 상태 코드 설명 응답 스키마
200(확인) 작업이 성공하면 지정된 코드 패키지에 대해 Service Fabric 노드에 배포된 컨테이너에 대한 200개의 상태 코드 및 컨테이너 API 응답이 반환됩니다.
ContainerApiResponse
다른 모든 상태 코드 자세한 오류 응답입니다.
FabricError

예제

컨테이너 로그 가져오기

이 예제에서는 노드에 배포된 코드 패키지에 대해 HTTP GET을 사용하여 컨테이너 API를 호출하는 방법을 보여줍니다.

요청

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"
  }
}

컨테이너 업데이트

이 예제에서는 노드에 배포된 코드 패키지에 대해 HTTP POST를 사용하여 컨테이너 API를 호출하는 방법을 보여줍니다.

요청

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"
  }
}