Componentes de AWS Proton - 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.

Componentes de AWS Proton

Los componentes son un tipo de recurso de AWS Proton. Añaden flexibilidad a las plantillas de servicio. Los componentes proporcionan a los equipos de plataformas un mecanismo para ampliar los patrones de infraestructura principales y definir medidas de seguridad que permiten a los desarrolladores administrar aspectos de su infraestructura de aplicaciones.

En AWS Proton, los administradores definen la infraestructura estándar que se utiliza en todos los equipos de desarrollo y en las aplicaciones. Sin embargo, es posible que los equipos de desarrollo necesiten incluir recursos adicionales para sus casos de uso específicos, como las colas de Amazon Simple Queue Service (Amazon SQS) o las tablas de Amazon DynamoDB. Estos recursos específicos de la aplicación pueden cambiar con frecuencia, especialmente durante las primeras etapas del desarrollo de una aplicación. Mantener estos cambios frecuentes en las plantillas creadas por los administradores puede resultar difícil de administrar y escalar; los administradores tendrían que mantener muchas más plantillas sin un verdadero valor añadido para el administrador. La alternativa (permitir a los desarrolladores de aplicaciones crear plantillas para sus aplicaciones) tampoco es la ideal, ya que reduce la capacidad de los administradores de estandarizar los principales componentes de la arquitectura, como las tareas de AWS Fargate. Aquí es donde entran en juego los componentes.

Con un componente, un desarrollador puede agregar recursos adicionales a su aplicación, más allá de lo que los administradores definieron en las plantillas de entorno y servicio. A continuación, el desarrollador adjunta el componente a una instancia de servicio. AWS Proton aprovisiona los recursos de infraestructura definidos por el componente del mismo modo que aprovisiona los recursos para los entornos y las instancias de servicio.

Un componente puede leer las entradas de la instancia de servicio y proporcionar salidas a la instancia de servicio, para una experiencia totalmente integrada. Por ejemplo, si el componente agrega un bucket de Amazon Simple Storage Service (Amazon S3) para que lo utilice una instancia de servicio, la plantilla del componente puede tener en cuenta los nombres de las instancias de servicio y de entorno para darle un nombre al bucket. Cuando AWS Proton representa la plantilla de servicio para aprovisionar una instancia de servicio, la instancia de servicio puede hacer referencia al bucket y utilizarlo.

Los componentes que actualmente admite AWS Proton son los componentes definidos directamente. El archivo de infraestructura como código (IaC) que define la infraestructura del componente se transfiere directamente a la API de AWS Proton o a la consola. Esto es diferente a un entorno o servicio, en el que se define la IaC en un paquete de plantillas y se registra el paquete como un recurso de plantilla y, a continuación, se utiliza un recurso de plantilla para crear el entorno o el servicio.

nota

Los componentes definidos directamente permiten a los desarrolladores definir una infraestructura adicional y aprovisionarla. AWS Proton aprovisiona todos los componentes definidos directamente que se ejecutan en el mismo entorno y utilizan el mismo rol de AWS Identity and Access Management (IAM).

Un administrador puede controlar lo que los desarrolladores pueden hacer con los componentes de dos maneras:

  • Orígenes de componentes compatibles: un administrador puede permitir que se asocien componentes a las instancias de servicio en función de una propiedad de las versiones de las plantillas de servicio de AWS Proton. De forma predeterminada, los desarrolladores no pueden conectar componentes a las instancias de servicio.

    Para obtener más información sobre esta propiedad, consulte el parámetro supportedComponentSources de la acción de la API CreateServiceTemplateVersion en la Referencia de la API de AWS Proton.

    nota

    Cuando utiliza la sincronización de plantillas, AWS Proton crea versiones de plantillas de servicio de forma implícita al confirmar los cambios a un paquete de plantillas de servicio en un repositorio. En este caso, en lugar de especificar los orígenes de componentes compatibles durante la creación de la versión de la plantilla de servicio, el usuario debe especificar esta propiedad en un archivo asociado a cada versión principal de la plantilla de servicio. Para obtener más información, consulte Sincronización de plantillas de servicio.

  • Roles de componentes: un administrador puede asignar un rol de componente a un entorno. AWS Proton asume este rol al aprovisionar la infraestructura que define un componente definido directamente en el entorno. Por lo tanto, el rol de componente abarca la infraestructura que los desarrolladores pueden añadir mediante componentes definidos directamente en el entorno. Al no existir el rol de componente, los desarrolladores no pueden crear componentes definidos directamente en el entorno.

    Para obtener más información sobre la asignación de un rol de componente, consulte el parámetro componentRoleArn de la acción de la API CreateEnvironment en la Referencia de la API de AWS Proton.

    nota

    Los roles de los componentes no se utilizan en los entornos de Aprovisionamiento autoadministrado.

¿Cómo se comparan los componentes con otros recursos de AWS Proton?

En muchos sentidos, los componentes son similares a otros recursos de AWS Proton. Su infraestructura se define en un archivo de plantilla de IaC, creado en formato YAML de AWS CloudFormation o Terraform HCL. AWS Proton puede aprovisionar la infraestructura de componentes mediante el aprovisionamiento administrado por AWS o el aprovisionamiento autoadministrado.

Sin embargo, los componentes se diferencian de otros recursos de AWS Proton en varios aspectos:

  • Estado desconectado: los componentes están diseñados para conectarse a las instancias de servicio y ampliar su infraestructura, pero también pueden estar en un estado desconectado, en el que no están conectados a ninguna instancia de servicio. Para obtener más información sobre componentes del sistema, consulte Estados de los componentes.

  • No hay ningún esquema: los componentes no tienen ningún esquema asociado a diferencia de los paquetes de plantillas. Un servicio define las entradas de los componentes. Un componente puede consumir entradas cuando está conectado a una instancia de servicio.

  • No hay ningún componente administrado por el cliente: AWS Proton siempre aprovisiona al usuario la infraestructura de componentes. No hay ninguna versión de componentes del tipo “traiga sus propios recursos”. Para obtener más información sobre entornos administrados por el cliente, consulte Creación de un entorno.

  • No hay recursos de plantillas: los componentes definidos directamente no tienen ningún recurso de plantilla asociado similar a las plantillas de entorno y servicio. Debe proporcionar un archivo de plantilla de IaC directamente al componente. Del mismo modo, el usuario proporciona directamente un manifiesto que define el lenguaje de la plantilla y el motor de representación para aprovisionar la infraestructura del componente. El archivo de plantilla y el manifiesto se crean de forma similar a la creación de un paquete de plantillas. Sin embargo, con los componentes definidos directamente, no es necesario almacenar los archivos de IaC como paquetes en ubicaciones determinadas, ni se crea un recurso de plantilla en AWS Proton partir de archivos de IaC.

  • Sin aprovisionamiento basado en CodeBuild: no puede aprovisionar componentes definidos directamente mediante su propio script de aprovisionamiento personalizado, conocido como aprovisionamiento basado en CodeBuild. Para obtener más información, consulte Cómo funciona el aprovisionamiento de CodeBuild.

Componentes de la consola de AWS Proton

Utilice la consola de AWS Proton para crear, actualizar, ver y utilizar componentes de AWS Proton.

Las siguientes páginas de la consola están relacionadas con los componentes. Incluimos enlaces directos a las páginas de consolas de nivel superior.

  • Componentes: consulte la lista de componentes de su cuenta de AWS. Puede crear nuevos componentes y actualizar o eliminar los componentes existentes. Seleccione de la lista el nombre de algún componente para ver su página de detalles.

    También existen listas similares en las páginas Detalles del entorno y Detalles de la instancia de servicio. Estas listas muestran solo los componentes asociados al recurso que se está viendo. Al crear un componente a partir de una de estas listas, AWS Proton preselecciona el entorno asociado en la página Crear componente.

  • Detalles del componente: para ver la página de detalles del componente, elija el nombre de algún componente en la lista Componentes.

    En la página de detalles, consulte los detalles y el estado del componente y actualice o elimine el componente. Vea y administre las listas de salidas (por ejemplo, los ARN de recursos aprovisionados), las pilas de AWS CloudFormation aprovisionadas y las etiquetas asignadas.

  • Crear componente: cree un componente. Introduzca el nombre y la descripción del componente, elija los recursos asociados, especifique el archivo de IaC de origen del componente y asigne etiquetas.

  • Actualizar componente: para actualizar un componente, seleccione el componente en la lista Componentes y, a continuación, en el menú Acciones, elija Actualizar componente. Como alternativa, en las páginas de Detalles del componente, seleccione Actualizar.

    Puede actualizar la mayoría de los detalles del componente. No puede actualizar el nombre del componente. Además, puede elegir si desea volver a implementar o no el componente después de una actualización correcta.

  • Configurar el entorno: al crear o actualizar un entorno, puede especificar un rol de componente. Este rol controla la capacidad de ejecutar componentes definidos directamente en el entorno y proporciona permisos para aprovisionarlos.

  • Crear una nueva versión de la plantilla de servicio: al crear una versión de la plantilla de servicio, puede especificar los Orígenes de componentes compatibles para la versión de la plantilla. Esto controla la capacidad de asociar componentes a las instancias de servicio de los servicios basados en esta versión de plantilla.

Componentes de la API de AWS Proton y la AWS CLI

Utilice la API de AWS Proton o la AWS CLI para crear, actualizar, ver y usar componentes de AWS Proton.

Las siguientes acciones de la API administran directamente los recursos de los componentes de AWS Proton.

  • CreateComponent: para crear un componente de AWS Proton.

  • DeleteComponent: para eliminar un componente de AWS Proton.

  • GetComponent: para obtener datos detallados de un componente.

  • ListComponentOutputs: para obtener una lista de las salidas de los componentes de infraestructura como código (IaC).

  • ListComponentProvisionedResources: para enumerar los recursos aprovisionados para un componente con detalles.

  • ListComponents: lista de los componentes con datos resumidos. Puede filtrar la lista de resultados por entorno, por servicio o por una sola instancia de servicio.

Las siguientes acciones de API de otros recursos de AWS Proton tienen algunas funciones relacionadas con los componentes.

  • CreateEnvironment, UpdateEnvironment: utilice componentRoleArn para especificar el nombre de recurso de Amazon (ARN) del rol de servicio de IAM que utiliza AWS Proton al aprovisionar componentes directamente definidos en este entorno. Determina el alcance de la infraestructura que puede aprovisionar un componente definido directamente.

  • CreateServiceTemplateVersion: utilice supportedComponentSources para especificar los orígenes de componentes compatibles. Los componentes con orígenes compatibles se pueden asociar a las instancias de servicio en función de esta versión de plantilla de servicio.

Preguntas frecuentes sobre los componentes

¿Cuál es el ciclo de vida de un componente?

Los componentes pueden estar conectados o desconectados. Están diseñados para conectarse a una instancia de servicio y mejorar su infraestructura la mayor parte del tiempo. Los componentes desconectados se encuentran en un estado de transición que permite eliminar un componente o conectarlo a otra instancia de servicio de forma controlada y segura. Para obtener más información, consulte Estados de los componentes.

¿Por qué no puedo eliminar los componentes conectados?

Solución: para eliminar un componente conectado, actualice el componente para desconectarlo de la instancia de servicio, valide la estabilidad de la instancia de servicio y, a continuación, elimine el componente.

¿Por qué es necesario? Los componentes conectados proporcionan la infraestructura adicional que la aplicación necesita para realizar sus funciones de tiempo de ejecución. La instancia de servicio puede estar utilizando las salidas de los componentes para detectar y utilizar los recursos de esta infraestructura. Eliminar el componente y, por lo tanto, eliminar sus recursos de infraestructura, podría interrumpir la instancia de servicio conectada.

Como medida de seguridad adicional, AWS Proton requiere que actualice el componente y lo desconecte de su instancia de servicio antes de poder eliminarlo. A continuación, podrá validar la instancia de servicio para asegurarse de que sigue implementándose y funcionando correctamente. Si detecta algún problema, puede volver a conectar rápidamente el componente a la instancia de servicio y, a continuación, intentar solucionar el problema. Cuando tenga la certeza de que su instancia de servicio haya dejado de depender del componente, podrá eliminarlo de forma segura.

¿Por qué no puedo cambiar directamente la instancia de servicio conectada a un componente?

Solución: para cambiar la conexión, actualice el componente para desconectarlo de la instancia de servicio, valide la estabilidad del componente y de la instancia de servicio y, a continuación, conecte el componente a la nueva instancia de servicio.

¿Por qué es necesario? Un componente está diseñado para conectarse a una instancia de servicio. El componente puede utilizar las entradas de la instancia de servicio para la asignación de nombres y la configuración de los recursos de infraestructura. Cambiar la instancia de servicio conectada podría afectar negativamente al componente (además de provocar una posible interrupción en la instancia de servicio), tal y como se describe en la pregunta frecuente anterior: ¿Por qué no puedo eliminar los componentes conectados?). Por ejemplo, podría provocar el cambio de nombre, y posiblemente incluso la sustitución, de los recursos definidos en la plantilla de la IaC del componente.

Como medida de seguridad adicional, AWS Proton requiere que actualice el componente y lo desconecte de su instancia de servicio antes de poder conectarlo a otra instancia de servicio. A continuación, podrá validar la estabilidad tanto del componente como de la instancia de servicio antes de conectar el componente a la nueva instancia de servicio.