

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

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.

# Configuración de un devfile para un entorno de desarrollo
<a name="devenvironment-devfile"></a>

Un *devfile* es un estándar abierto que le ayuda a personalizar los entornos de desarrollo de su equipo. Un devfile es un archivo YAML que codifica las herramientas de desarrollo necesarias. Al configurar un devfile, puede predeterminar las herramientas de proyecto y las bibliotecas de aplicaciones que necesita y Amazon las CodeCatalyst instala en su entorno de desarrollo por usted. El devfile es específico del repositorio para el que se creó y se puede crear un devfile distinto para cada repositorio. El entorno de desarrollo admite comandos y eventos, y proporciona una imagen de devfile universal predeterminada.

Si crea un proyecto con el esquema vacío, puede crear un devfile manualmente. Si crea un proyecto con un plano diferente, CodeCatalyst crea un devfile automáticamente. El directorio `/projects` de un entorno de desarrollo almacena los archivos que se extraen del repositorio de código fuente y el devfile. El directorio `/home`, que está vacío al crear por primera vez el entorno de desarrollo, almacena los archivos que se crean mientras se utiliza el entorno de desarrollo. Todo lo que hay en los directorios `/projects` y `/home` de un entorno de desarrollo se almacena de forma persistente.

**nota**  
La carpeta `/home` solo cambia si cambia el nombre del devfile o del componente del devfile. Si cambia el nombre del devfile o del componente del devfile, se sustituirá el contenido del directorio `/home` y no se podrán recuperar los datos del directorio `/home` anterior.

Si crea un entorno de desarrollo con un repositorio de código fuente que no contiene un devfile en su raíz, o si crea un entorno de desarrollo sin un repositorio de código fuente, se aplicará automáticamente un devfile universal predeterminado al repositorio de código fuente. Para todos se utiliza la misma imagen de devfile universal predeterminada. IDEs CodeCatalyst actualmente es compatible con la versión 2.0.0 de devfile. Para obtener más información sobre el devfile, consulte [Devfile schema - Version 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).

**nota**  
Solo puede incluir imágenes de contenedor público en su archivo de desarrollo.

Tenga en cuenta que los entornos de desarrollo conectados a una VPC solo admiten las siguientes imágenes de devfile:
+ Imagen universal
+ Imágenes privadas de Amazon ECR, si el repositorio está en la misma región que la VPC

**Topics**
+ [Edición de un devfile de repositorio para un entorno de desarrollo](devenvironment-devfile-moving.md)
+ [Funciones de Devfile compatibles con CodeCatalyst](#devenvironment-devfile-support)
+ [Ejemplo de un devfile para un entorno de desarrollo](#devenvironment-devfile-example)
+ [Solución de problemas de un devfile de repositorio mediante el modo de recuperación](#devenvironment-devfile-recovery)
+ [Especificación de imágenes de devfile universales para un entorno de desarrollo](devenvironment-universal-image.md)
+ [Comandos de devfile](devenvironment-devfile-commands.md)
+ [Eventos de devfile](devenvironment-devfile-events.md)
+ [Componentes de devfile](devenvironment-devfile-components.md)

# Edición de un devfile de repositorio para un entorno de desarrollo
<a name="devenvironment-devfile-moving"></a>

Utilice el siguiente procedimiento para editar un devfile de repositorio para un entorno de desarrollo.

## Edición de un archivo de desarrollo de repositorio para un entorno de desarrollo en CodeCatalyst
<a name="devenvironment-devfile-procedure"></a><a name="devenvironment-devfile-steps"></a>

**Edición del devfile de repositorio**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya al proyecto que contenga el repositorio de código fuente para el que desee editar el devfile.

1. En el panel de navegación, seleccione **Código**.

1. Elija **Repositorios de código fuente**.

1. Elija el repositorio de código fuente que contenga el devfile que desea editar.

1. En la lista de archivos, seleccione el archivo `devfile.yaml`.

1. Elija **Edit (Edición de)**.

1. Edite el devfile.

1. Elija **Confirmar** o cree una solicitud de extracción para que un miembro del equipo pueda revisar y aprobar los cambios.

**nota**  
Si edita el devfile, debe reiniciar el devfile para que se apliquen los cambios. Esto se puede hacer ejecutando `/aws/mde/mde start --location devfile.yaml`. Si hay algún problema al iniciar el devfile, entrará en modo de recuperación. Sin embargo, si edita un devfile asociado a un entorno de desarrollo conectado a una VPC, tendrá que reiniciar el entorno de desarrollo en su lugar para que los cambios surtan efecto.

Puede saber qué devfile se está utilizando ejecutando `/aws/mde/mde status`. El campo de ubicación tiene la ruta del devfile relativa a la carpeta `/projects` del entorno.

```
{
            "status": "STABLE",
            "location": "devfile.yaml"
        }
```

También puede mover el devfile predeterminado de `/projects/devfile.yaml` a su repositorio de código fuente. Para actualizar la ubicación del devfile, use el siguiente comando: `/aws/mde/mde start --location repository-name/devfile.yaml`.

## Edición de un devfile de repositorio para un entorno de desarrollo en un IDE
<a name="devenvironment-devfile-ide"></a>

Para cambiar la configuración de un entorno de desarrollo, debe editar el devfile. Le recomendamos que edite el archivo de desarrollo en un IDE compatible y, a continuación, actualice su entorno de desarrollo, pero también puede editar el archivo de desarrollo desde la raíz del repositorio de origen en. CodeCatalyst Si edita el devfile en un IDE compatible, debe confirmar y enviar los cambios al repositorio de código fuente o crear una solicitud de extracción para que un miembro del equipo pueda revisar y aprobar los cambios en el devfile.
+ [Edición del archivo de desarrollo del repositorio para un entorno de desarrollo en AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/devenvironment-cloud9.title.html#ide-toolkits-edit-devfile-cloud9)
+ [Edición del devfile de repositorio para un entorno de desarrollo en VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codecatalyst-devenvironment.html#codecatalyst-devenvironment-devfile)
+ [Edición del archivo de desarrollo del repositorio para un entorno de desarrollo en JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/codecatalyst-overview.html#codecatalyst-overview-default)

## Funciones de Devfile compatibles con CodeCatalyst
<a name="devenvironment-devfile-support"></a>

CodeCatalyst admite las siguientes funciones de devfile en la versión 2.0.0. Para obtener más información sobre el devfile, consulte [Devfile schema - Version 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).


| Característica | Tipo | 
| --- | --- | 
|  `exec`  |  Comando  | 
|  `postStart`  |  Event  | 
|  `container`  |  Componente  | 
|  `args`  |  Propiedades del componente  | 
|  `env`  |  Propiedades del componente  | 
|  `mountSources`  |  Propiedades del componente  | 
|  `volumeMounts`  |  Propiedades del componente  | 

## Ejemplo de un devfile para un entorno de desarrollo
<a name="devenvironment-devfile-example"></a>

A continuación se muestra un ejemplo de un devfile sencillo.

```
schemaVersion: 2.0.0
metadata:
  name: al2
components:
  - name: test
    container:
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      mountSources: true
      command: ['sleep', 'infinity']
  - name: dockerstore
commands:
  - id: setupscript
    exec:
      component: test
      commandLine: "chmod +x script.sh"
      workingDir: /projects/devfiles
  - id: executescript
    exec:
      component: test
      commandLine: "/projects/devfiles/script.sh"
  - id: yumupdate
    exec:
      component: test
      commandLine: "yum -y update --security"
events:
  postStart:
    - setupscript
    - executescript
    - yumupdate
```

Los registros de inicio, comandos y eventos del devfile se capturan y almacenan en `/aws/mde/logs`. Para depurar el comportamiento del devfile, inicie el entorno de desarrollo con un devfile que funcione y acceda a los registros.

## Solución de problemas de un devfile de repositorio mediante el modo de recuperación
<a name="devenvironment-devfile-recovery"></a>

Si hay algún problema al iniciar el devfile, este pasará al modo de recuperación para que pueda seguir conectándose a su entorno y corregir el devfile. Mientras esté en modo de recuperación, al ejecutar `/aws/mde/mde status` no se incluirá la ubicación del devfile.

```
{
            "status": "STABLE"
        }
```

Puede comprobar el error en los registros bajo `/aws/mde/logs`, corregir el devfile e intentar volver a ejecutar `/aws/mde/mde start`.

# Especificación de imágenes de devfile universales para un entorno de desarrollo
<a name="devenvironment-universal-image"></a>

La *imagen universal* predeterminada incluye los lenguajes de programación más utilizados y las herramientas relacionadas que se pueden usar para su IDE. Si no se especifica ninguna imagen, CodeCatalyst proporciona esta imagen y contiene herramientas mantenidas por CodeCatalyst. Para mantenerse informado de las nuevas versiones de imágenes, consulte [Suscripción a notificaciones de imágenes universales con SNS](#devenvironment-universal-notifications).

Amazon apoya CodeCatalyst activamente las siguientes imágenes de devfile:


| Versión de imagen | Identificador de imagen | 
| --- | --- | 
| Universal image 4.0 | public.ecr.aws/aws-mde/universal-image:4.0 | 
| Universal image 5.0 | public.ecr.aws/aws-mde/universal-image:5.0 | 

**nota**  
También puede utilizar `public.ecr.aws/aws-mde/universal-image:latest` para obtener la imagen más reciente, que actualmente es `public.ecr.aws/aws-mde/universal-image:5.0`.

CodeCatalyst ha dejado en desuso las siguientes imágenes. Puede seguir utilizando estas imágenes, pero no estarán almacenadas en caché en el host de compilación y, por lo tanto, aumentará el tiempo de arranque de los entornos de desarrollo.


| Versión de imagen | Identificador de imagen | Fecha de baja | 
| --- | --- | --- | 
| Universal image 1.0 | public.ecr.aws/aws-mde/universal-image:1.0 | 16 de agosto de 2024 | 
| Universal image 2.0 | public.ecr.aws/aws-mde/universal-image:2.0 | 16 de agosto de 2024 | 
| Universal image 3.0 | public.ecr.aws/aws-mde/universal-image:3.0 | 30 de julio de 2025 | 

**nota**  
Si lo estás usando AWS Cloud9, la función de autocompletar no funcionará para PHP, Ruby y CSS después de la actualización a`universal-image:3.0`.

**Topics**
+ [Suscripción a notificaciones de imágenes universales con SNS](#devenvironment-universal-notifications)
+ [Versiones del entorno en tiempo de ejecución de imágenes universales 4.0](#devenvironment-universal-runtimes-4.0)
+ [Versiones en tiempo de ejecución de Universal Image 5.0](#devenvironment-universal-runtimes-5.0)

## Suscripción a notificaciones de imágenes universales con SNS
<a name="devenvironment-universal-notifications"></a>

CodeCatalyst proporciona un servicio universal de notificación de imágenes. Puede utilizarla para suscribirse a un tema del Amazon Simple Notification Service (SNS) que le notifique cuando se publiquen actualizaciones de imágenes CodeCatalyst universales. Para obtener más información sobre los temas de SNS, consulte [¿Qué es Amazon Simple Notification Service?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

Cada vez que se publican nuevas imágenes universales, enviamos notificaciones a los suscriptores; en esta sección se describe cómo suscribirse a las actualizaciones de imágenes CodeCatalyst universales.

**Mensaje de ejemplo**

```
{
    "Type": "Notification",
    "MessageId": "123456789",
    "TopicArn": "arn:aws:sns:us-east-1:1234657890:universal-image-updates",
    "Subject": "New Universal Image Release",
    "Message": {
        "v1": {
            "Message": "A new version of the Universal Image has been released. You are now able to launch new DevEnvironments using this image.",
            "image ": {
                "release_type": "MAJOR VERSION",
                "image_name": "universal-image",
                "image_version": "2.0",
                "image_uri": "public.ecr.aws/amazonlinux/universal-image:2.0"
            }
        }
    },
    "Timestamp": "2021-09-03T19:05:57.882Z",
    "UnsubscribeURL": "example url"
}
```

**Para suscribirse a actualizaciones de imágenes CodeCatalyst universales mediante la consola Amazon SNS**

1. Abra [Panel](https://console.aws.amazon.com/sns/v2/home) en la consola de Amazon SNS.

1. En la barra de navegación, elija su. Región de AWS

1. En el panel de navegación, seleccione **Suscripciones** y, a continuación, elija **Crear suscripción**.

1. En **ARN del tema**, escriba `arn:aws:sns:us-east-1:089793673375:universal-image-updates`.

1. En **Protocol (Protocolo)**, elija **Email (Correo electrónico)**.

1. En **Punto de conexión**, proporcione una dirección de correo electrónico. Esta dirección de correo electrónico se usará para recibir las notificaciones.

1. Seleccione **Crear subscripción**.

1. Recibirás un correo electrónico de confirmación con el asunto «AWS Notificación: confirmación de suscripción». Abra el correo electrónico y elija **Confirmar suscripción**.

**Para cancelar la suscripción a las actualizaciones CodeCatalyst universales de imágenes mediante la consola Amazon SNS**

1. Abra [Panel](https://console.aws.amazon.com/sns/v2/home) en la consola de Amazon SNS.

1. En la barra de navegación, elija su. Región de AWS

1. En el panel de navegación, elija **Suscripciones** y, a continuación, seleccione la suscripción de la que desea darse de baja.

1. Elija **Acciones** y después **Eliminar suscripciones**.

1. Elija **Eliminar**.

## Versiones del entorno en tiempo de ejecución de imágenes universales 4.0
<a name="devenvironment-universal-runtimes-4.0"></a>

En la tabla siguiente se muestran los entornos en tiempo de ejecución disponibles para `universal-image:4.0`.


**Versiones del entorno en tiempo de ejecución de `universal-image:4.0`**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codecatalyst/latest/userguide/devenvironment-universal-image.html)

## Versiones en tiempo de ejecución de Universal Image 5.0
<a name="devenvironment-universal-runtimes-5.0"></a>

En la tabla siguiente se muestran los entornos en tiempo de ejecución disponibles para `universal-image:5.0`.


**Versiones del entorno en tiempo de ejecución de `universal-image:5.0`**  

| Nombre del entorno de tiempo de ejecución  | Versión | Versión principal específica y última versión secundaria | 
| --- | --- | --- | 
| CLI de AWS |  2.25  |  `aws-cli: 2.x`  | 
| Docker Compose |  2.34  |  `docker-compose: 2.x`  | 
| dotnet |  8.0  |  `dotnet: 8.x`  | 
| golang |  1.24  |  `golang: 1.x`  | 
| java |  corretto21  |  `java: corretto21.x`  | 
| nodejs |  22.0  |  `nodejs: 22.x`  | 
| php |  8.3.16  |  `php: 8.x`  | 
| python |  3.12  |  `python: 3.x`  | 
| ruby |  3.4.2  |  `ruby: 3.x`  | 
| Terraform |  1.10.5  |  `terraform: 1.x`  | 

# Comandos de devfile
<a name="devenvironment-devfile-commands"></a>

Actualmente, CodeCatalyst solo admite `exec` comandos en su devfile. Para obtener más información, consulte [Adding commands](https://devfile.io/docs/2.0.0/adding-commands) en la documentación de Devfile.io.

En el siguiente ejemplo se muestra cómo especificar comandos `exec` en un devfile.

```
commands:
  - id: setupscript
    exec:
      component: test
      commandLine: "chmod +x script.sh"
      workingDir: /projects/devfiles
  - id: executescript
    exec:
      component: test
      commandLine: "./projects/devfiles/script.sh"
  - id: updateyum
    exec:
      component: test
      commandLine: "yum -y update --security"
```

Una vez conectado a su entorno de desarrollo, puede ejecutar los comandos definidos a través del terminal.

```
/aws/mde/mde command <command-id>
/aws/mde/mde command executescript
```

En el caso de comandos de ejecución prolongada, puede usa el indicador de streaming `-s` para mostrar la ejecución del comando en tiempo real.

```
/aws/mde/mde -s command <command-id>
```

**nota**  
`command-id` debe estar en minúscula.

## Los parámetros de ejecución son compatibles con CodeCatalyst
<a name="devenvironment-exec-support"></a>

CodeCatalyst admite los siguientes `exec` parámetros en la versión 2.0.0 de devfile.
+ `commandLine`
+ `component`
+ `id`
+ `workingDir`

# Eventos de devfile
<a name="devenvironment-devfile-events"></a>

Actualmente, CodeCatalyst solo admite `postStart` eventos en tu devfile. Para obtener más información, consulta la documentación [postStartObject](https://devfile.io/docs/2.0.0/adding-event-bindings#post-start-object)de DevFile.io.

En el siguiente ejemplo se muestra cómo añadir enlaces de eventos `postStart` en un devfile.

```
commands:
  - id: executescript
    exec:
      component: test
      commandLine: "./projects/devfiles/script.sh"
  - id: updateyum
    exec:
      component: test
      commandLine: "yum -y update --security"
events:
  postStart:
    - updateyum
    - executescript
```

Tras el inicio, su entorno de desarrollo ejecutará los comandos `postStart` especificados en el orden en que estén definidos. Si se produce un error en un comando, el entorno de desarrollo seguirá ejecutándose y el resultado de la ejecución se almacenará en los registros bajo `/aws/mde/logs`.

# Componentes de devfile
<a name="devenvironment-devfile-components"></a>

Actualmente, CodeCatalyst solo admite `container` los componentes de su devfile. Para obtener más información, consulte [Adding components](https://devfile.io/docs/2.0.0/adding-components) en la documentación de Devfile.io.

El siguiente ejemplo muestra cómo agregar un comando de inicio a su contenedor en un devfile.

```
components:
  - name: test
    container:
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      command: ['sleep', 'infinity']
```

**nota**  
Si el contenedor tiene un comando de entrada de corta duración, debe incluir `command: ['sleep', 'infinity']` para que el contenedor siga funcionando.

CodeCatalyst también admite las siguientes propiedades en el componente contenedor:`args`, `env``mountSources`, y`volumeMounts`.