Tutorial: carga de artefactos en Amazon S3 - Amazon CodeCatalyst

Tutorial: carga de artefactos en Amazon S3

En este tutorial aprenderá a cargar artefactos en un bucket de Amazon S3 mediante un flujo de trabajo de Amazon CodeCatalyst que incluye un par de acciones de compilación. Estas acciones se ejecutan en serie cuando se inicia el flujo de trabajo. La primera acción de compilación genera dos archivos, Hello.txt y Goodbye.txt, y los empaqueta en un artefacto de compilación. La segunda acción de compilación carga el artefacto en Amazon S3. Configurará el flujo de trabajo para que se ejecute cada vez que envíe una confirmación a su repositorio de código fuente.

Requisitos previos

Antes de comenzar, necesitará lo siguiente:

  • Necesita un espacio de CodeCatalyst con una cuenta de AWS conectada. Para obtener más información, consulte Creación de un espacio.

  • En su espacio, necesita un proyecto vacío llamado:

    codecatalyst-artifact-project

    Use la opción Empezar desde cero para crear este proyecto.

    Para obtener más información, consulte Creación de un proyecto vacío en Amazon CodeCatalyst.

  • En su proyecto, necesita un entorno de CodeCatalyst llamado:

    codecatalyst-artifact-environment

    Configure este entorno de la siguiente manera:

    • Elija cualquier tipo, como Desarrollo.

    • Conecte su cuenta de AWS al entorno.

    • En Rol de IAM predeterminado, elija cualquier rol. Especificará un rol diferente más adelante.

    Para obtener más información, consulte Implementación en Cuentas de AWS y VPC.

Paso 1: crear un rol de AWS

En este paso, creará un rol de AWS IAM que más adelante asignará a la acción de compilación en el flujo de trabajo. Este rol concede a la acción de compilación de CodeCatalyst permiso para acceder a su cuenta de AWS y escribir en Amazon S3, donde se almacenará el artefacto. El rol se llama rol de compilación.

nota

Si ya tiene un rol de compilación que creó para otro tutorial, también puede utilizarlo en este tutorial. Solo asegúrese de que tenga los permisos y la política de confianza que se muestran en el siguiente procedimiento.

Para obtener más información sobre los roles de IAM, consulte Roles de IAM en la Guía del usuario de AWS AWS Identity and Access Management.

Creación de un rol de compilación
  1. Cree una política para el rol del modo siguiente:

    1. Inicie sesión en AWS.

    2. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

    3. En el panel de navegación, seleccione Políticas.

    4. Elija Create Policy (Crear política).

    5. Seleccione la pestaña JSON.

    6. Elimine el código existente.

    7. Pegue el siguiente código:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": "*" } ] }
      nota

      La primera vez que utilice el rol para ejecutar acciones de flujo de trabajo, use el comodín en la instrucción de política de recursos y, a continuación, precise el ámbito de la política con el nombre del recurso cuando esté disponible.

      "Resource": "*"
    8. Elija Siguiente: Etiquetas.

    9. Elija Siguiente: Revisar.

    10. En Nombre, escriba:

      codecatalyst-s3-build-policy
    11. Elija Crear política.

      Ahora ha creado una política de permisos.

  2. Cree el rol de compilación de la siguiente manera:

    1. En el panel de navegación, seleccione Roles y luego seleccione Crear rol.

    2. Elija Política de confianza personalizada.

    3. Elimine la política de confianza personalizada existente.

    4. Añada la siguiente política de confianza personalizada:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. Elija Siguiente.

    6. En Políticas de permisos, busque codecatalyst-s3-build-policy y active su casilla de verificación.

    7. Elija Siguiente.

    8. En Nombre del rol, escriba:

      codecatalyst-s3-build-role
    9. En Descripción del rol, escriba:

      CodeCatalyst build role
    10. Elija Crear rol.

    Ahora ha creado un rol de compilación con una política de confianza y una política de permisos.

Paso 2: crear un bucket de Amazon S3

En este paso, creará un bucket de Amazon S3 en el que se cargarán los artefactos Hello.txt y Goodbye.txt.

Creación de un bucket de Amazon S3
  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel principal, elija Crear bucket.

  3. En Nombre del bucket, escriba:

    codecatalyst-artifact-bucket
  4. En AWS Región, seleccione una región. En este tutorial, se asume que ha elegido Oeste de EE. UU. (Oregón) us-west-2. Para obtener más información sobre las regiones admitidas en Amazon S3, consulte Puntos de conexión y cuotas de Amazon Simple Storage Service en la Referencia general de AWS.

  5. En la parte inferior de la página, elija Crear bucket.

  6. Copie el nombre del bucket que acaba de crear, por ejemplo:

    codecatalyst-artifact-bucket

Ahora ha creado un bucket llamado codecatalyst-artifact-bucket en la región Oeste de EE. UU. (Oregón) us-west-2.

Paso 3: crear un repositorio de código fuente

En este paso, creará un repositorio de código fuente en CodeCatalyst. Este repositorio se utiliza para almacenar el archivo de definición del flujo de trabajo del tutorial.

Para obtener más información sobre los repositorios de código fuente, consulte Creación de un repositorio de código fuente.

Creación de un repositorio de código fuente
  1. Abra la consola de CodeCatalyst en https://codecatalyst.aws/.

  2. Vaya a su proyecto, codecatalyst-artifact-project.

  3. En el panel de navegación, elija Código y, a continuación, elija Repositorios de origen.

  4. Elija Agregar repositorio y, a continuación, elija Crear repositorio.

  5. En Nombre del repositorio, escriba:

    codecatalyst-artifact-source-repository
  6. Seleccione Crear.

Ahora ha creado un repositorio llamado codecatalyst-artifact-source-repository.

Paso 4: crear un flujo de trabajo

En este paso, creará un flujo de trabajo con los siguientes componentes que se ejecutarán en orden:

  • Un desencadenador: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información sobre los desencadenadores, consulte Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores.

  • Una acción de compilación llamada GenerateFiles: al activarse, la acción GenerateFiles crea dos archivos, Hello.txt y Goodbye.txt, y los empaqueta en un artefacto de salida llamado codecatalystArtifact.

  • Otra acción de compilación llamada Upload: cuando finaliza la acción GenerateFiles, la acción Upload ejecuta el comando de la AWS CLI aws s3 sync para cargar los archivos de codecatalystArtifact y del repositorio de código fuente en el bucket de Amazon S3. La AWS CLI viene preinstalada y preconfigurada en la plataforma de computación de CodeCatalyst, por lo que no es necesario instalarla ni configurarla.

    Para obtener más información sobre el software preempaquetado en la plataforma de computación de CodeCatalyst, consulte Especificación de imágenes del entorno en tiempo de ejecución. ‎Para obtener más información sobre el comando aws s3 sync de la AWS CLI, consulte sync en la Referencia de comandos de la AWS CLI.

Para obtener más información sobre la acción de compilación, consulte Compilación con flujos de trabajo.

Creación de un flujo de trabajo
  1. En el panel de navegación, elija CI/CD y, a continuación, elija Flujos de trabajo.

  2. Seleccione Crear flujo de trabajo.

  3. Elimine el código de ejemplo de YAML.

  4. Añada el código de YAML siguiente:

    nota

    En el código de YAML que aparece a continuación, puede omitir la sección Connections: si lo desea. Si omite esta sección, debe asegurarse de que el rol especificado en el campo Rol de IAM predeterminado del entorno incluya los permisos y las políticas de confianza que se describen en Paso 1: crear un rol de AWS. Para obtener más información sobre cómo configurar un entorno con un rol de IAM predeterminado, consulte Creación de un entorno.

    Name: codecatalyst-artifact-workflow SchemaVersion: 1.0 Triggers: - Type: Push Branches: - main Actions: GenerateFiles: Identifier: aws/build@v1 Configuration: Steps: # Create the output files. - Run: echo "Hello, World!" > "Hello.txt" - Run: echo "Goodbye!" > "Goodbye.txt" Outputs: Artifacts: - Name: codecatalystArtifact Files: - "**/*" Upload: Identifier: aws/build@v1 DependsOn: - GenerateFiles Environment: Name: codecatalyst-artifact-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-s3-build-role Inputs: Artifacts: - codecatalystArtifact Configuration: Steps: # Upload the output artifact to the S3 bucket. - Run: aws s3 sync . s3://codecatalyst-artifact-bucket

    En el código anterior, sustituya:

    Para obtener información sobre las propiedades de este archivo, consulte el Acciones de compilación y prueba de YAML.

  5. (Opcional) Seleccione Validar para asegurarse de que el código de YAML del flujo de trabajo es válido antes de confirmarlo.

  6. Elija Commit (Confirmar).

  7. En el cuadro de diálogo Confirmar flujo de trabajo, escriba lo siguiente:

    1. En Nombre del archivo de flujo de trabajo, deje el valor predeterminado, codecatalyst-artifact-workflow.

    2. En Mensaje de confirmación, escriba:

      add initial workflow file
    3. En Repositorio, elija codecatalyst-artifact-source-repository.

    4. En Nombre de la ramificación, elija principal.

    5. Elija Commit (Confirmar).

    Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo. En concreto, cuando confirmó (e incorporó) el archivo codecatalyst-artifact-workflow.yaml en su repositorio de código fuente, el desencadenador inició la ejecución del flujo de trabajo.

Consulta de la ejecución del flujo de trabajo en curso
  1. En el panel de navegación, elija CI/CD y, a continuación, elija Flujos de trabajo.

  2. Elija el flujo de trabajo que acaba de crear: codecatalyst-artifact-workflow.

  3. Elija GenerateFiles para ver el progreso de la primera acción de compilación.

  4. Seleccione Cargar para ver el progreso de la segunda acción de compilación.

  5. Cuando finalice la acción Cargar, haga lo siguiente:

    • Si la ejecución del flujo de trabajo se realizó correctamente, vaya al siguiente procedimiento.

    • Si se produjo un error en la ejecución del flujo de trabajo, seleccione Registros para solucionar el problema.

Paso 5: verificar los resultados

Cuando se ejecute el flujo de trabajo, vaya al servicio Amazon S3 y busque el bucket codecatalyst-artifact-bucket. Ahora debería incluir los siguientes archivos y carpetas:

. |— .aws/ |— .git/ |Goodbye.txt |Hello.txt |REAME.md

Los archivos Goodbye.txt y Hello.txt se han cargado porque formaban parte del artefacto codecatalystArtifact. Los archivos .aws/, .git/ y README.md se ha cargado porque estaban en su repositorio de código fuente.

Limpieza

Limpie CodeCatalyst y AWS para evitar que le cobren por estos servicios.

Limpieza en CodeCatalyst
  1. Abra la consola de CodeCatalyst en https://codecatalyst.aws/.

  2. Elimine el repositorio de código fuente codecatalyst-artifact-source-repository.

  3. Elimine el flujo de trabajo codecatalyst-artifact-workflow.

Limpieza en AWS
  1. Limpie Amazon S3 de la siguiente manera:

    1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

    2. Elimine los archivos del bucket codecatalyst-artifact-bucket.

    3. Elimine el bucket codecatalyst-artifact-bucket.

  2. Limpie IAM de la siguiente manera:

    1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

    2. Elimine la codecatalyst-s3-build-policy.

    3. Elimine la codecatalyst-s3-build-role.