Share via


서비스 만들기

지정된 Service Fabric 서비스를 만듭니다.

이 api를 사용하면 지정된 Service Fabric 애플리케이션에서 새 Service Fabric 상태 비저장 또는 상태 저장 서비스를 만들 수 있습니다. 서비스를 만들기 위한 설명에는 배치 및 부하 분산을 위한 분할 정보 및 선택적 속성이 포함됩니다. 일부 속성은 나중에 API를 사용하여 UpdateService 수정할 수 있습니다.

요청

메서드 요청 URI
POST /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout}

매개 변수

속성 형식 필수 위치
applicationId 문자열 경로
api-version 문자열 쿼리
timeout 정수(int64) 아니요 쿼리
ServiceDescription ServiceDescription yes 본문

applicationId

형식: 문자열
필수: 예

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


api-version

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

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

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

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


timeout

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

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


ServiceDescription

형식: ServiceDescription
필수: 예

서비스를 만드는 데 필요한 정보입니다.

응답

HTTP 상태 코드 설명 응답 스키마
202(수락됨) 작업이 성공하면 202 상태 코드가 반환됩니다.
다른 모든 상태 코드 자세한 오류 응답입니다.
FabricError

예제

기본 상태 비정상 서비스

이 예제에서는 기본 상태 비정상 Service Fabric 서비스를 만드는 방법을 보여 줍니다.

요청

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
본문
{
  "ServiceKind": "Stateless",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test1",
  "ServiceTypeName": "StatelessFrontendService",
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "InstanceCount": "4"
}

202 응답

본문

응답 본문은 비어 있습니다.

기본 상태 저장 서비스

이 예제에서는 기본 상태 저장 Service Fabric 서비스를 만드는 방법을 보여 줍니다.

요청

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
본문
{
  "ServiceKind": "Stateful",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test2",
  "ServiceTypeName": "StatefulBackendService",
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "TargetReplicaSetSize": "3",
  "MinReplicaSetSize": "2",
  "HasPersistedState": false
}

202 응답

본문

응답 본문은 비어 있습니다.

DNS 이름 및 자동 크기 조정을 포함하는 상태 비 상태 비지정 서비스

이 예제에서는 DNS 이름을 정의하고 CPU 사용량을 기반으로 자동 크기 조정을 사용하여 상태 비 상태 비정상 Service Fabric 서비스를 만드는 방법을 보여 줍니다.

요청

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
본문
{
  "ServiceKind": "Stateless",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test1",
  "ServiceTypeName": "StatelessFrontendService",
  "InitializationData": [],
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "InstanceCount": "2",
  "PlacementConstraints": "Color==Blue",
  "CorrelationScheme": [],
  "ServiceLoadMetrics": [],
  "ServicePlacementPolicies": [],
  "DefaultMoveCost": "Low",
  "IsDefaultMoveCostSpecified": true,
  "ServicePackageActivationMode": "ExclusiveProcess",
  "ServiceDnsName": "test1.test",
  "ScalingPolicies": [
    {
      "ScalingTrigger": {
        "Kind": "AveragePartitionLoad",
        "MetricName": "servicefabric:/_CpuCores",
        "LowerLoadThreshold": "0.300000",
        "UpperLoadThreshold": "0.800000",
        "ScaleIntervalInSeconds": "600"
      },
      "ScalingMechanism": {
        "Kind": "PartitionInstanceCount",
        "MinInstanceCount": "1",
        "MaxInstanceCount": "6",
        "ScaleIncrement": "2"
      }
    }
  ]
}

202 응답

본문

응답 본문은 비어 있습니다.

명명된 파티션 및 자동 크기 조정을 사용하는 상태 저장 서비스

이 예제에서는 메모리 사용량에 따라 명명된 파티션 및 크기 조정을 사용하도록 설정된 상태 저장 Service Fabric 서비스를 만드는 방법을 보여 줍니다.

요청

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
본문
{
  "ServiceKind": "Stateful",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test2",
  "ServiceTypeName": "StatefulBackendService",
  "InitializationData": [],
  "PartitionDescription": {
    "PartitionScheme": "Named",
    "Count": "1",
    "Names": [
      "0"
    ]
  },
  "TargetReplicaSetSize": "3",
  "MinReplicaSetSize": "2",
  "HasPersistedState": true,
  "ServicePackageActivationMode": "ExclusiveProcess",
  "ScalingPolicies": [
    {
      "ScalingTrigger": {
        "Kind": "AverageServiceLoad",
        "MetricName": "servicefabric:/_MemoryInMB",
        "LowerLoadThreshold": "500",
        "UpperLoadThreshold": "900",
        "ScaleIntervalInSeconds": "600",
        "UseOnlyPrimaryLoad": false
      },
      "ScalingMechanism": {
        "Kind": "AddRemoveIncrementalNamedPartition",
        "MinPartitionCount": "1",
        "MaxPartitionCount": "3",
        "ScaleIncrement": "1"
      }
    }
  ]
}

202 응답

본문

응답 본문은 비어 있습니다.