Tutorial: Creación de una aplicación full stack con esquemas PDK modulables
Amazon CodeCatalyst proporciona diversos esquemas con los que podrá empezar proyectos rápidamente. Un proyecto creado con un esquema incluye los recursos que necesita, como un repositorio de código fuente, ejemplos de código fuente, flujos de trabajo de CI/CD, informes de compilación y pruebas y herramientas integradas para el seguimiento de problemas. Sin embargo, a veces es posible que desee crear un proyecto de forma gradual, o añadir funcionalidad a un proyecto existente creado mediante un esquema. Esto también se puede hacer con esquemas. En este tutorial, se muestra cómo puede empezar con un único esquema que sirve de base y le permite almacenar todo el código del proyecto en un solo repositorio. A partir de ahí, tendrá la flexibilidad necesaria para incorporar recursos e infraestructura adicionales añadiendo nuevos esquemas según le convenga. A través de este método básico, puede abordar requisitos específicos en varios proyectos.
En este tutorial, se muestra cómo agrupar varios esquemas del kit de desarrollo de proyectos de AWS (AWS PDK) para crear una aplicación compuesta por un sitio web de React, una API de Smithy y la infraestructura de CDK de soporte para la implementación en AWS. AWS PDK proporciona los componentes básicos de los patrones comunes, junto con herramientas de desarrollo para administrar y crear proyectos. Para obtener más información, consulte el repositorio de código fuente de GitHub de AWS PDK
Los siguientes esquemas del PDK están diseñados para el uso conjunto con el fin de crear una aplicación modulable:
Monorepo
: crea un proyecto en el nivel raíz que administra las interdependencias entre los proyectos dentro de monorepo. El proyecto también proporciona almacenamiento en caché de compilación y visualización de dependencias. Type Safe API
: crea una API que se puede definir en Smithy u OpenAPI v3 , y administra la generación de código en tiempo de compilación para permitirle implementar la API e interactuar con esta de forma segura. Vende un constructo de CDK que administra la implementación de la API en API Gateway y configura la validación automática de las entradas. Cloudscape React Website
: crea un sitio web basado en React creado con Cloudscape que viene preintegrado con Cognito Auth y, opcionalmente, con la API que haya creado, lo que le permite llamar a su API de forma segura. Infraestructure
: crea un proyecto que configura toda la infraestructura relacionada con el CDK necesaria para implementar la aplicación. También viene preconfigurado para generar un diagrama basado en el código de CDK cada vez que se compila. DevOps
: crea flujos de trabajo de DevOps compatibles con los constructos que se encuentren en el kit de desarrollo de proyectos de AWS (AWS PDK).
El tutorial también incluye el proceso para ver el ejemplo implementado, invitar a otros usuarios a trabajar en él y hacer cambios en el código mediante solicitudes de extracción compiladas e implementadas automáticamente en recursos de la cuenta de AWS conectada cuando se combina la solicitud de extracción.
Al crear un proyecto compuesto por esquemas de PDK, se crea con los siguientes recursos en un proyecto de CodeCatalyst:
Un repositorio de código fuente configurado como monorepo.
Un flujo de trabajo que ejecuta un análisis de código estático y una verificación de licencias, además de compilar e implementar el código de muestra cada vez que haya un cambio en la ramificación predeterminada. Cada vez que hay cambios en el código, se genera un diagrama de arquitectura.
Un panel de problemas y un registro de tareas pendientes que puede usar para planificar el trabajo y hacer un seguimiento de este.
Un conjunto de informes de pruebas con informes automatizados.
Temas
- Requisitos previos
- Paso 1: crear un proyecto de monorepo
- Paso 2: añadir Type Safe API al proyecto
- Paso 3: añadir un sitio web de Cloudscape React para el proyecto
- Paso 4: generar la infraestructura para implementar la aplicación en la nube de AWS
- Paso 5: configurar un flujo de trabajo de DevOps para implementar el proyecto
- Paso 6: confirmar el flujo de trabajo de publicación y visualizar el sitio web
- Colaboración e iteración en el proyecto del PDK
Requisitos previos
Para crear y actualizar un proyecto, debe haber completado las tareas de Configuración e inicio de sesión en CodeCatalyst del siguiente modo:
-
Debe tener un ID de creador de AWS para iniciar sesión en CodeCatalyst.
-
Debe pertenecer a un espacio y tener asignado el rol de administrador del espacio o usuario avanzado en ese espacio. Para obtener más información, consulte Creación de un espacio, Concesión de permisos de espacio a los usuarios y Rol de administrador del espacio.
-
Debe tener una cuenta de AWS asociada a su espacio y el rol de IAM creado en el registro. Por ejemplo, durante el registro, tiene la opción de elegir crear un rol de servicio con una política de roles denominada CodeCatalystWorkflowDevelopmentRole-
spaceName
. El rol tendrá un nombreCodeCatalystWorkflowDevelopmentRole-
con un identificador único adjunto. Para obtener más información sobre los roles y la política de roles, consulte El funcionamiento del rol de servicio CodeCatalystWorkflowDevelopmentRole-spaceName. Si desea saber cuáles son los pasos para crear el rol, consulte Creación del rol CodeCatalystWorkflowDevelopmentRole-spaceName para su cuenta y su espacio.spaceName
Paso 1: crear un proyecto de monorepo
Comience con el esquema PDK - Monorepo para crear el código base de monorepo, que servirá de fundamento; podrá añadir esquemas de PDK adicionales.
Creación de un proyecto con el esquema PDK - Monorepo
Abra la consola de CodeCatalyst en https://codecatalyst.aws/
. -
En la consola de CodeCatalyst, vaya al espacio donde desee crear un proyecto.
-
En el panel de control del espacio, seleccione Crear proyecto.
-
Seleccione Empezar con un esquema.
-
Seleccione el esquema PDK - Monorepo y, luego, Siguiente.
-
En Asignar nombre al proyecto, introduzca el nombre que desea asignar al proyecto y los nombres de los recursos asociados. El nombre debe ser único dentro de su espacio.
-
En Contenido del proyecto, haga lo siguiente:
En Lenguaje de programación principal, elija el lenguaje en el que quiera desarrollar el código del proyecto. Puede elegir TypeScript, Java o Python.
Elija Configuración del código
En el campo de entrada de texto Repositorio de origen, introduzca el nombre de un repositorio de código fuente, que creará un repositorio nuevo, o seleccione uno de los repositorios vinculados existentes. El repositorio existente debe estar vacío. Para obtener más información, consulte Vinculación de un repositorio de código fuente.
(Opcional) En el menú desplegable Administrador de paquetes, seleccione un administrador de paquetes. Esto solo es necesario si ha seleccionado TypeScript como lenguaje de programación principal.
-
(Opcional) Para obtener una vista previa del código que se generará en función de las selecciones de parámetros de proyecto que haya hecho, seleccione Ver código desde Generar vista previa del proyecto.
-
(Opcional) Seleccione Ver detalles en la tarjeta del esquema para ver detalles específicos del esquema, como una descripción general de su arquitectura, las conexiones y los permisos necesarios y el tipo de recursos que crea.
-
Seleccione Crear proyecto para crear el proyecto monorepo. El proyecto de nivel raíz creado administra las interdependencias entre los proyectos de monorepo, además de proporcionar almacenamiento en caché de compilación y administración de dependencias.
Para obtener más información sobre los esquemas de proyectos, consulte Creación de un proyecto integral con esquemas de CodeCatalyst.
El esquema PDK - Monorepo solo genera la base del proyecto. Para crear con el esquema una aplicación que funcione, deberá añadir otros esquemas de PDK, como Type Safe API, Cloudscape React Website, Infrastructure o DevOps. En el siguiente paso, añadirá Type Safe API al proyecto.
Paso 2: añadir Type Safe API al proyecto
El esquema PDK - Type Safe API le permite definir una API mediante Smithy u OpenAI v3. Genera paquetes de tiempo de ejecución a partir de la definición de API, lo que incluye clientes para interactuar con la API y código en el servidor para implementar la API. El esquema también genera un constructo de CDK con seguridad de tipos para cada operación de la API. Puede añadir el esquema a un proyecto monorepo de PDK existente para añadir capacidades de API al proyecto.
Adición del esquema PDK - Type Safe API
-
En el panel de navegación del proyecto monorepo, elija Esquemas y, a continuación, Añadir esquema.
-
Seleccione el esquema PDK - Type Safe API y, luego, Siguiente.
-
En Configurar esquema, configure los parámetros del esquema:
En Lenguaje del modelo, elija el lenguaje en el que está definido el modelo de API.
En el campo de entrada de texto Espacio de nombres, introduzca un espacio de nombres para la API.
En el campo de entrada de texto Nombre de la API, introduzca un nombre para la API.
En Lenguaje de CDK, elija el lenguaje que prefiera para escribir la infraestructura del CDK en la que se implementará la API.
Seleccione el menú desplegable Lenguajes de los controladores y elija los lenguajes en los que quiera implementar los controladores para las operaciones de la API.
Seleccione el menú desplegable Formatos de documentación y, a continuación, elija los formatos que desee para generar la documentación de la API.
-
En la pestaña Cambios de código, revise los cambios propuestos. La diferencia que aparece en una solicitud de extracción muestra los cambios en su proyecto en el momento en el que se creó la solicitud de extracción.
-
Cuando esté satisfecho con los cambios propuestos que se llevarán a cabo cuando se aplique el esquema, seleccione Añadir esquema.
Tras crear una solicitud de extracción, podrá añadir comentarios. Los comentarios se pueden añadir a la solicitud de extracción o a líneas individuales de los archivos, así como a la solicitud de extracción en general. Puede añadir enlaces a un recurso, como archivos, utilizando el signo
@
seguido del nombre del archivo.nota
El esquema no se aplicará hasta que se apruebe y combine la solicitud de extracción. Para obtener más información, consulte Revisión de una solicitud de extracción y Combinación de una solicitud de extracción.
-
En la columna Estado, seleccione Solicitud de extracción pendiente para la fila del esquema PDK - Type Safe API y, a continuación, seleccione el enlace de la solicitud de extracción abierta.
-
Seleccione Combinar, elija la estrategia de combinación que desee y seleccione Combinar para incorporar los cambios del esquema aplicado.
Tras combinar la solicitud de extracción, se generará una nueva carpeta
packages/apis/
en el proyecto monorepo, que contiene todo el código fuente relacionado con la API para el Type Safe API configurado.mypdkapi
-
En el panel de navegación, seleccione Esquemas para confirmar que el Estado de PDK - Type Safe API aparezca como Actualizado.
Paso 3: añadir un sitio web de Cloudscape React para el proyecto
El esquema PDK - Cloudscape React Website genera un sitio web. Puede asociar un parámetro opcional (API de Type Safe) a fin de configurar automáticamente el sitio web para preparar clientes de Type Safe autenticados junto con un explorador de API interactivo para probar las distintas API.
Adición del esquema PDK - Cloudscape React Website
-
En el panel de navegación del proyecto monorepo, elija Esquemas y, a continuación, Añadir esquema.
-
Elija el esquema PDK - Cloudscape React Website y seleccione Siguiente.
-
En Configurar esquema, configure los parámetros del esquema:
En el campo de entrada de texto Nombre del sitio web, introduzca un nombre para el sitio web.
Seleccione el menú desplegable API de Type Safe y elija los esquemas de API que desee integrar en el sitio web. Al transferir una API, se configuran los clientes autenticados y se añaden las dependencias necesarias, el explorador de API y otras funciones.
-
En la pestaña Cambios de código, revise los cambios propuestos. La diferencia que aparece en una solicitud de extracción muestra los cambios en su proyecto en el momento en el que se creó la solicitud de extracción.
-
Cuando esté satisfecho con los cambios propuestos que se llevarán a cabo cuando se aplique el esquema, seleccione Añadir esquema.
Tras crear una solicitud de extracción, podrá añadir comentarios. Los comentarios se pueden añadir a la solicitud de extracción o a líneas individuales de los archivos, así como a la solicitud de extracción en general. Puede añadir enlaces a un recurso, como archivos, utilizando el signo
@
seguido del nombre del archivo.nota
El esquema no se aplicará hasta que se apruebe y combine la solicitud de extracción. Para obtener más información, consulte Revisión de una solicitud de extracción y Combinación de una solicitud de extracción.
-
En la columna Estado, seleccione Solicitud de extracción pendiente para la fila del esquema PDK - Cloudscape React Website y, a continuación, seleccione el enlace de la solicitud de extracción abierta.
-
Seleccione Combinar, elija la estrategia de combinación que desee y seleccione Combinar para incorporar los cambios del esquema aplicado.
Tras combinar la solicitud de extracción, se generará una nueva carpeta
packages/websites/
en el proyecto monorepo, que contiene todo el código fuente del nuevo sitio web.my-website-name
-
En el panel de navegación, seleccione Esquemas para confirmar que el Estado de PDK - Cloudscape React Website aparezca como Actualizado.
A continuación, añadirá el esquema PDK - Infrastructure para generar la infraestructura necesaria para implementar el sitio web en la nube de AWS.
Paso 4: generar la infraestructura para implementar la aplicación en la nube de AWS
El esquema PDK - Infrastructure configura un paquete que contiene todo el código de la CDK para implementar el sitio web y la API. También proporciona la generación de diagramas y la conformidad con el paquete nag de creación de prototipos de forma predeterminada.
Adición del esquema PDK - Infrastructure
-
En el panel de navegación del proyecto monorepo, elija Esquemas y, a continuación, Añadir esquema.
-
Seleccione el esquema PDK - Infrastructure y, luego, Siguiente.
-
En Configurar esquema, configure los parámetros del esquema:
En Lenguaje del CDK, elija el lenguaje con el que desee desarrollar la infraestructura.
En el campo de entrada de texto Nombre de pila, introduzca el nombre de la pila de CloudFormation generada para el esquema.
nota
Tome nota del nombre de esta pila para el siguiente paso, en el que configurará un flujo de trabajo de DevOps.
Seleccione el menú desplegable API de Type Safe y elija los esquemas de API que desee integrar en el sitio web.
Seleccione el menú desplegable Cloudscape React TS Websites y, a continuación, seleccione los esquemas de sitios web que quiera implementar en la infraestructura (por ejemplo, PDK - Cloudscape React Website).
-
En la pestaña Cambios de código, revise los cambios propuestos. La diferencia que aparece en una solicitud de extracción muestra los cambios en su proyecto en el momento en el que se creó la solicitud de extracción.
-
Cuando esté satisfecho con los cambios propuestos que se llevarán a cabo cuando se aplique el esquema, seleccione Añadir esquema.
Tras crear una solicitud de extracción, podrá añadir comentarios. Los comentarios se pueden añadir a la solicitud de extracción o a líneas individuales de los archivos, así como a la solicitud de extracción en general. Puede añadir enlaces a un recurso, como archivos, utilizando el signo
@
seguido del nombre del archivo.nota
El esquema no se aplicará hasta que se apruebe y combine la solicitud de extracción. Para obtener más información, consulte Revisión de una solicitud de extracción y Combinación de una solicitud de extracción.
-
En la columna Estado, seleccione Solicitud de extracción pendiente para la fila del esquema PDK - Infrastructure y, a continuación, seleccione el enlace de la solicitud de extracción abierta.
-
Seleccione Combinar, elija la estrategia de combinación que desee y seleccione Combinar para incorporar los cambios del esquema aplicado.
Tras combinar la solicitud de extracción, se generará una nueva carpeta
packages/infra
dentro del proyecto monorepo, que contiene la infraestructura que implementará el proyecto en la nube de AWS. -
En el panel de navegación, seleccione Esquemas para confirmar que el Estado de PDK - Infrastructure aparezca como Actualizado.
A continuación, añadirá el esquema PDK - DevOps para implementar la aplicación.
Paso 5: configurar un flujo de trabajo de DevOps para implementar el proyecto
El esquema PDK - DevOps genera los flujos de trabajo de DevOps necesarios para crear e implementar el proyecto con el rol y la cuenta de AWS especificados en la configuración.
Adición del esquema PDK - DevOps
-
En el panel de navegación del proyecto monorepo, elija Esquemas y, a continuación, Añadir esquema.
-
Seleccione el esquema PDK - DevOps y, luego, Siguiente.
-
En Configurar esquema, configure los parámetros del esquema:
Elija CDK de arranque en el entorno actual.
En el campo de entrada de texto Nombre de pila, introduzca el nombre de la pila de CloudFormation que desee implementar. Debe coincidir con el nombre de la pila configurado en Paso 4: generar la infraestructura para implementar la aplicación en la nube de AWS para el esquema PDK - Infrastructure.
Elija el menú desplegable Conexión de la cuenta de AWS y, a continuación, elija la cuenta de AWS que desee utilizar para los recursos. Para obtener más información, consulte Adición de una Cuenta de AWS a un espacio.
Elija el menú desplegable Rol empleado para implementar la aplicación y seleccione el rol de IAM que desee usar para implementar la aplicación del proyecto.
nota
Al crear un rol de IAM, limite el
SourceArn
alProjectID
actual en la configuración del proyecto. Para obtener más información, consulte El funcionamiento del rol de servicio CodeCatalystWorkflowDevelopmentRole-spaceName.Seleccione el menú desplegable Región y, a continuación, elija la región en la que desee implementar el proyecto monorepo. La implementación solo funciona en las regiones donde están los servicios de AWS necesarios. Para obtener más información, consulte Servicios de AWS por región
.
-
En la pestaña Cambios de código, revise los cambios propuestos. La diferencia que aparece en una solicitud de extracción muestra los cambios en su proyecto en el momento en el que se creó la solicitud de extracción.
-
Cuando esté satisfecho con los cambios propuestos que se llevarán a cabo cuando se aplique el esquema, seleccione Añadir esquema.
Tras crear una solicitud de extracción, podrá añadir comentarios. Los comentarios se pueden añadir a la solicitud de extracción o a líneas individuales de los archivos, así como a la solicitud de extracción en general. Puede añadir enlaces a un recurso, como archivos, utilizando el signo
@
seguido del nombre del archivo.nota
El esquema no se aplicará hasta que se apruebe y combine la solicitud de extracción. Para obtener más información, consulte Revisión de una solicitud de extracción y Combinación de una solicitud de extracción.
-
En la columna Estado, seleccione Solicitud de extracción pendiente para la fila del esquema PDK - Infrastructure y, a continuación, seleccione el enlace de la solicitud de extracción abierta.
-
Seleccione Combinar, elija la estrategia de combinación que desee y seleccione Combinar para incorporar los cambios del esquema aplicado.
Tras combinar la solicitud de extracción, se generará una nueva carpeta
.codecatalyst/workflows
en el proyecto monorepo. -
En el panel de navegación, seleccione Esquemas para confirmar que el Estado de PDK - DevOps aparezca como Actualizado.
nota
El esquema PDK - DevOps y todos los cambios posteriores en los esquemas del PDK serán significativamente más lentos a partir de este momento, ya que, de forma interna, se generan archivos de bloqueo para garantizar que las compilaciones e implementaciones se puedan repetir en el futuro. Generará archivos de bloqueo para todos los paquetes en cualquiera de los idiomas compatibles.
Paso 6: confirmar el flujo de trabajo de publicación y visualizar el sitio web
Cuando haya completado los pasos anteriores, podrá confirmar el flujo de trabajo de publicación para asegurarse de que el proyecto se esté creando.
Confirmación del flujo de trabajo de publicación y visualización del sitio web
-
En el panel de navegación del proyecto monorepo, elija CI/CD y, a continuación, Flujos de trabajo.
-
Para el flujo de trabajo de publicación, seleccione la última ejecución del flujo de trabajo para ver sus detalles. Para obtener más información, consulte Visualización del estado y los detalles de una sola ejecución.
-
Cuando la ejecución del flujo de trabajo se haya completado correctamente, elija la última acción del flujo de trabajo (por ejemplo, Deploy-Beta-ap-souteast-2) y seleccione Variables.
-
Vea el sitio web implementado copiando y pegando el enlace que se encuentra en la tabla Variables (por ejemplo,
MyPDKApi
websiteDistributionDomainNameXXXXX) en una nueva ventana del navegador.Necesita una cuenta de Amazon Cognito para iniciar sesión en el sitio web. De forma predeterminada, el grupo de usuarios no está configurado para permitir el registro automático.
-
Vaya a la consola de AWS Cognito
. -
En la tabla Grupos de usuarios, elija el Nombre del grupo de usuarios que coincida con el grupo de usuarios creado por el esquema PDK - DevOps, que se encuentra en la tabla Variables (por ejemplo, infra
calculate
betaUserIdentityinfracalculate
betaUserIdentityIdentityPoolIdXXXXX). Para obtener más información, consulte Getting started with user pools. -
Seleccione la opción Crear un usuario.
-
Configure los parámetros de Información del usuario:
En Mensaje de invitación, seleccione Enviar una invitación por correo electrónico.
En el campo de entrada de texto Nombre de usuario, introduzca un nombre de usuario.
En el campo de entrada de texto Dirección de correo electrónico, introduzca un nombre de usuario.
En Contraseña temporal, seleccione Generar una contraseña.
-
Seleccione la opción Crear un usuario.
-
Vaya hasta la cuenta de correo electrónico que ha introducido para los parámetros de Información del usuario y abra un correo electrónico con una contraseña temporal. Anote la contraseña.
-
Vuelva al sitio web implementado, introduzca el nombre de usuario que ha creado y la contraseña temporal que ha recibido y, a continuación, seleccione Iniciar sesión.
-
-
(Opcional) Cuando la ejecución del flujo de trabajo se haya completado correctamente, también podrá ver el diagrama generado. Seleccione la pestaña Artefactos en CodeCatalyst, elija Descargar para la fila de Diagrama y abra los archivos descargados.
Colaboración e iteración en el proyecto del PDK
Tras configurar el proyecto, puede hacer cambios en el código fuente. También puede invitar a otros miembros del espacio a trabajar en el proyecto. Los esquemas del PDK le permiten crear su aplicación de forma iterativa, añadiendo únicamente lo que necesite y cuando lo necesite, y conservando el control total de la configuración de cada esquema.
Temas
Paso 1: invitar a miembros al proyecto
También puede utilizar la consola para invitar a usuarios al proyecto. Puede invitar a miembros del espacio o añadir nombres ajenos al espacio.
Para invitar a usuarios al proyecto, debe iniciar sesión con el rol de administrador del proyecto o administrador del espacio.
No es necesario que invite a un usuario con el rol de administrador del espacio al proyecto, ya que este ya tiene acceso implícito a todos los proyectos del espacio.
Al invitar a un usuario al proyecto (sin asignarle el rol de administrador del espacio), el usuario aparecerá en la tabla Miembros del proyecto, bajo proyectos, y en la tabla Miembros del proyecto, bajo espacios.
Invitación a un miembro al proyecto desde la pestaña de configuración del proyecto
-
Vaya a su proyecto.
sugerencia
Puede elegir qué proyecto ver en la barra de navegación superior.
-
En el panel de navegación, seleccione Configuración del proyecto.
-
Seleccione la pestaña Miembros.
-
En Miembros del proyecto, seleccione Invitar a un nuevo miembro.
-
Escriba la dirección de correo electrónico del nuevo miembro, seleccione el rol de ese miembro y elija Invitar. Para obtener más información acerca de los roles de , consulte Concesión de acceso en los roles de usuario.
Invitación a un miembro al proyecto desde la página Descripción general del proyecto
-
Vaya a su proyecto.
sugerencia
Puede elegir qué proyecto ver en la barra de navegación superior.
-
Seleccione el botón Miembros +.
-
Escriba la dirección de correo electrónico del nuevo miembro, seleccione el rol de ese miembro y elija Invitar. Para obtener más información acerca de los roles de , consulte Concesión de acceso en los roles de usuario.
Paso 2: crear problemas para colaborar y hacer un seguimiento del trabajo
CodeCatalyst le ayuda a hacer un seguimiento de las características, las tareas, los errores y cualquier otro trabajo relacionado con el proyecto con problemas. Puede crear problemas para hacer un seguimiento de las ideas y el trabajo necesarios. De forma predeterminada, al crear un problema, este se añade al registro de tareas pendientes. Puede mover los problemas a un panel en el que podrá hacer un seguimiento del trabajo en curso. También puede asignar un problema a un miembro específico del proyecto. En este paso, cree un problema para hacer cambios en el proyecto del PDK.
Creación de un problema
Abra la consola de CodeCatalyst en https://codecatalyst.aws/
. -
Vaya al proyecto monorepo donde desee crear un problema.
-
En la página de inicio del proyecto, seleccione Crear proyecto. Si lo prefiere, en el panel de navegación, seleccione Problemas.
-
Seleccione Crear el problema.
nota
También puede añadir problemas en línea al usar una vista de cuadrícula.
-
Introduzca un título para el problema.
-
(Opcional) Introduzca una Descripción. Para este problema, introduzca la siguiente descripción:
a change in the src/mysfit_data.json file.
Puede usar Markdown para añadir formato. -
(Opcional) Elija un Estado, una Prioridad o una Estimación para el problema.
-
(Opcional) Añada una etiqueta existente o cree una nueva y añádala seleccionando + Agregar etiqueta.
Para añadir una etiqueta existente, selecciónela de la lista. Puede introducir un término de búsqueda en el campo para buscar en el proyecto todas las etiquetas que contengan ese término.
Para crear una etiqueta nueva y añadirla, introduzca el nombre de la etiqueta que desee crear en el campo de búsqueda y pulse Intro.
-
(Opcional) Añada un cesionario seleccionando + Añadir un cesionario. Puede añadirse rápidamente como cesionario seleccionando + Añadirme.
sugerencia
Puede asignarle el problema a Amazon Q para que Amazon Q intente resolverlo. Para obtener más información, consulte Tutorial: Uso de las características de IA generativa de CodeCatalyst para acelerar el trabajo de desarrollo.
Esta funcionalidad requiere que las características de IA generativa estén habilitadas en el espacio. Para obtener más información, consulte Managing generative AI features.
-
(Opcional) Añada un campo personalizado existente o cree uno nuevo. Los problemas pueden tener varios campos personalizados.
Para añadir un campo personalizado existente, elija el campo personalizado en la lista. Puede introducir un término de búsqueda en el campo para buscar en el proyecto todos los campos personalizados que contengan ese término.
Para crear un nuevo campo personalizado y añadirlo, introduzca el nombre del campo personalizado que desee crear en el campo de búsqueda y pulse Intro. A continuación, elija el tipo de campo personalizado que desee crear y establezca un valor.
-
Seleccione Crear el problema. Aparecerá una notificación en la esquina inferior derecha: si el problema se ha creado correctamente, aparecerá un mensaje de confirmación indicándolo; si el problema no se ha creado correctamente, aparecerá un mensaje de error con el motivo. A continuación, puede seleccionar Reintentar para editar y volver a intentar crear el problema, o bien seleccionar Descartar para descartarlo. Ambas opciones descartarán la notificación.
nota
No puede vincular una solicitud de extracción a un problema cuando lo crea. Sin embargo, puede editarlo después de crearlo para añadir enlaces a las solicitudes de extracción.
Para obtener más información, consulte Seguimiento y organización de los trabajos con problemas en CodeCatalyst.
Paso 3: ver el repositorio de código fuente
Puede ver los repositorios de código fuente asociados a un proyecto en Amazon CodeCatalyst. En el caso de los repositorios de código fuente de CodeCatalyst, la página de información general de un repositorio proporciona un resumen rápido de la información y la actividad de ese repositorio, lo que incluye:
-
la descripción del repositorio, si existe;
-
el número de ramificaciones del repositorio;
-
el número de solicitudes de extracción abiertas para el repositorio;
-
el número de flujos de trabajo relacionados para el repositorio;
-
los archivos y carpetas de la ramificación predeterminada o de la ramificación que elija;
-
el título, el autor y la fecha de la última confirmación en la ramificación mostrada;
-
el contenido del archivo README.md renderizado en Markdown, si se incluye algún archivo README.md.
Esta página también proporciona enlaces a las confirmaciones, ramificaciones y solicitudes de extracción del repositorio, así como una forma rápida de abrir, ver y editar archivos individuales.
nota
No puede ver esta información sobre los repositorios vinculados en la consola de CodeCatalyst. Para ver información sobre los repositorios vinculados, seleccione el enlace de la lista de repositorios para abrir ese repositorio en el servicio que lo aloja.
Navegación a los repositorios de código fuente de un proyecto
-
Vaya al proyecto y lleve a cabo una de las siguientes acciones:
En la página de resumen del proyecto, elija el repositorio que desee de la lista y, a continuación, elija Ver repositorio.
-
En el panel de navegación, elija Código y, a continuación, elija Repositorios de origen. En Repositorios de origen, elija el nombre del repositorio en la lista. Puede filtrar la lista de repositorios escribiendo una parte del nombre en la barra de filtros.
-
En la página de inicio del repositorio, consulte el contenido del repositorio y la información sobre los recursos asociados, como el número de solicitudes de extracción y los flujos de trabajo. De forma predeterminada, se muestra el contenido de la ramificación predeterminada. Para cambiar la vista, seleccione otra ramificación en la lista desplegable.
sugerencia
También puede navegar rápidamente a los repositorios de un proyecto seleccionando Ver el código del proyecto en la página de resumen del proyecto.
Paso 4: crear un entorno de desarrollo y hacer cambios de código
En este paso, cree un entorno de desarrollo y haga cambios en el código que, luego, se combinen en la ramificación principal. Este tutorial le muestra los pasos para un proyecto simple de AWS PDK, pero también puede seguir un ejemplo más complejo en el repositorio de GitHub de AWS PDK
Creación de un entorno de desarrollo con una nueva ramificación
-
En el panel de navegación del proyecto monorepo, lleve a cabo una de las siguientes acciones:
Seleccione Descripción general y vaya a la sección Mis entornos de desarrollo.
Seleccione Código y Entornos de desarrollo.
Seleccione Código y Repositorios de origen y elija el repositorio monorepo para el que quiera crear un entorno de desarrollo.
-
Seleccione un IDE compatible en el menú desplegable. Para obtener más información, consulte Entornos de desarrollo integrados compatibles.
-
Seleccione Clonar un repositorio.
-
Elija el repositorio que desea clonar, elija Trabajar en una nueva ramificación, introduzca el nombre de la ramificación en el campo Nombre de ramificación, y elija una ramificación a partir de la cual crear la ramificación nueva en el menú desplegable Crear ramificación desde.
nota
Si crea un entorno de desarrollo desde la página Repositorios de origen o desde un repositorio de código fuente específico, no necesita elegir un repositorio. El entorno de desarrollo se creará a partir del repositorio de código fuente que haya elegido en la página Repositorios de origen.
-
(Opcional) En Alias: opcional, añada un alias para el entorno de desarrollo.
-
(Opcional) Elija el botón de edición Configuración del entorno de desarrollo para editar la configuración de computación, almacenamiento o tiempo de espera del entorno de desarrollo.
-
(Opcional) En Amazon Virtual Private Cloud (Amazon VPC): opcional, seleccione la conexión de VPC que quiera asociar a su entorno de desarrollo en el menú desplegable.
Si se establece una VPC predeterminada para su espacio, los entornos de desarrollo se ejecutarán conectados a esa VPC. Puede invalidar este comportamiento asociando una conexión de VPC diferente. Además, tenga en cuenta que los entornos de desarrollo conectados a una VPC no admiten el kit de herramientas de AWS.
nota
Al crear un entorno de desarrollo con una conexión de VPC, se crea una nueva interfaz de red dentro de la VPC. CodeCatalyst interactúa con esta interfaz mediante el rol de VPC asociado. Además, asegúrese de que el bloque CIDR de IPv4 no esté configurado para el intervalo de direcciones IP
172.16.0.0/12
. -
Seleccione Crear. Mientras se crea el entorno de desarrollo, la columna de estado del entorno de desarrollo mostrará Iniciando y la columna de estado mostrará Ejecutando una vez se haya creado el entorno de desarrollo.
Cuando el entorno de desarrollo se esté ejecutando, trabajará con la aplicación de ejemplo generada en CodeCatalyst haciendo cambios en el código mediante solicitudes de extracción que se compilan e implementan automáticamente en los recursos de la cuenta de AWS conectada cuando la solicitud de extracción se combina. El monorepo vende un archivo de desarrollo para que todas las dependencias globales y los tiempos de ejecución necesarios estén presentes de forma automática.
Cambio del código en el proyecto
-
En un terminal funcional del entorno de desarrollo, vaya al proyecto monorepo e instale las dependencias del proyecto ejecutando el siguiente comando:
npx projen install
-
Vaya a
packages/apis/
, que define un ejemplo de operación de API. En este tutorial, creará una operaciónmypdkapi
/model/src/main/smithy/operations/say-hello.smithyCalculate
sencilla para sumar dos números. Haga un cambio en el código para definir esta operación, lo que incluye las entradas y salidas.Ejemplo:
$version: "2" namespace com.aws @http(method: "
POST
", uri: "/calculate
") @handler(language: "typescript") operationCalculate
{ input := {@required numberA: Integer @required numberB: Integer
} output := {@required result: Integer
} }La característica
@handler
le dice a Type Safe API que implementará esta operación como un controlador de AWS Lambda escrito en TypeScript. Type Safe API generará un stub para esta operación para que lo implemente en TypeScript. Se añade la característica@required
, lo que significa que la puerta de enlace de API que se implemente la aplicará en tiempo de ejecución. Para obtener más información, consulte la documentación de Smithy. -
Cambie el nombre de archivo de
/say-hello.smithy
por uno que encaje con los cambios de código (por ejemplo,calculate.smithy
). -
Vaya a
packages/apis/
y haga un cambio en el código para enlazar la operación. Puede mostrar la operaciónmypdkapi
/model/src/main/smithy/main.smithyCalculate
definida en/calculate.smithy
incluyéndola en el campooperations
de este archivo.Ejemplo:
$version: "2" namespace com.aws use aws.protocols#restJson1 /// A sample smithy api @restJson1 service MyPDKApi { version: "1.0" operations: [
Calculate
] errors: [ BadRequestError NotAuthorizedError InternalFailureError ] } -
Compile los cambios ejecutando el siguiente comando:
npx projen build
nota
Si lo desea, puede pasar un indicador
--parallel X
, que distribuirá la compilación entre los núcleosX
.Como se ha añadido la característica
@handler
, se generan los siguientes archivos tras completar la compilación:-
/packages/apis/
mypdkapi
/handlers/typescript/src/calculate.ts
-
/packages/apis/
mypdkapi
/handlers/typescript/test/calculate.test.ts
-
-
Vaya a
packages/apis/
y haga cambios en el código. Este archivo es el controlador del servidor que se invoca para la API.mypdkapi
/handlers/typescript/src/calculate.ts
import { calculateHandler, CalculateChainedHandlerFunction, INTERCEPTORS, Response, LoggingInterceptor, } from 'mypdkapi-typescript-runtime'; /** * Type-safe handler for the Calculate operation */ export const calculate: CalculateChainedHandlerFunction = async (request) => { LoggingInterceptor.getLogger(request).info('Start Calculate Operation'); const { input } = request; return
Response.success
({result: input.body.numberA + input.body.numberB,
}); }; /** * Entry point for the AWS Lambda handler for the Calculate operation. * The calculateHandler method wraps the type-safe handler and manages marshalling inputs and outputs */ export const handler = calculateHandler(...INTERCEPTORS, calculate); -
Vaya al archivo
/packages/apis/
y haga cambios en el código para actualizar las pruebas unitarias.mypdkapi
/handlers/typescript/test/calculate.test.ts
Ejemplo:
import { CalculateChainedRequestInput,
CalculateResponseContent,
} from 'mypdkapi-typescript-runtime'; import { calculate, } from '../src/calculate'; // Common request arguments const requestArguments = { chain: undefined as never, event: {} as any, context: {} as any, interceptorContext: { logger: { info: jest.fn(), }, }, } satisfies Omit<CalculateChainedRequestInput, 'input'>; describe('Calculate', () => { it('should return correct sum
', async () => { const response = await calculate({ ...requestArguments, input: { requestParameters: {}, body: {numberA: 1, numberB: 2
} }, }); expect(response.statusCode).toBe(200
); expect((response.body asCalculateResponseContent
).result
).toEqual(3
); }); }); -
Vaya al archivo
/packages/infra/main/src/constructs/apis/
y haga cambios en el código para añadir una integración a la operaciónmypdkapi.ts
Calculate
en su infraestructura de CDK. El constructo de la API tiene una propiedad de integraciones en la que puede transferir la implementación que ha añadido anteriormente. Como está usando la característica@handler
en el modelo de Smithy para la operaciónCalculate
, puede usar el constructo de CDKCalculateFunction
generado, que está preconfigurado, para apuntar a la implementación del controlador.Ejemplo:
import { UserIdentity } from "@aws/pdk/identity"; import { Authorizers,
Integrations
} from "@aws/pdk/type-safe-api"; import { Stack } from "aws-cdk-lib"; import { Cors } from "aws-cdk-lib/aws-apigateway"; import { AccountPrincipal, AnyPrincipal, Effect, PolicyDocument, PolicyStatement, } from "aws-cdk-lib/aws-iam"; import { Construct } from "constructs"; import { Api,CalculateFunction
} from "calculateapi-typescript-infra"; /** * Api construct props. */ export interface CalculateApiProps { /** * Instance of the UserIdentity. */ readonly userIdentity: UserIdentity; } /** * Infrastructure construct to deploy a Type Safe API. */ export class CalculateApi extends Construct { /** * API instance */ public readonly api: Api; constructor(scope: Construct, id: string, props?: CalculateApiProps) { super(scope, id); this.api = new Api(this, id, { defaultAuthorizer: Authorizers.iam(), corsOptions: { allowOrigins: Cors.ALL_ORIGINS, allowMethods: Cors.ALL_METHODS, }, integrations:{ calculate: { integration: Integrations.lambda(new CalculateFunction(this, "CalculateFunction")) }
}, policy: new PolicyDocument({ statements: [ // Here we grant any AWS credentials from the account that the prototype is deployed in to call the api. // Machine to machine fine-grained access can be defined here using more specific principals (eg roles or // users) and resources (ie which api paths may be invoked by which principal) if required. // If doing so, the cognito identity pool authenticated role must still be granted access for cognito users to // still be granted access to the API. new PolicyStatement({ effect: Effect.ALLOW, principals: [new AccountPrincipal(Stack.of(this).account)], actions: ["execute-api:Invoke"], resources: ["execute-api:/*"], }), // Open up OPTIONS to allow browsers to make unauthenticated preflight requests new PolicyStatement({ effect: Effect.ALLOW, principals: [new AnyPrincipal()], actions: ["execute-api:Invoke"], resources: ["execute-api:/*/OPTIONS/*"], }), ], }), }); // Grant authenticated users access to invoke the api props?.userIdentity.identityPool.authenticatedRole.addToPrincipalPolicy( new PolicyStatement({ effect: Effect.ALLOW, actions: ["execute-api:Invoke"], resources: [this.api.api.arnForExecuteApi("*", "/*", "*")], }), ); } } -
Compile los cambios ejecutando el siguiente comando:
npx projen build
Cuando el proyecto haya terminado de construirse, podrá ver el diagrama generado actualizado, que se encuentra en /packages/infra/main/cdk.out/cdkgraph/diagram.png
. El diagrama muestra cómo se añade la función y cómo se conecta a la API creada. Este diagrama se va actualizando a medida que se modifica el código del CDK.
Ahora puede implementar los cambios insertándolos y combinándolos en la ramificación principal del repositorio.
Paso 5: insertar y combinar cambios de código
Confirme e inserte los cambios en el código; luego, podrá combinarlos en la ramificación principal del repositorio de código fuente.
Inserción de cambios en la ramificación de características
-
Confirme e inserte los cambios en la ramificación de características ejecutando los siguientes comandos:
git add .
git commit -m "
my commit message
"git push
Al insertar los cambios, se ejecuta un nuevo flujo de trabajo para la ramificación de características, que puede ver en la consola de CodeCatalyst. A continuación, puede crear una solicitud de extracción para combinar los cambios en la ramificación principal del repositorio de código fuente. Al combinar la ramificación de características con la ramificación principal, se desencadenará el flujo de trabajo de publicación. También puede vincular la solicitud de extracción al problema.
Creación de una solicitud de extracción y vinculación al problema
-
En el proyecto monorepo, lleve a cabo una de las siguientes acciones:
-
En el panel de navegación, seleccione Código, seleccione Solicitudes de extracción y seleccione Crear solicitud de extracción.
-
En la página de inicio del repositorio, seleccione Más y, después, seleccione Crear solicitud de extracción.
-
En la página del proyecto, seleccione Crear solicitud de extracción.
-
-
En Repositorio de origen, asegúrese de que el repositorio de código fuente especificado sea el que contenga el código confirmado. Esta opción solo aparece si no ha creado la solicitud de extracción desde la página principal del repositorio.
-
En Ramificación de destino, elija la ramificación principal en la que quiera combinar el código después de revisarlo.
-
En Ramificación de origen, elija la ramificación de características que contenga el código confirmado.
-
En Título de la solicitud de extracción, introduzca un título que ayude a otros usuarios a entender qué es lo que hay que revisar y por qué.
-
(Opcional) En Descripción de la solicitud de extracción, proporcione información, como un enlace a las incidencias o una descripción de los cambios.
sugerencia
Puede elegir Escribir descripción automáticamente para que CodeCatalyst genere automáticamente una descripción de los cambios incluidos en la solicitud de extracción. Puede realizar cambios en la descripción generada automáticamente después de añadirla a la solicitud de extracción.
Esta funcionalidad requiere que las características de IA generativa estén habilitadas en el espacio. Para obtener más información, consulte Managing generative AI features in Amazon CodeCatalyst.
-
En Problemas, elija Vincular problemas y, a continuación, elija el problema que creó en Paso 2: crear problemas para colaborar y hacer un seguimiento del trabajo. Para desvincular un problema, seleccione el icono de desvinculación.
-
(Opcional) En Revisores obligatorios, seleccione Agregar revisores obligatorios. Elija en la lista miembros del proyecto para añadirlos. Los revisores obligatorios deben aprobar los cambios antes de poder combinar la solicitud de extracción en la ramificación de destino.
nota
No es posible añadir un revisor como revisor obligatorio y como revisor opcional. No es posible añadirse a uno mismo como revisor.
-
(Opcional) En Revisores opcionales, seleccione Agregar revisores opcionales. Elija en la lista miembros del proyecto para añadirlos. No es obligatorio que los revisores opcionales aprueben los cambios para poder combinar la solicitud de extracción en la ramificación de destino.
-
Los revisores o usted mismo deberán revisar la solicitud de extracción y combinarla en la ramificación principal. Para obtener más información, consulte Combinación de una solicitud de extracción.
Cuando los cambios se combinen en la ramificación principal del repositorio de código fuente, se desencadenará automáticamente un nuevo flujo de trabajo.
-
Tras finalizar la combinación, podrá mover el problema a Listo.
-
En el panel de navegación, elija Problemas.
-
Seleccione el problema creado en Paso 2: crear problemas para colaborar y hacer un seguimiento del trabajo, seleccione el menú desplegable Estado y, a continuación, elija Listo.
-
El flujo de trabajo de publicación implementa la aplicación después de ejecutarla correctamente para que pueda ver los cambios.
Confirmación del flujo de trabajo de publicación y visualización del sitio web
-
En el panel de navegación del proyecto monorepo, elija CI/CD y, a continuación, Flujos de trabajo.
-
Para el flujo de trabajo de publicación, seleccione la última ejecución del flujo de trabajo para ver sus detalles. Para obtener más información, consulte Visualización del estado y los detalles de una sola ejecución.
-
Cuando la ejecución del flujo de trabajo se haya completado correctamente, elija la última acción del flujo de trabajo (por ejemplo, Deploy-Beta-ap-souteast-2) y seleccione Variables.
-
Para ver el sitio web implementado, copie y pegue el enlace de la fila
MyPDKApi
websiteDistributionDomainNameXXXXX en una nueva ventana del navegador. -
Introduzca el nombre de usuario y la contraseña de Paso 6: confirmar el flujo de trabajo de publicación y visualizar el sitio web y seleccione Iniciar sesión.
-
(Opcional) Pruebe los cambios en la aplicación.
-
Seleccione el menú desplegable POST.
-
Introduzca dos valores para
numberA
ynumber B
; luego, seleccione Ejecutar. -
Confirme los resultados en Cuerpo de respuesta.
-
Con el tiempo, las versiones del catálogo de los esquemas del PDK pueden cambiar. Puede cambiar los esquemas de su proyecto por las versiones del catálogo a fin de mantenerse al día con los cambios más recientes. Puede ver los cambios en el código y los entornos afectados antes de cambiar las versiones del esquema de su proyecto. Para obtener más información, consulte Cambio de las versiones de los esquemas en un proyecto.