Share via


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 Ruta de acceso
api-version string Consultar
timeout entero (int64) No Consultar
ServiceDescription ServiceDescription 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.