Creación de un servicio
Crea el servicio de Service Fabric especificado.
Esta API permite crear un servicio con estado o sin estado de Service Fabric en una aplicación de Service Fabric especificada. La descripción para crear el servicio incluye información de creación de particiones y propiedades opcionales para la selección de ubicación y el equilibrio de carga. Algunas de las propiedades se pueden modificar más adelante mediante UpdateService
la API.
Solicitud
Método | URI de solicitud |
---|---|
POST | /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout} |
Parámetros
Nombre | Tipo | Requerido | Location |
---|---|---|---|
applicationId |
string | Sí | Ruta de acceso |
api-version |
string | Sí | Consultar |
timeout |
entero (int64) | No | Consultar |
ServiceDescription |
ServiceDescription | Sí | Body |
applicationId
Tipo: cadena
Obligatoria: sí
La identidad de la aplicación. Este suele ser el nombre completo de la aplicación sin el esquema de URI "fabric:"
A partir de la versión 6.0, los nombres jerárquicos se delimitan con el carácter "~".
Por ejemplo, si el nombre de la aplicación es "fabric:/myapp/app1", la identidad de la aplicación sería "myapp~app1" en 6.0+ y "myapp/app1" en las versiones anteriores.
api-version
Tipo: cadena
Obligatoria: sí
Predeterminado:
La versión de la API. Este parámetro es necesario y su valor debe ser "6.0".
La versión de la API REST de Service Fabric se basa en la versión en tiempo de ejecución en la que se introdujo o se cambió la API. El entorno de ejecución de Service Fabric admite más de una versión de la API. Esta es la versión compatible más reciente de la API. Si se pasa una versión de API anterior, la respuesta devuelta puede ser diferente de la documentada en esta especificación.
Además, el tiempo de ejecución acepta cualquier versión superior a la versión compatible más reciente hasta la versión actual del entorno de ejecución. Por lo tanto, si la versión más reciente de la API es 6.0, pero si el tiempo de ejecución es 6.1, para facilitar la escritura de los clientes, el entorno de ejecución aceptará la versión 6.1 para esa API. Sin embargo, el comportamiento de la API será según la versión documentada 6.0.
timeout
Tipo: entero (int64)
Obligatoria: no
Predeterminado:
InclusiveMaximum: 4294967295
InclusiveMinimum: 1
Tiempo de espera del servidor para realizar la operación en segundos. Este tiempo de espera especifica el tiempo que el cliente está dispuesto a esperar a que se complete la operación solicitada. El valor predeterminado para este parámetro es 60 segundos.
ServiceDescription
Tipo: ServiceDescription
Obligatoria: sí
La información necesaria para crear un servicio.
Respuestas
Código de estado HTTP | Descripción | Esquema de respuesta |
---|---|---|
202 (Accepted) | Una operación correcta devolverá el código de estado 202. |
|
Todos los demás códigos de estado | Respuesta de error detallada. |
FabricError |
Ejemplos
Servicio sin estado básico
En este ejemplo se muestra cómo crear un servicio básico de Service Fabric sin estado.
Request
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Cuerpo
{
"ServiceKind": "Stateless",
"ApplicationName": "fabric:/test",
"ServiceName": "fabric:/test/test1",
"ServiceTypeName": "StatelessFrontendService",
"PartitionDescription": {
"PartitionScheme": "Singleton"
},
"InstanceCount": "4"
}
Respuesta 202
Cuerpo
El cuerpo de la respuesta está vacío.
Servicio con estado básico
En este ejemplo se muestra cómo crear un servicio de Service Fabric con estado básico.
Request
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Cuerpo
{
"ServiceKind": "Stateful",
"ApplicationName": "fabric:/test",
"ServiceName": "fabric:/test/test2",
"ServiceTypeName": "StatefulBackendService",
"PartitionDescription": {
"PartitionScheme": "Singleton"
},
"TargetReplicaSetSize": "3",
"MinReplicaSetSize": "2",
"HasPersistedState": false
}
Respuesta 202
Cuerpo
El cuerpo de la respuesta está vacío.
Servicio sin estado con el nombre DNS y el escalado automático
En este ejemplo se muestra cómo crear un servicio de Service Fabric sin estado con un nombre DNS definido y escalado automático en función del uso de cpu.
Request
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Cuerpo
{
"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"
}
}
]
}
Respuesta 202
Cuerpo
El cuerpo de la respuesta está vacío.
Servicio con estado con particiones con nombre y escalado automático
En este ejemplo se muestra cómo crear un servicio de Service Fabric con estado con particiones con nombre y escalado habilitado en función del uso de memoria.
Request
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Cuerpo
{
"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"
}
}
]
}
Respuesta 202
Cuerpo
El cuerpo de la respuesta está vacío.