

Aviso de fin del soporte: el 7 de octubre de 2026 AWS finalizará el soporte para AWS Proton. Después del 7 de octubre de 2026, ya no podrás acceder a la AWS Proton consola ni a AWS Proton los recursos. La infraestructura implementada permanecerá intacta. Para obtener más información, consulte la [Guía AWS Proton de obsolescencia y migración del servicio](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Crear un servicio
<a name="ag-create-svc"></a>

Para implementar una aplicación AWS Proton, como desarrollador, debe crear un servicio y proporcionar las siguientes entradas.

1. El nombre de una plantilla de AWS Proton servicio publicada por el equipo de la plataforma.

1. Un nombre para el servicio.

1. El número de instancias de servicio que desee implementar.

1. Una selección de entornos que desee utilizar.

1. Una conexión al repositorio de código si se utiliza una plantilla de servicio que incluya una canalización de servicios (opcional).

## ¿Qué hay en un servicio?
<a name="ag-create-svc.info"></a>

Al crear un AWS Proton servicio, puede elegir entre dos tipos diferentes de plantillas de servicio:
+ Una plantilla de servicio que incluye una canalización de servicios (predeterminada).
+ Una plantilla de servicio que *no* incluye una canalización de servicios.

Debe crear al menos una instancia de servicio al crear el servicio.

Una instancia de servicio y una canalización opcional están asociadas a un servicio. Solo puede crear o eliminar una canalización en el contexto de las acciones de *creación* y *eliminación* de servicios. Para obtener información sobre cómo agregar y eliminar instancias de un servicio, consulte [Edición de un servicio](ag-svc-update.md).

**nota**  
Su entorno está configurado para el aprovisionamiento autogestionado o AWS para el aprovisionamiento autogestionado. AWS Proton aprovisiona servicios en un entorno mediante el mismo método de aprovisionamiento que utiliza el entorno. El desarrollador que crea o actualiza las instancias de servicio no verá ninguna diferencia y su experiencia será la misma en ambos casos.  
Para obtener más información acerca de los métodos de aprovisionamiento, consulte [¿Cómo AWS Proton aprovisiona la infraestructura](ag-works-prov-methods.md).

## Plantillas de servicio
<a name="ag-create-svc.templates"></a>

Están disponibles las versiones principales y secundarias de las plantillas de servicio. Al utilizar la consola, se selecciona la versión principal y secundaria `Recommended` más reciente de la plantilla de servicio. Cuando utiliza la AWS CLI y especifica solo la versión principal de la plantilla de servicio, especifica implícitamente su última versión `Recommended` secundaria.

A continuación se describe la diferencia entre las versiones principales y secundarias de la plantilla y su uso.
+ Las nuevas versiones de una plantilla pasarán a ser `Recommended` en cuanto un miembro del equipo de la plataforma las aprueba. Esto significa que los nuevos servicios se crean con esa versión y se pide al usuario que actualice los servicios existentes a la nueva versión.
+ De este AWS Proton modo, el equipo de la plataforma puede actualizar automáticamente las instancias de servicio a una nueva versión secundaria de una plantilla de servicio. Las versiones secundarias deben ser compatibles con versiones anteriores. 
+ Como las versiones principales requieren que se proporcionen nuevas entradas como parte del proceso de actualización, el usuario debe actualizar el servicio a una versión principal de la plantilla de servicio. Las versiones principales *no son* compatibles con versiones anteriores.

## Crear un servicio
<a name="ag-create-svc.procedure"></a>

Los siguientes procedimientos muestran cómo utilizar la AWS Proton consola o cómo AWS CLI crear un servicio con o sin una canalización de servicios.

------
#### [ Consola de administración de AWS ]

**Cree un servicio como se muestra en los siguientes pasos de la consola.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), seleccione **Configuración**.

1. Elija **Crear servicio**.

1. En la página **Elegir una plantilla de servicio**, seleccione una plantilla y elija **Configurar**.

   Si *no* quiere utilizar una canalización habilitada, elija una plantilla marcada con *Excluye la canalización* para el servicio.

1. En la página **Configurar servicio**, en la sección **Configuración del servicio**, introduzca un **Nombre del servicio**.

1. (Opcional) Escriba una descripción para el servicio.

1. 

**En la sección **Configuración del repositorio de servicios**:**

   1. Para **CodeStar Connection**, elija su conexión de la lista.

   1. En **ID del repositorio**, elija de la lista el nombre del repositorio que contenga el código fuente.

   1. En **Nombre de la ramificación**, elija de la lista el nombre de la ramificación del repositorio de código fuente.

1. (Opcional) En la sección **Etiquetas**, seleccione **Agregar etiqueta** e introduzca una clave y un valor para crear una etiqueta administrada por el cliente.

1. Elija **Siguiente**.

1. En la página **Configurar ajustes personalizados**, en la sección **Instancias de servicio**, en la sección **Nueva instancia**. Debe introducir valores para los parámetros `required`. Puede introducir valores para los parámetros `optional`, o bien utilizar los valores predeterminados si los hubiera.

1. En la sección de **Entradas de canalización**, debe introducir valores para los parámetros `required`. Puede introducir valores para los parámetros `optional`, o bien utilizar los valores predeterminados si los hubiera.

1. Seleccione **Siguiente** y revise las entradas.

1. Seleccione **Crear**.

   Vea los detalles y el estado del servicio, así como las etiquetas AWS administradas y las etiquetas administradas por el cliente para su servicio.

1. En el panel de navegación, elija **Servicios**.

   Una nueva página muestra una lista de los servicios del usuario junto con el estado y otros detalles de los servicios.

------
#### [ AWS CLI ]

Cuando usas AWS CLI, especificas las entradas del servicio en un `spec` archivo con formato YAML`.aws-proton/service.yaml`, ubicado en tu directorio de código fuente.

Puede utilizar el comando `get-service-template-minor-version` de la CLI para ver los parámetros obligatorios y opcionales del esquema para los que se proporcionan valores en el archivo de especificaciones.

Si desea utilizar una plantilla de servicio que tenga `pipelineProvisioning: "CUSTOMER_MANAGED"`, *no* incluya la sección `pipeline:` en la especificación *ni* incluya los parámetros `-repository-connection-arn`, `-repository-id` y `-branch-name` en el comando `create-service`.

**Cree un servicio con una canalización de servicios, como se muestra en los siguientes pasos de la CLI.**

1. **Configure el [rol de servicio](security_iam_service-role-policy-examples.md#codepipeline-proton-svc-role) para la canalización como se muestra en el siguiente comando de ejemplo de la CLI.**

   Comando:

   ```
   $ aws proton update-account-settings \
           --pipeline-service-role-arn "arn:aws:iam::{{123456789012}}:role/{{AWS ProtonServiceRole}}"
   ```

1. En la siguiente lista se muestra un ejemplo de especificación, basado en el esquema de la plantilla de servicio, que incluye la canalización de servicios y las entradas de la instancia.

   Especificación:

   ```
   proton: ServiceSpec
   
   pipeline:
     my_sample_pipeline_required_input: "hello"
     my_sample_pipeline_optional_input: "bye"
   
   instances:
     - name: "acme-network-dev"
       environment: "ENV_NAME"
       spec:
         my_sample_service_instance_required_input: "hi"
         my_sample_service_instance_optional_input: "ho"
   ```

   **Cree un servicio con una canalización, como se muestra en el siguiente ejemplo de comando y respuesta de la CLI.**

   Comando:

   ```
   $ aws proton create-service \
           --name "{{MySimpleService}}" \
           --branch-name "{{mainline}}" \
           --template-major-version "{{1}}" \
           --template-name "{{fargate-service}}" \
           --repository-connection-arn "arn:aws:codestar-connections:{{region-id}}:{{123456789012}}:connection/{{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}" \
           --repository-id "{{myorg/myapp}}" \
           --spec "{{file://spec.yaml}}"
   ```

   Respuesta:

   ```
   {
       "service": {
           "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
           "createdAt": "2020-11-18T19:50:27.460000+00:00",
           "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00",
           "name": "MySimpleService",
           "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
           "repositoryId": "myorg/myapp",
           "status": "CREATE_IN_PROGRESS",
           "templateName": "fargate-service"
       }
   }
   ```

**Cree un servicio sin una canalización de servicios, como se muestra en el siguiente ejemplo de comando y respuesta de la CLI.**

A continuación, se muestra un ejemplo de especificación que *no* incluye las entradas de la canalización de servicios.

Especificación:

```
proton: ServiceSpec

instances:
  - name: "acme-network-dev"
    environment: "ENV_NAME"
    spec:
      my_sample_service_instance_required_input: "hi"
      my_sample_service_instance_optional_input: "ho"
```

**Para crear un servicio *sin* una canalización de servicios aprovisionada, debe proporcionar la ruta a un archivo `spec.yaml` y *no* incluir los parámetros del repositorio, como se muestra en el siguiente ejemplo de comando y respuesta de la CLI.**

Comando:

```
$ aws proton create-service \
        --name "{{MySimpleServiceNoPipeline}}" \
        --template-major-version "{{1}}" \
        --template-name "{{fargate-service}}" \
        --spec "{{file://spec-no-pipeline.yaml}}"
```

Respuesta:

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleServiceNoPipeline",
        "createdAt": "2020-11-18T19:50:27.460000+00:00",
        "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00",
        "name": "MySimpleServiceNoPipeline",
        "status": "CREATE_IN_PROGRESS",
        "templateName": "fargate-service-no-pipeline"
    }
}
```

------