Crear un servicio - AWS Proton

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

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

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

  2. Un nombre para el servicio.

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

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

  5. 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?

Cuando se crea un servicio de AWS Proton, se 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.

nota

El entorno del usuario está configurado para un aprovisionamiento autoadministrado o administrado por AWS. 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.

Plantillas de servicio

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. Al utilizar la AWS CLI y especificar solo la versión principal de la plantilla de servicio, se especifica implícitamente su última versión secundaria Recommended.

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.

  • A través de AWS Proton, 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

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

AWS Management Console
Cree un servicio como se muestra en los siguientes pasos de la consola.
  1. En la consola de AWS Proton, seleccione Configuración.

  2. Elija Create service.

  3. 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.

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

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

  6. En la sección Configuración del repositorio de servicios:
    1. Para Conexión de CodeStar, elija su conexión de la lista.

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

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

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

  8. Elija Siguiente.

  9. 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.

  10. 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.

  11. Seleccione Siguiente y revise las entradas.

  12. Seleccione Crear.

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

  13. 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

Al utilizar la AWS CLI, el usuario debe especificar las entradas del servicio en un archivo de spec con formato YAML, .aws-proton/service.yaml, ubicado en el 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 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/AWSProtonServiceRole"
  2. 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" } }