서비스 만들기
지정된 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 응답
본문
응답 본문은 비어 있습니다.