CodePipeline
Guía del usuario (Versión de API 2015-07-09)

Editar una canalización en CodePipeline

Las canalizaciones describen el proceso de lanzamiento que desea que siga AWS CodePipeline e incluyen las etapas y las acciones que es necesario completar. Puede editar una canalización para añadir o eliminar dichos elementos. Sin embargo, al editar una canalización, ciertos valores como, por ejemplo, el nombre o los metadatos de la canalización no pueden modificarse.

A diferencia de lo que sucede al crearla, cuando se edita una canalización no se vuelve a ejecutar en ella la revisión más reciente. Si desea ejecutar la versión más reciente en una canalización que acaba de editar, tendrá que volver a ejecutarla manualmente. De lo contrario, la canalización editada se ejecuta la próxima vez que realice un cambio en una ubicación de origen configurada en la etapa de origen. Para obtener información, consulte Iniciar manualmente una canalización en AWS CodePipeline.

Puede añadir a una canalización acciones que se encuentren en una región de AWS diferente a la de la canalización. Cuando un servicio de AWS es el proveedor de una acción, y este tipo de acción/proveedor se encuentra en una región de AWS diferente a la de la canalización, se trata de una acción entre regiones. Para obtener más información sobre las acciones entre regiones, consulte Añadir una acción entre regiones en CodePipeline.

CodePipeline utiliza métodos de detección de cambios para comenzar la canalización cuando se envía un cambio de código fuente. Estos métodos de detección se basan en el tipo de código fuente:

  • CodePipeline utiliza Amazon CloudWatch Events para detectar cambios en el repositorio de código fuente de CodeCommit o en el bucket de código fuente de Amazon S3.

  • CodePipeline utiliza webhooks para detectar cambios en el repositorio y la ramificación de código fuente en GitHub.

nota

Los recursos de detección de cambios se crean automáticamente cuando se utiliza la consola. Si utiliza la consola para crear o editar una canalización, los recursos adicionales se crean automáticamente. Si utiliza la AWS CLI para crear la canalización, debe crear los recursos adicionales. Para obtener más información sobre la creación o actualización de una canalización de CodeCommit, consulte Creación de una regla de Eventos de CloudWatch para código fuente en CodeCommit (CLI). Para obtener más información acerca de la creación o actualización de una canalización de Amazon S3 mediante la CLI, consulte Creación de una regla de Eventos de CloudWatch para código fuente en Amazon S3 (CLI). Para obtener más información sobre la creación o actualización de una canalización de GitHub, consulte Uso de webhooks para iniciar una canalización (código fuente en GitHub).

Editar una canalización (consola)

Puede utilizar la consola de CodePipeline para añadir, editar o eliminar etapas de una canalización y para añadir, editar o eliminar acciones en una etapa.

Para editar una canalización

  1. Inicie sesión en la Consola de administración de AWS y abra la consola de CodePipeline en http://console.aws.amazon.com/codesuite/codepipeline/home.

    Se muestran los nombres de todas las canalizaciones asociadas con su cuenta de AWS.

  2. En Name, elija el nombre de la canalización que desea editar. Esto abre una vista detallada de la canalización, que incluye el estado de cada una de las acciones en cada etapa de la canalización.

  3. En la página de detalles de la canalización, elija Edit.

  4. En la página Edit, lleve a cabo alguna de las siguientes operaciones:

    • Para editar una etapa, elija Edit stage (Editar etapa) Puede añadir acciones en serie y en paralelo con las acciones existentes:

      También puede editar las acciones en esta vista eligiendo el icono de edición correspondiente. Para eliminar una acción, elija el icono de eliminación de esa acción.

    • Para editar una acción, elija el icono de edición de dicha acción y modifique los valores que desee en Edit action. Los elementos marcados con un asterisco (*) son obligatorios.

      • En el caso de nombres de repositorio y ramificaciones de CodeCommit, aparece un mensaje que muestra la regla de Amazon CloudWatch Events que se va a crear para esta canalización. Si elimina el origen de CodeCommit, aparece un mensaje que muestra la regla de Amazon CloudWatch Events que se eliminará.

      • En el caso del buckets de Amazon S3, aparece un mensaje que muestra la regla de Amazon CloudWatch Events y el registro de seguimiento de AWS CloudTrail que se vaya a crear para esta canalización. Si elimina el origen de Amazon S3, aparece un mensaje que muestra la regla de Amazon CloudWatch Events y el registro de seguimiento de AWS CloudTrail que se eliminarán. Si otras canalizaciones están usando el registro de seguimiento de AWS CloudTrail, no se quita el registro de seguimiento y se elimina el evento de datos.

      • En el caso de fuentes de GitHub, se añade lo siguiente a la canalización:

        • CodePipeline utiliza un token de OAuth para crear una aplicación autorizada que administra CodePipeline.

          nota

          En GitHub, existe un límite para el número de tokens de OAuth que se pueden usar con una aplicación; por ejemplo, CodePipeline. Si supera este límite, vuelva a intentar la conexión para permitir que CodePipeline pueda conectarse de nuevo reutilizando los tokens existentes. Para obtener más información, consulte .

        • CodePipeline crea un webhook en GitHub para detectar los cambios de origen y, a continuación, iniciar la canalización cuando se produzca uno. CodePipeline crea los siguientes elementos junto con el webhook:

          • Se genera un secreto de forma aleatoria y se utiliza para autorizar la conexión a GitHub.

          • La URL de webhook se genera utilizando el punto de enlace público correspondiente a la región.

          • El webhook se registra en GitHub. De este modo, se suscribe la URL para recibir eventos del repositorio.

      Si elimina una acción de código fuente de GitHub, se anula el registro del webhook y se elimina automáticamente.

    • Para añadir una etapa, elija + Add stage (Añadir etapa) en el lugar de la canalización en el que desea añadirla. Dé un nombre a la etapa y después añada al menos una acción. Los elementos marcados con un asterisco (*) son obligatorios.

    • Para eliminar una etapa, elija el icono de eliminación en esa etapa. Se eliminan la etapa y todas sus acciones.

    Por ejemplo, si desea agregar una acción en serie a una etapa de una canalización:

    1. En la etapa a la que desee añadir la acción, elija Edit stage (Editar etapa) y, a continuación, añádala haciendo clic en + Add action group (Añadir grupo de acciones).

    2. En el cuadro emergente Edit action (Editar acción), en Action name (Nombre de acción), escriba el nombre de la acción. En la lista Action provider (Proveedor de acciones) se muestran opciones organizadas por categoría. Identifique la categoría que quiera, por ejemplo, Deploy (Implementación). Una vez allí, elija el proveedor que quiera, por ejemplo, AWS CodeDeploy. En Region (Región), elija la región de AWS en la que se crea o tiene previsto crear el recurso. El campo Region (Región) designa dónde se crean los recursos de AWS para este tipo de acción y de proveedor. Este campo solo se muestra en el caso de las acciones en las que el proveedor de la acción es un servicio de AWS. El campo Region (Región) se establece de forma predeterminada en la misma región de AWS que la canalización.

      Para obtener más información acerca de los requisitos de acciones en CodePipeline, incluidos los nombre de los artefactos de entrada y salida y la forma en que se usan, consulte Requisitos de la estructura de las acciones en CodePipeline. Para ver ejemplos de la adición de proveedores de acciones y del uso de campos predeterminados para cada uno, consulte Creación de una canalización (consola).

      Para añadir CodeBuild como acción de compilación o acción de prueba a una etapa, consulte Usar CodePipeline con CodeBuild para probar el código y ejecutar compilaciones en la Guía del usuario de CodeBuild.

      nota

      Algunos proveedores de acción, tales como GitHub, requieren que se conecte al sitio web del proveedor antes de completar la configuración de la acción. Al conectarse al sitio web de un proveedor, asegúrese de usar las credenciales correspondientes a dicho sitio web. No use las credenciales de AWS.

    3. Cuando haya terminado de configurar la acción, elija Save (Guardar).

    nota

    No puede cambiar el nombre de una etapa en la vista de la consola. Puede agregar una etapa con el nombre que desea cambiar y, después, eliminar la antigua. Asegúrese de añadir las acciones con las que desea contar en esa etapa antes de eliminar las antiguas.

  5. Cuando haya terminado de editar la canalización, elija Save (Guardar) para volver a la página de resumen.

    importante

    Una vez guardados, los cambios no se pueden deshacer. Deberá volver a editar la canalización. Si se ejecuta una revisión en la canalización al guardar los cambios, dicha ejecución no se completa. Si desea una confirmación específica o cambiar la ejecución en la canalización editada, deberá ejecutarla manualmente en la canalización. De lo contrario, la siguiente confirmación o cambio se ejecuta automáticamente en la canalización.

  6. Para probar la acción, seleccione Cambio de versión; la confirmación se procesará en la canalización y se confirmará un cambio en la fuente especificada en la etapa de origen de la canalización. O bien, siga los pasos que se indican en Iniciar manualmente una canalización en AWS CodePipeline para lanzar manualmente un cambio mediante la AWS CLI.

Editar una canalización (AWS CLI)

Puede usar el comando update-pipeline para editar una canalización.

importante

Es posible utilizar la AWS CLI para editar canalizaciones que incluyan acciones de socios, pero no se debe editar manualmente la codificación JSON de una acción de socio. De lo contrario, la acción del socio produce un error al actualizar la canalización.

Para editar una canalización

  1. Abra una sesión de terminal (Linux, macOS, or Unix) o un símbolo del sistema (Windows) y ejecute el comando get-pipeline para copiar la estructura de canalización en un archivo JSON. Por ejemplo, para una canalización llamada MyFirstPipeline, escriba el siguiente comando:

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

    Este comando no devuelve nada, pero el archivo creado debería aparecer en el directorio en el que se ejecutó el comando.

  2. Abra el archivo JSON en cualquier editor de texto sin formato y modifique la estructura del archivo para que refleje los cambios que desea hacer en la canalización. Por ejemplo, puede añadir o eliminar etapas, o añadir otra acción a una etapa existente.

    El siguiente ejemplo muestra cómo añadir otra etapa de implementación en el archivo pipeline.json. Esta etapa se ejecuta después de la primera etapa de implementación denominada Staging (Ensayo).

    nota

    Esto es solo un fragmento del archivo, no toda la estructura. Para obtener más información, consulte Referencia de la estructura de la canalización de CodePipeline.

    , { "name": "Staging", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-CodeDeploy-Application", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] }, { "name": "Production", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet" }, "runOrder": 1 } ] } ] }

    En el siguiente ejemplo se muestra cómo añadir una etapa de origen que usa un repositorio de GitHub como acción de origen. Para obtener más información acerca de cómo CodePipeline se integra con GitHub, consulte Integraciones de acciones de código fuente.

    nota

    Esto es solo un fragmento del archivo, no toda la estructura. Para obtener más información, consulte Referencia de la estructura de la canalización de CodePipeline.

    { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "ThirdParty", "provider": "GitHub", "version": "1" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "PollForSourceChanges": "false", "Branch": "master", "OAuthToken": "****" }, "runOrder": 1 } ] },

    El valor de OAuthToken permanece enmascarados porque la utiliza CodePipeline con el fin de obtener acceso al repositorio de GitHub. Para este valor, puede usar un token de acceso personal. Para crear un token de acceso personal, consulte Error de canalización: aparece un error de canalización que indica que no se pudo tener acceso al repositorio de GitHub o que no se pudo conectar con el repositorio de GitHub.

    nota

    Algunas ediciones, como cambiar una acción de una etapa a otra, eliminan el último historial de estado conocido de la acción. Si una canalización incluye uno o varios parámetros secretos, como un token de OAuth para una acción, ese token se muestra enmascarado con asteriscos (****). Los parámetros secretos no presentan cambios a menos que usted edite esa parte de la canalización (por ejemplo, si cambia el nombre de la acción que incluye el token de OAuth o el nombre de la etapa que incluye una acción que usa un token de OAuth). Si realiza un cambio que afecta a una acción que incluye un token de OAuth, deberá incluir el valor del token en JSON editado. Para obtener más información, consulte Referencia de la estructura de la canalización de CodePipeline. Rotar el token de acceso personal de manera regular es una de las prácticas recomendadas de seguridad. Para obtener más información, consulte Rotación del token de acceso personal de GitHub de forma regular (GitHub y la CLI).

    Para obtener información sobre el modo utilizar la CLI para añadir una acción de aprobación a una canalización, consulte Adición de una acción de aprobación manual a una canalización en CodePipeline .

    Asegúrese de que el parámetro PollForSourceChanges del archivo JSON se ha establecido de la siguiente manera:

    "PollForSourceChanges": "false",

    CodePipeline utiliza Amazon CloudWatch Events para detectar cambios en el repositorio y la ramificación de origen de CodeCommit o bucket de origen de Amazon S3. CodePipeline utiliza webhooks para detectar cambios en su repositorio y ramificación de origen de GitHub. El siguiente paso incluye instrucciones para crear estos recursos manualmente. Al definir la marca como false, se deshabilitan las comprobaciones periódicas, que no son obligatorias cuando utiliza los métodos de detección de cambios recomendados.

  3. Para añadir una acción de prueba, compilación o implementación en una región diferente a la de la canalización, debe añadir lo siguiente a su estructura de la canalización. Para obtener instrucciones detalladas, consulte Añadir una acción entre regiones en CodePipeline.

    • Añada el parámetro Region a la estructura de la canalización de su acción.

    • Utilice el parámetro artifactStores para especificar un bucket de artefactos para cada región en la que tiene una acción.

  4. Si está trabajando con la estructura de la canalización recuperada mediante el comando get-pipeline, debe modificar la estructura del archivo JSON. Debe eliminar las líneas metadata del archivo para que el comando update-pipeline pueda utilizarlo. Quite la sección de la estructura de canalizaciones del archivo JSON (las líneas "metadata": { } y los campos "created", "pipelineARN" y "updated" que contenga).

    Por ejemplo, quite las siguientes líneas de la estructura:

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    Guarde el archivo.

  5. Si utiliza la CLI para editar una canalización, debe administrar manualmente los recursos de detección de cambios recomendados para dicha canalización:

  6. Para aplicar los cambios, ejecute el comando update-pipeline especificando el archivo JSON:

    importante

    Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json

    Este comando devuelve la estructura completa de la canalización editada.

    nota

    El comando update-pipeline detiene la canalización. Si se está ejecutando una revisión en la canalización al ejecutar el comando update-pipeline, dicha ejecución se detiene. Debe comenzar la canalización actualizada manualmente para ejecutar dicha revisión en ella.

  7. Abra la consola de CodePipeline y elija la canalización que acaba de editar.

    La canalización muestra los cambios. La próxima vez que haga un cambio en la ubicación de origen, la canalización ejecuta dicha revisión a través de la estructura revisada de la canalización.

  8. Para ejecutar manualmente la última revisión a través de la estructura revisada de la canalización, ejecute el comando start-pipeline-execution. Para obtener más información, consulte Iniciar manualmente una canalización en AWS CodePipeline.

Para obtener más información sobre la estructura de una canalización y los valores previstos, consulte Referencia de la estructura de la canalización de CodePipeline y Referencia de la API de AWS CodePipeline.