Creación de un entorno - 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.

Creación de un entorno

Obtenga información sobre cómo crear entornos de AWS Proton.

Puede crear un entorno de AWS Proton de las dos formas siguientes:
  • Cree, administre y aprovisione un entorno estándar mediante una plantilla de entorno estándar. AWS Proton aprovisiona la infraestructura para el entorno del usuario.

  • Conecte AWS Proton a la infraestructura administrada por el cliente mediante una plantilla de entorno administrado por el cliente. El usuario aprovisiona sus propios recursos compartidos de AWS Proton de forma externa y, a continuación, proporciona las salidas de aprovisionamiento que AWS Proton puede utilizar.

Puede elegir uno de los diversos enfoques de aprovisionamiento al crear un entorno.
  • Aprovisionamiento administrado por AWS: cree, administre y aprovisione un entorno en una sola cuenta. AWS Proton aprovisiona el entorno.

    Este método solo admite plantillas de infraestructura como código (IaC) de CloudFormation.

  • Aprovisionamiento administrado por AWS a otra cuenta: en una sola cuenta de administración, cree y administre un entorno que esté aprovisionado en otra cuenta con conexiones a cuentas de entorno. AWS Proton aprovisiona el entorno en la otra cuenta. Para obtener más información, consulte Creación de un entorno en una cuenta y aprovisionamiento en otra cuenta y Conexiones de cuentas de entorno.

    Este método solo es compatible con las plantillas de IaC de CloudFormation.

  • Aprovisionamiento autoadministrado: AWS Proton envía las solicitudes de extracción de aprovisionamiento a un repositorio vinculado con la propia infraestructura de aprovisionamiento del usuario.

    Este método solo es compatible con las plantillas de IaC de Terraform.

  • Aprovisionamiento de CodeBuild: AWS Proton utiliza AWS CodeBuild para ejecutar los comandos del intérprete de comandos que proporcione el usuario. Los comandos pueden leer las entradas que proporciona AWS Proton, y son responsables de aprovisionar o desaprovisionar la infraestructura y generar valores de salida. Un paquete de plantillas para este método incluye los comandos en un archivo de manifiesto y todos los programas, scripts u otros archivos que estos comandos puedan necesitar.

    Como ejemplo del uso del aprovisionamiento de CodeBuild, puede incluir código que utilice el AWS Cloud Development Kit (AWS CDK) para aprovisionar recursos de AWS y un manifiesto que instale el CDK y ejecute su código de CDK.

    Para obtener más información, consulte CodeBuild paquete de plantillas de aprovisionamiento.

    nota

    Puede utilizar el aprovisionamiento de CodeBuild con entornos y servicios. En este momento, no puede aprovisionar componentes de esta forma.

Con el aprovisionamiento administrado por AWS (tanto en la misma cuenta como en otra cuenta), AWS Proton realiza llamadas directas para aprovisionar los recursos del usuario.

Con el aprovisionamiento autoadministrado, AWS Proton realiza solicitudes de extracción para proporcionar archivos de IaC compilados que el motor de IaC utiliza para aprovisionar recursos.

Para obtener más información, consulte Cómo AWS Proton aprovisiona la infraestructura, Paquetes de plantillas y Requisitos de esquema para los paquetes de plantillas de entorno.

Creación y aprovisionamiento de un entorno estándar en la misma cuenta

Utilice la consola o la AWS CLI para crear y aprovisionar un entorno en una sola cuenta. AWS administra el aprovisionamiento.

AWS Management Console
Uso de la consola para crear y aprovisionar un entorno en una sola cuenta
  1. En la consola de AWS Proton, elija Entornos.

  2. Seleccione Crear entorno.

  3. En la página Elegir una plantilla de entorno, seleccione una plantilla y elija Configurar.

  4. En la página Configurar entorno, en la sección Aprovisionamiento, elija Aprovisionamiento administrado por AWS.

  5. En la sección Cuenta de implementación, elija Esta Cuenta de AWS.

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

  7. (Opcional) Escriba una descripción para el entorno.

  8. En la sección Roles de entorno, seleccione el rol de servicio de AWS Proton que se creó como parte de Configuración de funciones de AWS Proton servicio.

  9. (Opcional) En la sección Rol de componente, seleccione un rol de servicio que permita que los componentes definidos directamente se ejecuten en el entorno y reduzca los recursos que pueden aprovisionar. Para obtener más información, consulte Componentes de AWS Proton.

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

  11. Elija Siguiente.

  12. En la página Configurar ajustes personalizados del entorno, 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.

  13. Seleccione Siguiente y revise las entradas.

  14. Seleccione Crear.

    Consulte los detalles y el estado del entorno, así como las etiquetas administradas por AWS y las etiquetas administradas por el cliente para dicho entorno.

  15. En el panel de navegación, elija Entornos.

    Una nueva página mostrará una lista de sus entornos junto con el estado y otros detalles del entorno.

AWS CLI

Utilice la AWS CLI para crear y aprovisionar un entorno en una sola cuenta.

Para crear un entorno, especifique el ARN del rol de servicio de AWS Proton, la ruta al archivo de especificaciones, el nombre del entorno, el ARN de la plantilla de entorno, las versiones principal y secundaria y la descripción (opcional).

Los siguientes ejemplos muestran un archivo de especificaciones con formato YAML que especifica los valores de dos entradas en función de lo que se haya definido en el archivo de esquema de la plantilla del entorno. Puede utilizar el comando get-environment-template-minor-version para ver el esquema de la plantilla de entorno.

proton: EnvironmentSpec spec: my_sample_input: "the first" my_other_sample_input: "the second"

Cree un entorno mediante la ejecución del siguiente comando.

$ aws proton create-environment \ --name "MySimpleEnv" \ --template-name simple-env \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole" \ --spec "file://env-spec.yaml"

Respuesta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2020-11-11T23:03:05.405000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2020-11-11T23:03:05.405000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/ProtonServiceRole", "templateName": "simple-env" } }

Tras crear un nuevo entorno, se podrá ver una lista de etiquetas administradas por el cliente y por AWS, tal y como se muestra en el siguiente comando de ejemplo. AWS Proton genera automáticamente las etiquetas administradas por AWS para el usuario. También puede modificar y crear etiquetas administradas por el cliente mediante la AWS CLI. Para obtener más información, consulte Recursos y etiquetado de AWS Proton.

Comando:

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv"

Creación de un entorno en una cuenta y aprovisionamiento en otra cuenta

Utilice la consola o la AWS CLI cree un entorno estándar en una cuenta de administración que aprovisione la infraestructura del entorno en otra cuenta. AWS administra el aprovisionamiento.

Antes de utilizar la consola o la CLI, complete los siguientes pasos.
  1. Identifique los ID de las Cuenta de AWS para la cuenta de administración y de entorno y cópielos para utilizarlos más adelante.

  2. En la cuenta de entorno, cree un rol de servicio AWS Proton con los permisos mínimos que desee crear en el entorno. Para obtener más información, consulte AWS Proton rol de servicio para el aprovisionamiento mediante AWS CloudFormation.

AWS Management Console
Utilice la consola para crear un entorno en una cuenta y aprovisionar dicho entorno en otra.
  1. En la cuenta de entorno, cree una conexión de cuenta de entorno y utilícela para enviar una solicitud de conexión a la cuenta de administración.
    1. En la consola de AWS Proton, seleccione Conexiones de cuentas de entorno en el panel de navegación.

    2. En la página Conexiones de cuentas de entorno, seleccione Solicitud de conexión.

      nota

      Compruebe que el ID de la cuenta que aparece en el encabezado de la página Conexión de cuenta del entorno coincida con el ID de la cuenta del entorno previamente identificado.

    3. En la página Solicitud de conexión, en la sección Rol de entorno, seleccione el Rol de servicio existente y el nombre del rol de servicio que se creó para el entorno.

    4. En la sección Conectarse a una cuenta de administración, introduzca el ID de la cuenta de administración y un Nombre del entorno para el entorno de AWS Proton. Copie el nombre para utilizarlo más adelante.

    5. Seleccione Solicitud de conexión en la esquina inferior derecha de la página.

    6. Su solicitud aparecerá como pendiente en la tabla de conexiones del entorno enviadas a una cuenta de administración y un modal mostrará cómo aceptar la solicitud de la cuenta de administración.

  2. En la cuenta de administración, acepte una solicitud de conexión desde la cuenta de entorno.
    1. Inicie sesión en la cuenta de administración y seleccione Conexiones de cuentas de entorno en la consola de AWS Proton.

    2. En la página Conexiones de cuentas de entorno, en la tabla Solicitudes de conexión de cuentas de entorno, seleccione la conexión de la cuenta de entorno con el ID de la cuenta de entorno que coincida con el ID de la cuenta de entorno previamente identificado.

      nota

      Compruebe que el ID de la cuenta que aparece en el encabezado de la página Conexión de cuenta del entorno coincida con el ID de la cuenta de administración previamente identificado.

    3. Elija Aceptar. El estado cambia de PENDIENTE a CONECTADO.

  3. En la cuenta de administración, cree un entorno.
    1. En el panel de navegación, elija Plantillas de entorno.

    2. En la página de Plantillas de entorno, elija Crear plantilla de entorno.

    3. En la página Elegir una plantilla de entorno, elija una plantilla de entorno.

    4. En la página Configurar entorno, en la sección Aprovisionamiento, elija Aprovisionamiento administrado por AWS.

    5. En la sección Cuenta de implementación, elija Otra cuenta de AWS.

    6. En la sección Detalles del entorno, seleccione la Conexión de cuenta de entorno y el Nombre del entorno.

    7. Elija Siguiente.

    8. Rellene los formularios y seleccione Siguiente hasta llegar a la página Revisar y crear.

    9. Revise y elija Crear entorno.

AWS CLI

Utilice la AWS CLI para crear un entorno en una cuenta y aprovisionar dicho entorno en otra.

En la cuenta de entorno, cree una conexión de cuenta de entorno y solicite la conexión; para ello, ejecute el siguiente comando.

$ aws proton create-environment-account-connection \ --environment-name "simple-env-connected" \ --role-arn "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" \ --management-account-id "111111111111"

Respuesta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "PENDING" } }

En la cuenta de administración, acepte la solicitud de conexión a la cuenta de entorno; para ello, ejecute el siguiente comando.

$ aws proton accept-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Respuesta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Ejecute el siguiente comando para ver la conexión de cuenta de entorno.

$ aws proton get-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Respuesta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

En la cuenta de administración, ejecute el siguiente comando para crear un entorno.

$ aws proton create-environment \ --name "simple-env-connected" \ --template-name simple-env-template \ --template-major-version "1" \ --template-minor-version "1" \ --spec "file://simple-env-template/specs/original.yaml" \ --environment-account-connection-id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Respuesta:

{ "environment": { "arn": "arn:aws:proton:region-id:111111111111:environment/simple-env-connected", "createdAt": "2021-04-28T23:02:57.944000+00:00", "deploymentStatus": "IN_PROGRESS", "environmentAccountConnectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "lastDeploymentAttemptedAt": "2021-04-28T23:02:57.944000+00:00", "name": "simple-env-connected", "templateName": "simple-env-template" } }

Creación y aprovisionamiento de un entorno mediante el aprovisionamiento autoadministrado

Al utilizar el aprovisionamiento autoadministrado, AWS Proton envía las solicitudes de extracción de aprovisionamiento a un repositorio vinculado con la propia infraestructura de aprovisionamiento del usuario. Las solicitudes de extracción inician el flujo de trabajo propio del usuario, que consiste en llamar a los servicios de AWS para aprovisionar la infraestructura.

Consideraciones sobre el aprovisionamiento autoadministrado:
  • Antes de crear un entorno, configure un directorio de recursos del repositorio para el aprovisionamiento autoadministrado. Para obtener más información, consulte AWS Proton infraestructura como archivos de código.

  • Tras crear el entorno, AWS Proton espera a recibir notificaciones asincrónicas sobre el estado del aprovisionamiento de la infraestructura. El código de aprovisionamiento debe utilizar la API de AWS Proton NotifyResourceStateChange para enviar estas notificaciones asíncronas a AWS Proton.

Puede utilizar el aprovisionamiento autoadministrado en la consola o con la AWS CLI. En los siguientes ejemplos se muestra cómo se puede utilizar el aprovisionamiento autoadministrado con Terraform.

AWS Management Console
Utilice la consola para crear un entorno de Terraform mediante el aprovisionamiento autoadministrado.
  1. En la consola de AWS Proton, elija Entornos.

  2. Seleccione Crear entorno.

  3. En la página Elegir una plantilla de entorno, seleccione una plantilla de Terraform y elija Configurar.

  4. En la página Configurar entorno, en la sección Aprovisionamiento, elija Aprovisionamiento autoadministrado.

  5. En la sección Detalles del repositorio de aprovisionamiento:

    1. Si aún no ha vinculado su repositorio de aprovisionamiento a AWS Proton, seleccione Nuevo repositorio, elija uno de los proveedores de repositorios y, a continuación, para la Conexión de Codestar, elija una de las conexiones.

      nota

      Si aún no tiene ninguna conexión a la cuenta del proveedor de repositorios correspondiente, seleccione Añadir una nueva conexión de CodeStar. A continuación, cree una conexión y después seleccione el botón de actualización situado junto al menú Conexión de CodeStar. Ahora debería poder elegir su nueva conexión en el menú.

      Si ya ha vinculado su repositorio a AWS Proton, seleccione Repositorio existente.

    2. En Nombre del repositorio, elija un repositorio. El menú desplegable muestra los repositorios vinculados para el Repositorio existente o la lista de repositorios de la cuenta del proveedor para el Nuevo repositorio.

    3. En Nombre de la ramificación, elija alguna de las ramificaciones del repositorio.

  6. En la sección Configuración del entorno, introduzca un Nombre del entorno.

  7. (Opcional) Escriba una descripción para el entorno.

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

  9. Elija Siguiente.

  10. En la página Configurar ajustes personalizados del entorno, 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 para enviar una solicitud de extracción.

    • Si aprueba la solicitud de extracción, la implementación estará en curso.

    • Si rechaza la solicitud de extracción, se cancelará la creación del entorno.

    • Si se agota el tiempo de espera de la solicitud de extracción, la creación del entorno no se completará.

  13. Consulte los detalles y el estado del entorno, así como las etiquetas administradas por AWS y las etiquetas administradas por el cliente para dicho entorno.

  14. En el panel de navegación, elija Entornos.

    Una nueva página mostrará una lista de sus entornos junto con el estado y otros detalles del entorno.

AWS CLI

Al crear un entorno mediante el aprovisionamiento autoadministrado, se añade el parámetro provisioningRepository y se omiten los parámetros ProtonServiceRoleArn y environmentAccountConnectionId.

Utilice la AWS CLI para crear un entorno de Terraform mediante el aprovisionamiento autoadministrado.
  1. Cree un entorno y envíe una solicitud de extracción al repositorio para su revisión y aprobación.

    Los siguientes ejemplos muestran un archivo de especificaciones con formato YAML que define los valores de dos entradas en función del archivo de esquema de la plantilla del entorno. Puede utilizar el comando get-environment-template-minor-version para ver el esquema de la plantilla de entorno.

    Especificación:

    proton: EnvironmentSpec spec: ssm_parameter_value: "test"

    Cree un entorno mediante la ejecución del siguiente comando.

    $ aws proton create-environment \ --name "pr-environment" \ --template-name "pr-env-template" \ --template-major-version "1" \ --provisioning-repository="branch=main,name=myrepos/env-repo,provider=GITHUB" \ --spec "file://env-spec.yaml"

    Respuesta:

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T17:06:58.679000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-11-18T17:06:58.679000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "templateName": "pr-env-template" }
  2. Revise la solicitud.

    • Si aprueba la solicitud, el aprovisionamiento pasará a estar en curso.

    • Si rechaza la solicitud, se cancelará la creación del entorno.

    • Si se agota el tiempo de espera de la solicitud de extracción, la creación del entorno no se completará.

  3. Proporcione el estado de aprovisionamiento de forma asíncrona a AWS Proton. En el siguiente ejemplo, se notifica a AWS Proton que el aprovisionamiento se ha realizado correctamente.

    $ aws proton notify-resource-deployment-status-change \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \ --status "SUCCEEDED"