Migrar un repositorio de Git a AWS CodeCommit - AWS CodeCommit

AWS CodeCommit ya no está disponible para nuevos clientes. Los clientes existentes de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información

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.

Migrar un repositorio de Git a AWS CodeCommit

Puede migrar un repositorio de Git existente a un repositorio de CodeCommit. Los procedimientos incluidos en este tema muestran cómo migrar a CodeCommit un proyecto que se aloja en otro repositorio Git. Como parte de este proceso:

  • Completará la configuración inicial necesaria para CodeCommit

  • Creará un repositorio de CodeCommit.

  • Clonará el repositorio y lo enviará a CodeCommit

  • Visualizará los archivos en el repositorio de CodeCommit.

  • Compartirá el repositorio de CodeCommit con su equipo.

Migrará un repositorio de Git a CodeCommit

Paso 0: Configuración necesaria para acceder a CodeCommit

Antes de migrar un repositorio a CodeCommit, deberá crear y configurar un usuario de IAM para CodeCommit y configurar el equipo local para el acceso. También deberá instalar la AWS CLI para administrar CodeCommit. Aunque puede realizar la mayoría de las tareas de CodeCommit sin la AWS CLI, esta ofrece flexibilidad a la hora de trabajar con Git en la línea de comandos o el terminal.

Si ya ha realizado las configuraciones necesarias para CodeCommit, puede pasar directamente a Paso 1: Crear un repositorio de CodeCommit.

Para crear y configurar un usuario de IAM para obtener acceso a CodeCommit
  1. Para crear una cuenta de Amazon Web Services, acceda a http://aws.amazon.com y seleccione Registrarse.

  2. Cree un usuario de IAM o use uno existente en su cuenta de Amazon Web Services. Asegúrese de que tiene un ID de clave de acceso y una clave de acceso secreta asociados a ese usuario de IAM. Para obtener más información, consulte Creación de un usuario de IAM en su cuenta de Amazon Web Services.

    nota

    CodeCommit requiere AWS Key Management Service. Si está usando un usuario de IAM existente, asegúrese de que no haya directivas asociadas al usuario que denieguen expresamente las acciones de AWS KMS requeridas por CodeCommit. Para obtener más información, consulte AWS KMS y cifrado.

  3. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  4. En la consola de IAM, en el panel de navegación, seleccione Usuarios y, a continuación haga clic en el usuario de IAM que desee configurar para el acceso a CodeCommit.

  5. En la pestaña Permissions, seleccione Add Permissions.

  6. En Grant permissions, elija Attach existing policies directly.

  7. En la lista de políticas, seleccione AWSCodeCommitPowerUser u otra política administrada para obtener acceso a CodeCommit. Para obtener más información, consulte AWS políticas gestionadas para CodeCommit.

    Una vez que haya seleccionado la política que desee asociar, seleccione Siguiente: Revisar para revisar la lista de políticas que se van a asociar al usuario de IAM. Si la lista es correcta, seleccione Add permissions.

    Para obtener más información sobre las políticas administradas de CodeCommit y cómo compartir el acceso a los repositorios con otros grupos y usuarios, consulte Compartir un repositorio y Autenticación y control de acceso de AWS CodeCommit.

Para instalar y configurar la AWS CLI
  1. En el equipo local, descargue e instale la AWS CLI. Se trata de un requisito previo para interactuar con CodeCommit en la línea de comandos. Le recomendamos que instale la versión 2 de AWS CLI. Es la versión principal más reciente de la AWS CLI y es compatible con todas las características más recientes. Es la única versión de la AWS CLI que admite el uso de una cuenta raíz, un acceso federado o credenciales temporales con git-remote-codecommit.

    Para obtener más información, consulte Instalación de la interfaz de la línea de comandos de AWS.

    nota

    CodeCommit solo funciona con las versiones 1.7.38 y posteriores de AWS CLI. Como práctica recomendada, instale o actualice la AWS CLI a la versión más reciente disponible. Para determinar qué versión de la AWS CLI tiene instalada, ejecute el comando aws --version.

    Para actualizar una versión anterior de la AWS CLI a la última versión, consulte Instalación de la AWS Command Line Interface.

  2. Ejecute este comando para comprobar que se han instalado los comandos de CodeCommit para la AWS CLI.

    aws codecommit help

    Este comando devuelve una lista de comandos de CodeCommit.

  3. Configure la AWS CLI con un perfil mediante el comando configure, como se indica a continuación:

    aws configure

    Cuando se le solicite, especifique las claves de acceso de AWS y la clave de acceso secreta de AWS del usuario de IAM que usar con CodeCommit. Asegúrese también de especificar la Región de AWS donde se encuentra el repositorio como, por ejemplo, us-east-2. Cuando se le pregunte el formato de salida predeterminado, indique json. Por ejemplo, si está configurando un perfil para un usuario de IAM:

    AWS Access Key ID [None]: Type your IAM user AWS access key ID here, and then press Enter AWS Secret Access Key [None]: Type your IAM user AWS secret access key here, and then press Enter Default region name [None]: Type a supported region for CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter

    Para obtener más información acerca de la creación y configuración de perfiles para utilizarlos con la AWS CLI, consulte lo siguiente:

    Para conectarse a un repositorio o a un recurso en otra Región de AWS, debe volver a configurar la AWS CLI con el nombre de la región predeterminada. Entre los nombres de las regiones predeterminadas de CodeCommit compatibles se incluyen:

    • us-east-2

    • us-east-1

    • eu-west-1

    • us-west-2

    • ap-northeast-1

    • ap-southeast-1

    • ap-southeast-2

    • ap-southeast-3

    • me-central-1

    • eu-central-1

    • ap-northeast-2

    • sa-east-1

    • us-west-1

    • eu-west-2

    • ap-south-1

    • ap-south-1

    • ca-central-1

    • us-gov-oeste-1

    • us-gov-este-1

    • eu-north-1

    • ap-east-1

    • me-south-1

    • cn-north-1

    • cn-northwest-1

    • eu-south-1

    • ap-northeast-3

    • af-south-1

    • il-central-1

    Para obtener más información sobre Región de AWS y CodeCommit, consulte Regiones y puntos de conexión de Git. Para obtener más información sobre IAM, claves de acceso y claves secretas, consulte ¿Cómo puedo obtener credenciales? y Gestión de claves de acceso para usuarios de IAM Para obtener más información sobre la AWS CLI y los perfiles, consulte Perfiles con nombre.

A continuación, deberá instalar Git.

  • Para Linux, macOS o Unix:

    Para trabajar con archivos, confirmaciones y otra información en los repositorios de CodeCommit, debe instalar Git en su equipo local. CodeCommit admite las versiones de Git 1.7.9 y posteriores. La versión 2.28 de Git admite la configuración del nombre de la ramificación para las confirmaciones iniciales. Recomendamos usar una versión reciente de Git.

    Para instalar Git, le recomendamos sitios web como Git Downloads.

    nota

    Git es una plataforma en evolución que se actualiza periódicamente. En ocasiones, un cambio en una característica podría afectar a la forma en que trabaja con CodeCommit. Si experimenta problemas con una versión específica de Git y CodeCommit, consulte la información de Resolución de problemas.

  • Para Windows:

    Para trabajar con archivos, confirmaciones y otra información en los repositorios de CodeCommit, debe instalar Git en su equipo local. CodeCommit admite las versiones de Git 1.7.9 y posteriores. La versión 2.28 de Git admite la configuración del nombre de la ramificación para las confirmaciones iniciales. Recomendamos usar una versión reciente de Git.

    Para instalar Git, le recomendamos sitios web como Git for Windows. Si utiliza este enlace para instalar Git, puede aceptar todos los ajustes predeterminados de la instalación excepto los siguientes:

    nota

    Git es una plataforma en evolución que se actualiza periódicamente. En ocasiones, un cambio en una característica podría afectar a la forma en que trabaja con CodeCommit. Si experimenta problemas con una versión específica de Git y CodeCommit, consulte la información de Resolución de problemas.

CodeCommit admite la autenticación de HTTPS y SSH. Para completar la configuración, debe definir las credenciales de Git para CodeCommit (HTTPS, recomendado para la mayoría de los usuarios), un par de claves SSH para acceder a CodeCommit, git-remote-codecommit (recomendado para los usuarios que utilizan el acceso federado) o la aplicación ayudante de credenciales incluida en la AWS CLI (HTTPS).

Paso 1: Crear un repositorio de CodeCommit

En esta sección, utiliza la consola de CodeCommit para crear el repositorio de CodeCommit que se utiliza en lo que queda de tutorial. Para utilizar la AWS CLI para crear el repositorio, consulte Creación de un repositorio (AWS CLI).

  1. Abra la consola de CodeCommit en https://console.aws.amazon.com/codesuite/codecommit/home.

  2. En la selección de regiones, seleccione la Región de AWS en la que desea crear el repositorio. Para obtener más información, consulte Regiones y puntos de conexión de Git.

  3. En la página Repositorios, seleccione Crear repositorio.

  4. En la página Create repository (Crear repositorio), en el campo Repository name (Nombre de repositorio), escriba un nombre para el repositorio.

    nota

    Los nombres de repositorio distinguen entre mayúsculas y minúsculas. El nombre debe ser único en la Región de AWS y de su cuenta de Amazon Web Services.

  5. (Opcional) En Descripción, introduzca una descripción para el repositorio. Esto puede ayudarle a usted y a otros usuarios a conocer el propósito del repositorio.

    nota

    El campo de descripción muestra Marcado en la consola y acepta todos los caracteres HTML y caracteres Unicode válidos. Si es un desarrollador de aplicaciones que utiliza GetRepository o las API de BatchGetRepositories y tiene pensado mostrar el campo de descripción del repositorio en un navegador web, consulte la Referencia de la API de CodeCommit.

  6. (Opcional) Elija Add tag (Añadir etiqueta) para añadir una o más etiquetas de repositorio (una etiqueta de atributo personalizada que le ayuda a organizar y administrar sus recursos de AWS) a su repositorio. Para obtener más información, consulte Etiquetar repositorios en AWS CodeCommit.

  7. (Opcional) Amplíe Configuración adicional para especificar si desea utilizar la Clave administrada de AWS predeterminada o la suya propia administrada por el cliente para cifrar y descifrar los datos de este repositorio. Si decide utilizar su propia clave gestionada por el cliente, debe asegurarse de que esté disponible en la Región de AWS lugar donde vaya a crear el repositorio y de que la clave esté activa. Para obtener más información, consulte AWS Key Management Service y cifrado de repositorios de AWS CodeCommit.

  8. (Opcional) Seleccione Activar el revisor de Amazon CodeGuru para Java y Python si este repositorio contiene código de Java o Python y desea que el revisor de CodeGuru lo analice. El revisor de CodeGuru utiliza varios modelos de machine learning para encontrar defectos en el código y sugerir mejoras y correcciones en las solicitudes de cambios. Para más información, consulte la guía de usuario del revisor de Amazon CodeGuru.

  9. Seleccione Crear.

Creación de un repositorio para migrar un repositorio Git a CodeCommit

Una vez creado, el repositorio aparece en la lista Repositories (Repositorios). En la columna URL, seleccione el icono de copia y, a continuación, elija el protocolo (SSH o HTTPS) que se utiliza para conectar a CodeCommit. Copie la dirección URL.

Por ejemplo, si el nombre de su repositorio es MyClonedRepository y utiliza las credenciales de Git con HTTPS en la región este de EE. UU. (Ohio), la URL tiene un aspecto similar al siguiente:

https://git-codecommit.us-east-2.amazonaws.com/MyClonedRepository

Necesita esta URL más adelante en Paso 2: Clonar el repositorio y enviarlo al repositorio de CodeCommit.

Paso 2: Clonar el repositorio y enviarlo al repositorio de CodeCommit

En esta sección, clona un repositorio Git en el equipo local, lo que dará lugar a lo que se denomina un repositorio local. A continuación, envíe el contenido del repositorio local al repositorio de CodeCommit creado anteriormente.

  1. Desde el terminal o el símbolo del sistema en su equipo local, ejecute el comando git clone con la opción --mirror para clonar una copia vacía del repositorio remoto en una nueva carpeta con el nombre aws-codecommit-demo. Se trata de un repositorio vacío concebido solamente para la migración. No es el repositorio local para interacción con el repositorio migrado en CodeCommit. Puede crearlo más adelante, después de que se haya completado la migración a CodeCommit.

    En el siguiente ejemplo se clona una aplicación de demostración alojada en GitHub (https://github.com/awslabs/aws-demo-php-simple-app.git) en un repositorio local en un directorio denominado aws-codecommit-demo.

    git clone --mirror https://github.com/awslabs/aws-demo-php-simple-app.git aws-codecommit-demo
  2. Cambie los directorios por el directorio en el que ha realizado la clonación.

    cd aws-codecommit-demo
  3. Ejecute el comando git push y especifique la URL y el nombre del repositorio de destino de CodeCommit y la opción --all. (Esta es la URL que copió en Paso 1: Crear un repositorio de CodeCommit).

    Por ejemplo, si el nombre de su repositorio es MyClonedRepository y tiene fijada la opción para utilizar HTTPS, ejecutaría el siguiente comando:

    git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository --all
    nota

    La opción --all solo envía todas las ramificaciones al repositorio. No envía otras referencias, como, por ejemplo, etiquetas. Si desea enviar etiquetas, espere hasta que se haya completado el envío inicial y, a continuación, envíe de nuevo, esta vez con la opción --tags.

    git push ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository --tags

    Para obtener más información, consulte Git push en el sitio web de Git. Para obtener más información sobre el envío de grandes repositorios, especialmente cuando se envían todas las referencias a la vez (por ejemplo, con la opción --mirror), consulte Migrar de forma incremental un repositorio.

Puede eliminar la carpeta aws-codecommit-demo y su contenido después de migrar el repositorio a CodeCommit. Para crear un repositorio local que contenga todas las referencias correctas para trabajar con el repositorio en CodeCommit, ejecute el comando git clone sin la opción --mirror:

git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository

Paso 3: Visualizar archivos en CodeCommit

Después de enviar el contenido de su directorio, puede utilizar la consola de CodeCommit para ver rápidamente todos los archivos de ese repositorio.

  1. Abra la consola de CodeCommit en https://console.aws.amazon.com/codesuite/codecommit/home.

  2. En Repositories (Repositorios) elija el nombre del repositorio (por ejemplo, MyClonedRepository).

  3. Vea los archivos del repositorio para las ramificaciones, las URL de clonación, la configuración y mucho más.

    Visualización de un repositorio clonado en CodeCommit

Paso 4: Compartir el repositorio de CodeCommit

Al crear un repositorio en CodeCommit, se generan dos puntos de conexión: uno para conexiones HTTPS y otro para conexiones SSH. Ambas proporcionan conexiones seguras a través de una red. Los usuarios pueden utilizar cualquiera de los dos protocolos. Ambos puntos de enlace permanecen activos, independientemente del protocolo que recomiende a los usuarios. Antes de poder compartir sus repositorios con otros usuarios, debe crear políticas de IAM que permitan a otros usuarios acceder a su repositorio. Proporcione las instrucciones de acceso a sus usuarios.

Creación de una política administrada por el cliente para su repositorio
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el área de navegación Dashboard, elija Policies y, a continuación, seleccione Create Policy.

  3. En la página Crear política, seleccione Importar política administrada.

  4. En la página Importar políticas administradas, en Filtrar políticas, introduzca AWSCodeCommitPowerUser. Seleccione el botón situado junto al nombre de la política y, a continuación, seleccione Importar.

  5. En la página Crear política, elija JSON. Sustituya la parte «*» de la línea Resource para las acciones de CodeCommit por el nombre de recurso de Amazon (ARN) del repositorio de CodeCommit, como se muestra aquí:

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo" ]
    sugerencia

    Para encontrar el ARN del repositorio de CodeCommit, vaya a la consola de CodeCommit y seleccione el nombre del repositorio de la lista y seleccione Ajustes. Para obtener más información, consulte Visualización de la información de los repositorios.

    Si desea que esta política se aplique a más de un repositorio, añada cada repositorio como recurso y especifique su ARN. Añada una coma entre cada declaración de recursos, tal y como se muestra aquí:

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", "arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo" ]

    Cuando haya terminado de editar, seleccione Revisar la política.

  6. En la página Revisar la política, en Nombre, introduzca un nombre para la política (por ejemplo, AWSCodeCommitPowerUser-MyDemoRepo). Opcionalmente, puede proporcionar una descripción opcional para esta política.

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

Para administrar el acceso a su repositorio, cree un grupo para los usuarios de IAM, añada usuarios de IAM a este grupo y adjunte la política administrada por el cliente que haya creado en el paso anterior. Adjunte cualquier otra política necesaria para el acceso, como, por ejemplo, IAMUserSSHKeys o IAMSelfManageServiceSpecificCredentials.

  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el área de navegación Dashboard, elija Groups y, a continuación, seleccione Create New Group.

  3. En la página Establecer el nombre del grupo, en Nombre del grupo, introduzca un nombre para el grupo (por ejemplo, MyDemoRepoGroup) y seleccione Siguiente paso. Tenga en cuenta la posibilidad de incluir el nombre del repositorio como parte del nombre del grupo.

    nota

    Este nombre debe ser exclusivo de una cuenta de Amazon Web Services.

  4. Seleccione la casilla situada junto a la política administrada por el cliente que haya creado en la sección anterior (por ejemplo, AWSCodeCommitPowerUser-MyDemoRepo).

  5. En la página Review, elija Create Group. IAM crea este grupo con las políticas especificadas ya adjuntas. El grupo aparece en la lista de grupos asociados con su cuenta de Amazon Web Services.

  6. Seleccione su grupo de la lista.

  7. En la página de resumen de grupo, elija la pestaña Users y, continuación, seleccione Add Users to Group. En la lista en la que se muestran todos los usuarios asociados con la cuenta de Amazon Web Services, seleccione las casillas situadas junto a los usuarios a quienes desee permitir el acceso al repositorio de CodeCommit y haga clic en Añadir usuarios.

    sugerencia

    Puede usar el cuadro de búsqueda para encontrar rápidamente a los usuarios por su nombre.

  8. Cuando haya agregado sus usuarios, cierre la consola de IAM.

Una vez que haya creado un usuario de IAM para acceder a CodeCommit con el grupo de políticas y las políticas que ha configurado, envíe a dicho usuario la información necesaria para conectar al repositorio.

  1. Abra la consola de CodeCommit en https://console.aws.amazon.com/codesuite/codecommit/home.

  2. En el selector de regiones, seleccione la región en la que se creó el repositorio de Región de AWS. Cada Región de AWS tiene sus propios repositorios. Para obtener más información, consulte Regiones y puntos de conexión de Git.

  3. En la página Repositories (Repositorios), elija el repositorio que desea compartir.

  4. En Clone URL (URL de clonación), elija el protocolo que desee que utilicen los usuarios. Esto copiará la URL de clonación del protocolo de conexión.

  5. Envíe a los usuarios la URL de conexión junto con cualquier otra instrucción, como la instalación de la AWS CLI, la configuración de un perfil o la instalación de Git. Asegúrese de incluir la información de configuración para el protocolo de conexión (por ejemplo, HTTPS).