

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.

# Depurar compilaciones AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild proporciona dos métodos para depurar las compilaciones durante el desarrollo y la solución de problemas. Puede usar el entorno CodeBuild Sandbox para investigar problemas y validar las correcciones en tiempo real, o puede usar el administrador de sesiones de AWS Systems Manager para conectarse al contenedor de compilación y ver su estado.

## Depure compilaciones con sandbox CodeBuild
<a name="debug-codebuild-sandbox"></a>

El entorno CodeBuild sandbox proporciona una sesión de depuración interactiva en un entorno seguro y aislado. Puede interactuar con el entorno directamente a través del Consola de administración de AWS o AWS CLI, ejecutar comandos y validar el proceso de compilación paso a paso. Utiliza un modelo de facturación por segundo rentable y admite la misma integración nativa con los proveedores y AWS servicios de origen que su entorno de compilación. También puedes conectarte a un entorno aislado mediante clientes SSH o desde tus entornos de desarrollo integrados (). IDEs

[Para obtener más información sobre los precios de CodeBuild sandbox, consulta la CodeBuild documentación de precios.](https://aws.amazon.com/codebuild/pricing/#Sandbox) Para obtener instrucciones detalladas, consulte la documentación de [Depurar compilaciones con sandbox CodeBuild](sandbox.md).

## Depuración de compilaciones con Administrador de sesiones
<a name="debug-codebuild-session-manager"></a>

AWS El administrador de sesiones de Systems Manager permite el acceso directo a las compilaciones en ejecución en su entorno de ejecución real. Este método le permite conectarse a contenedores de compilación activos e inspeccionar el proceso de compilación en tiempo real. Puede examinar el sistema de archivos, supervisar los procesos en ejecución y solucionar problemas a medida que se produzcan.

Para obtener instrucciones detalladas, consulte la documentación de [Depuración de compilaciones con Administrador de sesiones](session-manager.md).

# Depurar compilaciones con sandbox CodeBuild
<a name="sandbox"></a>

En AWS CodeBuild, puedes depurar una compilación mediante CodeBuild sandbox para ejecutar comandos personalizados y solucionar los problemas de la compilación.

**Topics**
+ [Requisitos previos](#sandbox-prereq)
+ [Depure compilaciones con CodeBuild sandbox (consola)](#sandbox-console)
+ [Depura compilaciones con sandbox () CodeBuild AWS CLI](#sandbox-cli)
+ [Tutorial: Conexión a un entorno de pruebas mediante SSH](sandbox-ssh-tutorial.md)
+ [Solución de problemas AWS CodeBuild de conexión SSH en entornos aislados](sandbox-troubleshooting.md)

## Requisitos previos
<a name="sandbox-prereq"></a>

Antes de usar un CodeBuild entorno aislado, asegúrate de que tu rol de CodeBuild servicio tenga la siguiente política de SSM:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:codebuild:us-east-1:111122223333:build/*",
                "arn:aws:ssm:us-east-1::document/AWS-StartSSHSession"
            ]
        }
    ]
}
```

------

## Depure compilaciones con CodeBuild sandbox (consola)
<a name="sandbox-console"></a>

Usa las siguientes instrucciones para ejecutar comandos y conectar tu cliente SSH con el CodeBuild sandbox de la consola.

### Ejecuta comandos con CodeBuild sandbox (consola)
<a name="sandbox-console.commands"></a>

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. En el panel de navegación, elija **Proyectos de compilación**. Elija el proyecto de compilación y, a continuación, elija **Iniciar depuración**.  
![\[Página de detalles de depuración del proyecto de compilación en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. En la pestaña **Ejecutar comando**, introduzca comandos personalizados y, a continuación, elija **Ejecutar comando**.  
![\[Página de detalles de ejecución de comandos en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/debug-build-run.png)

1. Luego, tu CodeBuild sandbox se inicializará y empezará a ejecutar tus comandos personalizados. El resultado se mostrará en la pestaña **Salida** cuando se haya completado.   
![\[Página de salida de ejecución de comandos en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/debug-build-run-output.png)

1. Cuando se haya completado la solución de problemas, puede detener el entorno de pruebas seleccionando **Detener entorno de pruebas**. A continuación, seleccione **Detener** para confirmar que el entorno de pruebas se detendrá.  
![\[Cuadro de diálogo de detención del entorno de pruebas.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[Página de salida de ejecución de comandos con un entorno de pruebas detenido en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/stopped-sandbox.png)

### Conéctate a tu cliente SSH con CodeBuild sandbox (consola)
<a name="sandbox-console.ssh"></a>

1. [Abre la AWS CodeBuild consola en codebuild/home. https://console.aws.amazon.com/codesuite/](https://console.aws.amazon.com/codesuite/codebuild/home)

1. En el panel de navegación, elija **Proyectos de compilación**. Elija el proyecto de compilación y, a continuación, elija **Iniciar depuración**.  
![\[Página de detalles de depuración del proyecto de compilación en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. En la pestaña **Cliente de SSH**, seleccione **Iniciar entorno de pruebas**.  
![\[Página del entorno de pruebas del cliente de SSH en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Cuando el CodeBuild sandbox comience a funcionar, sigue las instrucciones de la consola para conectar tu cliente SSH al sandbox.  
![\[Página del entorno de pruebas del cliente de SSH en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. Cuando se haya completado la solución de problemas, puede detener el entorno de pruebas seleccionando **Detener entorno de pruebas**. A continuación, seleccione **Detener** para confirmar que el entorno de pruebas se detendrá.  
![\[Cuadro de diálogo de detención del entorno de pruebas.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[Página de salida de ejecución de comandos con un entorno de pruebas detenido en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Depura compilaciones con sandbox () CodeBuild AWS CLI
<a name="sandbox-cli"></a>

Usa las siguientes instrucciones para ejecutar comandos y conectar tu cliente SSH con sandbox. CodeBuild 

### Inicia un CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli.start-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nombre CodeBuild del proyecto

------
#### [ Sample request ]

```
aws codebuild start-sandbox --project-name "project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "QUEUED",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "QUEUED",
        "status": "QUEUED",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Obtención de información sobre el estado del entorno de pruebas (AWS CLI)
<a name="sandbox-cli.batch-get-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-sandboxes --ids $SANDBOX_IDs
```

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```
+ `--ids`: lista separada por comas de `sandboxIds` o `sandboxArns`.

Puede proporcionar un ID de entorno de pruebas o un ARN de entorno de pruebas:
+ ID de entorno de pruebas: `<codebuild-project-name>:<UUID>`

  Por ejemplo, `project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.
+ ARN de sandbox: arn:aws:codebuild: ::sandbox/*<region>*: *<account-id>* *<codebuild-project-name>* *<UUID>*

  Por ejemplo, `arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.

------
#### [ Sample response ]

```
{
    "sandboxes": [{
        "id": "project-name",
        "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
        "projectName": "project-name",
        "requestTime": "2025-02-06T11:24:15.560000-08:00",
        "endTime": "2025-02-06T11:39:21.587000-08:00",
        "status": "STOPPED",
        "source": {
            "type": "S3",
            "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
            "insecureSsl": false
        },
        "environment": {
            "type": "LINUX_CONTAINER",
            "image": "aws/codebuild/standard:6.0",
            "computeType": "BUILD_GENERAL1_SMALL",
            "environmentVariables": [{
                    "name": "foo",
                    "value": "bar",
                    "type": "PLAINTEXT"
                },
                {
                    "name": "bar",
                    "value": "baz",
                    "type": "PLAINTEXT"
                }
            ],
            "privilegedMode": false,
            "imagePullCredentialsType": "CODEBUILD"
        },
        "timeoutInMinutes": 10,
        "queuedTimeoutInMinutes": 480,
        "logConfig": {
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        },
        "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
        "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
        "currentSession": {
            "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "currentPhase": "COMPLETED",
            "status": "STOPPED",
            "startTime": "2025-02-06T11:24:15.626000-08:00",
            "endTime": "2025-02-06T11:39:21.600000-08:00",
            "phases": [{
                    "phaseType": "SUBMITTED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.577000-08:00",
                    "endTime": "2025-02-06T11:24:15.606000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "QUEUED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.606000-08:00",
                    "endTime": "2025-02-06T11:24:16.067000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "PROVISIONING",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:16.067000-08:00",
                    "endTime": "2025-02-06T11:24:20.519000-08:00",
                    "durationInSeconds": 4,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "DOWNLOAD_SOURCE",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:20.519000-08:00",
                    "endTime": "2025-02-06T11:24:22.238000-08:00",
                    "durationInSeconds": 1,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "RUNNING_SANDBOX",
                    "phaseStatus": "TIMED_OUT",
                    "startTime": "2025-02-06T11:24:22.238000-08:00",
                    "endTime": "2025-02-06T11:39:21.560000-08:00",
                    "durationInSeconds": 899,
                    "contexts": [{
                        "statusCode": "BUILD_TIMED_OUT",
                        "message": "Build has timed out. "
                    }]
                },
                {
                    "phaseType": "COMPLETED",
                    "startTime": "2025-02-06T11:39:21.560000-08:00"
                }
            ],
            "logs": {
                "groupName": "group",
                "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    }],
    "sandboxesNotFound": []
}
```

------

### Detención de un entorno de pruebas (AWS CLI)
<a name="sandbox-cli.stop-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild stop-sandbox --id $SANDBOX-ID
```
+ `--id`: `sandboxId` o `sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "STOPPING",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "RUN_SANDBOX",
        "status": "STOPPING",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "phases": [{
                "phaseType": "SUBMITTED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.144000-08:00",
                "endTime": "2025-02-08T14:33:26.173000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "QUEUED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.173000-08:00",
                "endTime": "2025-02-08T14:33:26.702000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "PROVISIONING",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.702000-08:00",
                "endTime": "2025-02-08T14:33:30.530000-08:00",
                "durationInSeconds": 3,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "DOWNLOAD_SOURCE",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:30.530000-08:00",
                "endTime": "2025-02-08T14:33:33.478000-08:00",
                "durationInSeconds": 2,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "RUN_SANDBOX",
                "startTime": "2025-02-08T14:33:33.478000-08:00"
            }
        ],
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Inicio de la ejecución de un comando (AWS CLI)
<a name="sandbox-cli.start-command-execution"></a>

------
#### [ CLI command ]

```
aws codebuild start-command-execution --command $COMMAND --type $TYPE --sandbox-id $SANDBOX-ID
```
+ `--command`: comando que debe ejecutarse.
+ `--sandbox-id`: `sandboxId` o `sandboxArn`.
+ `--type`: tipo de comando, `SHELL`.

------
#### [ Sample request ]

```
aws codebuild start-command-execution --command "echo "Hello World"" --type SHELL --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name
```

------
#### [ Sample response ]

```
{
    "id": "e1c658c2-02bb-42a8-9abb-94835241fcd6",
    "sandboxId": "f7126a4a-b0d5-452f-814c-fea73718f805",
    "submitTime": "2025-02-06T20:12:02.683000-08:00",
    "status": "SUBMITTED",
    "command": "echo \"Hello World\"",
    "type": "SHELL",
    "logs": {
        "groupName": "group",
        "streamName": "stream",
        "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
        "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz?region=us-west-2",
        "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
        "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz",
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    }
}
```

------

### Obtención de información sobre las ejecuciones de comandos (AWS CLI)
<a name="sandbox-cli.batch-get-command-executions"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-command-executions --command-execution-ids $COMMAND-IDs --sandbox-id $SANDBOX-IDs
```
+ `--command-execution-ids`: lista separada por comas de `commandExecutionIds`.
+ `--sandbox-id`: `sandboxId` o `sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild batch-get-command-executions --command-execution-ids"c3c085ed-5a8f-4531-8e95-87d547f27ffd" --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
        "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
        "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "submitTime": "2025-02-10T20:18:17.118000-08:00",
        "startTime": "2025-02-10T20:18:17.939000-08:00",
        "endTime": "2025-02-10T20:18:17.976000-08:00",
        "status": "SUCCEEDED",
        "command": "echo \"Hello World\"",
        "type": "SHELL",
        "exitCode": "0",
        "standardOutputContent": "Hello World\n",
        "logs": {
            "groupName": "group",
            "streamName": "stream",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }],
    "commandExecutionsNotFound": []
}
```

------

### Lista de ejecuciones de comandos para un entorno de pruebas (AWS CLI)
<a name="sandbox-cli.list-command-executions-for-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id $SANDBOX-ID --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```
+ `--next-token`: siguiente token, si lo hay, para obtener resultados paginados. Obtendrá este valor de la ejecución anterior de entornos de pruebas de la lista.
+ `--max-results`: (opcional) número máximo de registros del entorno de pruebas que se recuperará.
+ `--sort-order`: orden en el que se deben recuperar los registros del entorno de pruebas.

------
#### [ Sample request ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
            "id": "aad6687e-07bc-45ab-a1fd-f5440229b528",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:35.304000-08:00",
            "startTime": "2025-02-10T20:18:35.615000-08:00",
            "endTime": "2025-02-10T20:18:35.651000-08:00",
            "status": "FAILED",
            "command": "fail command",
            "type": "SHELL",
            "exitCode": "127",
            "standardErrContent": "/codebuild/output/tmp/script.sh: 4: fail: not found\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        },
        {
            "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:17.118000-08:00",
            "startTime": "2025-02-10T20:18:17.939000-08:00",
            "endTime": "2025-02-10T20:18:17.976000-08:00",
            "status": "SUCCEEDED",
            "command": "echo \"Hello World\"",
            "type": "SHELL",
            "exitCode": "0",
            "standardOutputContent": "Hello World\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    ]
}
```

------

### Lista de entornos de pruebas (AWS CLI)
<a name="sandbox-cli.list-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild list-sandboxes --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```

------
#### [ Sample request ]

```
aws codebuild list-sandboxes
```

------
#### [ Sample response ]

```
{
    "ids": [
        "s3-log-project-integ-test-temp173925062814985d64e0f-7880-41df-9a3c-fb6597a266d2:827a5243-0841-4b69-a720-4438796f6967",
        "s3-log-project-integ-test-temp1739249999716bbd438dd-8bb8-47bd-ba6b-0133ac65b3d3:e2fa4eab-73af-42e3-8903-92fddaf9f378",
        "s3-log-project-integ-test-temp17392474779450fbdacc2-2d6e-4190-9ad5-28f891bb7415:cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "s3-log-project-integ-test-temp17392246284164301421c-5030-4fa1-b4d3-ca15e44771c5:9e26ab3f-65e4-4896-a19c-56b1a95e630a",
        "s3-log-project-integ-test-temp173921367319497056d8d-6d8e-4f5a-a37c-a62f5686731f:22d91b06-df1e-4e9c-a664-c0abb8d5920b",
        "s3-log-project-integ-test-temp1739213439503f6283f19-390c-4dc8-95a9-c8480113384a:82cc413e-fc46-47ab-898f-ae23c83a613f",
        "s3-log-project-integ-test-temp1739054385570b1f1ddc2-0a23-4062-bd0c-24e9e4a99b99:c02562f3-2396-42ec-98da-38e3fe5da13a",
        "s3-log-project-integ-test-temp173905400540237dab1ac-1fde-4dfb-a8f5-c0114333dc89:d2f30493-f65e-4fa0-a7b6-08a5e77497b9",
        "s3-log-project-integ-test-temp17390534055719c534090-7bc4-48f1-92c5-34acaec5bf1e:df5f1c8a-f017-43b7-91ba-ad2619e2c059",
        "s3-log-project-integ-test-temp1739052719086a61813cc-ebb9-4db4-9391-7f43cc984ee4:d61917ec-8037-4647-8d52-060349272c4a",
        "s3-log-project-integ-test-temp173898670094078b67edb-c42f-42ed-9db2-4b5c1a5fc66a:ce33dfbc-beeb-4466-8c99-a3734a0392c7",
        "s3-log-project-integ-test-temp17389863425584d21b7cd-32e2-4f11-9175-72c89ecaffef:046dadf0-1f3a-4d51-a2c0-e88361924acf",
        "s3-log-project-integ-test-temp1738985884273977ccd23-394b-46cc-90d3-7ab94cf764dc:0370dc41-9339-4b0a-91ed-51929761b244",
        "s3-log-project-integ-test-temp1738985365972241b614f-8e41-4387-bd25-2b8351fbc9e0:076c392a-9630-47d8-85a9-116aa34edfff",
        "s3-log-project-integ-test-temp1738985043988a51a9e2b-09d6-4d24-9c3c-1e6e21ac9fa8:6ea3949c-435b-4177-aa4d-614d5956244c",
        "s3-log-project-integ-test-temp1738984123354c68b31ad-49d1-4f4b-981d-b66c00565ff6:6c3fff6c-815b-48b5-ada3-737400a6dee8",
        "s3-log-project-integ-test-temp1738977263715d4d5bf6c-370a-48bf-8ea6-905358a6cf92:968a0f54-724a-42d1-9207-6ed854b2fae8",
        "s3-log-project-integ-test-temp173897358796816ce8d7d-2a5e-41ef-855b-4a94a8d2795d:80f9a7ce-930a-402e-934e-d8b511d68b04",
        "s3-log-project-integ-test-temp17389730633301af5e452-0966-467c-b684-4e36d47f568c:cabbe989-2e8a-473c-af25-32edc8c28646",
        "s3-log-project-integ-test-temp1738901503813173fd468-b723-4d7b-9f9f-82e88d17f264:f7126a4a-b0d5-452f-814c-fea73718f805",
        "s3-log-project-integ-test-temp1738890502472c13616fb-bd0f-4253-86cc-28b74c97a0ba:c6f197e5-3a53-45b6-863e-0e6353375437",
        "s3-log-project-integ-test-temp17388903044683610daf3-8da7-43c6-8580-9978432432ce:d20aa317-8838-4966-bbfc-85b908213df1",
        "s3-log-project-integ-test-temp173888857196780b5ab8b-e54b-44fd-a222-c5a374fffe96:ab4b9970-ffae-47a0-b3a8-7b6790008cad",
        "s3-log-project-integ-test-temp1738888336931c11d378d-e74d-49a4-a723-3b92e6f7daac:4922f0e8-9b7d-4119-9c9f-115cd85e703e",
        "s3-log-project-integ-test-temp17388881717651612a397-c23f-4d88-ba87-2773cd3fc0c9:be91c3fc-418e-4feb-8a3a-ba58ff8f4e8a",
        "s3-log-project-integ-test-temp17388879727174c3c62ed-6195-4afb-8a03-59674d0e1187:a48826a8-3c0d-43c5-a1b5-1c98a0f978e9",
        "s3-log-project-integ-test-temp1738885948597cef305e4-b8b4-46b0-a65b-e2d0a7b83294:c050e77d-e3f8-4829-9a60-46149628fe96",
        "s3-log-project-integ-test-temp173888561463001a7d2a8-e4e4-4434-94db-09d3da9a9e17:8c3ac3f5-7111-4297-aec9-2470d3ead873",
        "s3-log-project-integ-test-temp1738869855076eb19cafd-04fe-41bd-8aa0-40826d0c0d27:d25be134-05cb-404a-85da-ac5f85d2d72c",
        "s3-project-integ-test-temp1738868157467148eacfc-d39b-49fc-a137-e55381cd2978:4909557b-c221-4814-b4b6-7d9e93d37c35",
        "s3-project-integ-test-temp1738820926895abec0af2-e33d-473c-9cf4-2122dd9d6876:8f5cf218-71d6-40a4-a4be-6cacebd7765f",
        "s3-project-integ-test-temp173881998877574f969a6-1c2e-4441-b463-ab175b45ce32:04396851-c901-4986-9117-585528e3877f",
        "s3-project-integ-test-temp17388189812309abd2604-29ba-4cf6-b6bf-073207b7db9c:540075c7-f5ec-41e8-9341-2233c09247eb",
        "s3-project-integ-test-temp1738818843474d3ea9ac1-b609-461b-bbdb-2da245c9bc96:865d4c3c-fbfe-4ece-9c92-d0c928341404",
        "s3-project-integ-test-temp1738818542236006e9169-e6d9-4344-9b59-f557e7aec619:1f9ffa87-da15-4290-83e2-eebdd877497b",
        "s3-project-integ-test-temp173881809557486ad11fd-7931-48d7-81d5-499cea52a6bc:c4c2efc4-685f-4e13-8b0f-1ef85ec300b1",
        "s3-project-integ-test-temp173881794103322941020-3f0b-49c3-b836-fcd818ec9484:0344cfba-de48-456d-b2a8-6566bd4a5d6e",
        "s3-project-integ-test-temp1738817680747b93d0d0b-ea16-497f-9559-af25ee6dcfdf:654a3a55-d92a-4dc6-8da8-56fd4d40d7e1",
        "s3-project-integ-test-temp17388174027191255c3da-086c-4270-b047-acac0b7bee0d:b7e82740-2c69-42fc-ab5a-dbf15bc016a1",
        "s3-project-integ-test-temp1738817099799016e7fa3-b9b5-46a2-bcd5-0888c646743f:8705a6a4-79ff-427a-a1c3-85c4e8fe462e",
        "s3-project-integ-test-temp1738816479281bb0c3606-5ebf-4623-bed5-12b60e9d3512:f23fc74b-a981-4835-8e28-375fcd4c99e4",
        "s3-project-integ-test-temp1738816263585c939a133-4d37-482c-9238-1dbff34b7674:ca28e234-0045-4ae6-8732-938b17597f50",
        "s3-project-integ-test-temp173881580873072d18733-8fe4-43b1-83f7-95f25bb27ccf:c6f0f55b-5736-47c7-a3aa-1b8461a6d5ed"
    ]
}
```

------

# Tutorial: Conexión a un entorno de pruebas mediante SSH
<a name="sandbox-ssh-tutorial"></a>

En este tutorial, se muestra cómo conectarse a un sandbox mediante un cliente SSH. CodeBuild 

Para completar este tutorial, primero debe:
+ Asegúrese de tener un proyecto existente AWS CodeBuild .
+ Configure los permisos de IAM adecuados para su función de CodeBuild proyecto. 
+ Instale y configure AWS CLI en su máquina local.

## Paso 1: inicio de un entorno de pruebas
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Para iniciar un CodeBuild sandbox en la consola**

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. En el panel de navegación, elija **Proyectos de compilación**. Elija el proyecto de compilación y, a continuación, elija **Iniciar depuración**.  
![\[Página de detalles del proyecto de compilación en la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/project-debug-build.png)

1. En la pestaña **Cliente de SSH**, seleccione **Iniciar entorno de pruebas**.  
![\[Pestaña “Cliente de SSH” en la consola con el botón “Iniciar entorno de pruebas”.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. El proceso de inicialización del entorno de pruebas puede tardar un poco. Puede conectarse al entorno de pruebas cuando su estado cambie a `RUN_SANDDBOX`.  
![\[Conexión del entorno de pruebas de SSH después de que el estado cambie a “RUN_SANDDBOX”.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/run-sandbox.png)

## Paso 2: modificación de la configuración de SSH local
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Si es la primera vez que se conecta a un entorno de pruebas, debe realizar un proceso de configuración único siguiendo estos pasos:

**Cómo modificar la configuración de SSH local en la consola**

1. Busque los comandos de configuración correspondientes a su sistema operativo.

1. Abra el terminal local y, a continuación, copie y ejecute los comandos proporcionados para descargar y ejecutar el script para configurar la configuración de SSH local. Por ejemplo, si el sistema operativo es macOS, utilice el siguiente comando:  
![\[Los comandos de macOS para la conexión SSH al CodeBuild sandbox de la consola.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. El script de configuración agregará las configuraciones necesarias para conectarse a los entornos de pruebas. Se le pedirá que acepte estos cambios.

1. Si la configuración se realiza correctamente, se creará una nueva entrada de configuración de SSH para el CodeBuild entorno aislado.  
![\[Conexión correcta del entorno de pruebas de SSH.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Paso 3: conexión con el entorno de pruebas
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Cómo modificar la configuración de SSH local en la consola**

1. Configure AWS CLI la autenticación y asegúrese de que su AWS CLI usuario tenga el `codebuild:StartSandboxConnection` permiso. Para obtener más información, consulte [Autenticación con credenciales de usuario de IAM para la AWS CLI](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html) en la *Guía del usuario de Interfaz de línea de comandos de AWS de la versión 1*.

1. Conéctese al entorno de pruebas con el siguiente comando:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**nota**  
Para solucionar problemas de conexión, use la marca `-v` para habilitar la salida detallada. Por ejemplo, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Para obtener sugerencias adicionales para la solución de problemas, consulte [Solución de problemas AWS CodeBuild de conexión SSH en entornos aislados](sandbox-troubleshooting.md).

## Paso 4: Revise los resultados
<a name="sandbox-ssh-tutorial.review-results"></a>

Una vez conectado, puede depurar errores de compilación, probar comandos de compilación, experimentar con cambios de configuración y verificar variables de entorno y dependencias con el entorno de pruebas.

# Solución de problemas AWS CodeBuild de conexión SSH en entornos aislados
<a name="sandbox-troubleshooting"></a>

Usa la información de este tema para ayudarte a identificar, diagnosticar y solucionar los problemas de conexión SSH CodeBuild en entornos aislados.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`error al usar SSH en un entorno sandbox CodeBuild](#sandbox-troubleshooting.invalid-input)
+ [Error: «No se encuentran las credenciales» cuando se utiliza SSH en CodeBuild un entorno sandbox](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`error al usar SSH en un CodeBuild entorno sandbox](#sandbox-troubleshooting.access-denied)
+ [Error: «ssh: no se ha podido resolver el nombre de host» cuando se utiliza SSH en un entorno aislado CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`error al usar SSH en un entorno sandbox CodeBuild
<a name="sandbox-troubleshooting.invalid-input"></a>

**Problema:** al intentar conectarse a un entorno CodeBuild sandbox mediante el comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, es posible que se produzca un `InvalidInputException` error como el siguiente:

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for {sandbox-arn}
User: arn:aws:sts::<account-ID>:assumed-role/<service-role-name>/AWSCodeBuild-<UUID> 
is not authorized to perform: ssm:StartSession on resource.
```

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for 
sandbox <sandbox-arn>: codebuild:<UUID> is not connected.
```

**Causa posible:**
+ Falta el agente de Systems Manager de Amazon EC2: la imagen de compilación no tiene el agente de SSM instalado o configurado correctamente.
+ Permisos insuficientes: el rol de servicio CodeBuild del proyecto carece de los permisos de SSM necesarios.

**Solución recomendada:** si utiliza una imagen personalizada para la compilación, haga lo siguiente.

1. Instalar el SSM Agent de . Para obtener más información, consulte [Instalación y desinstalación manual de SSM Agent en instancias de Amazon EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) en **. La versión de SSM Agent debe ser `3.0.1295.0` o posterior.

1. Copie el archivo [ https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json) en el directorio de la imagen. `/etc/amazon/ssm/` De este modo se habilita **Modo de contenedor** en SSM Agent.

1. Asegúrese de que el rol de servicio de su CodeBuild proyecto tenga los siguientes permisos y, a continuación, reinicie el entorno sandbox:

   ```
   {
      "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
    },
    {
       "Effect": "Allow",
       "Action": [
          "ssm:StartSession"
        ],
        "Resource": [
           "arn:aws:codebuild:region:account-id:build/*",
           "arn:aws:ssm:region::document/AWS-StartSSHSession"
        ]
    }
   ```

## Error: «No se encuentran las credenciales» cuando se utiliza SSH en CodeBuild un entorno sandbox
<a name="sandbox-troubleshooting.credentials"></a>

**Problema:** al intentar conectarse a un entorno CodeBuild aislado mediante el comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, es posible que aparezca el siguiente error de credenciales:

```
Unable to locate credentials. You can configure credentials by running 
"aws configure".
```

**Causa posible:** AWS las credenciales no se configuraron correctamente en su entorno local.

**Solución recomendada:** configure sus AWS CLI credenciales siguiendo la documentación oficial: [Configuración de los ajustes de la Guía del AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *usuario de la interfaz de línea de AWS comandos para la versión 2*.

## `StartSandboxConnection``AccessDeniedException`error al usar SSH en un CodeBuild entorno sandbox
<a name="sandbox-troubleshooting.access-denied"></a>

**Problema:** al intentar conectarse a un entorno CodeBuild sandbox mediante el comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, puede aparecer el siguiente error de permiso:

```
An error occurred (AccessDeniedException) when calling the StartSandboxConnection 
operation: 
User: arn:aws:sts::account-id:assumed-role/role-name
is not authorized to perform: codebuild:StartSandboxConnection on resource: 
sandbox-arn
because no identity-based policy allows the codebuild:StartSandboxConnection action
```

**Causa posible:** sus AWS credenciales carecen de los CodeBuild permisos necesarios para realizar esta operación.

**Solución recomendada:** asegúrese de que el usuario o rol de IAM asociado a sus AWS CLI credenciales tenga los siguientes permisos:

```
{
    "Effect": "Allow",
    "Action": [
       "codebuild:StartSandboxConnection"
     ],
     "Resource": [
        "arn:aws:codebuild:region:account-id:sandbox/*"
     ]
}
```

## Error: «ssh: no se ha podido resolver el nombre de host» cuando se utiliza SSH en un entorno aislado CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Problema:** al intentar conectarse a un entorno CodeBuild sandbox mediante el comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, aparece el siguiente error de resolución del nombre de host:

```
ssh: Could not resolve hostname
```

**Causa posible:** este error suele producirse cuando el script de conexión de CodeBuild espacio aislado requerido no se ha ejecutado correctamente en el entorno local.

**Solución recomendada:**

1. Descargue el script de conexión CodeBuild de sandbox.

1. Ejecute el script en el terminal para establecer la configuración de SSH necesaria.

1. Vuelva a intentar la conexión de SSH con el entorno de pruebas.

# Depuración de compilaciones con Administrador de sesiones
<a name="session-manager"></a>

En AWS CodeBuild, puedes pausar una compilación en ejecución y, a continuación, usar el Administrador de AWS Systems Manager sesiones para conectarte al contenedor de compilación y ver su estado.

**nota**  
Esta característica no está disponible en entornos Windows.

**Topics**
+ [Requisitos previos](#ssm.prerequisites)
+ [Pausar la compilación](#ssm-pause-build)
+ [Iniciar la compilación](#ssm-start-build)
+ [Conectarse al contenedor de compilación](#ssm-connect)
+ [Reanudar la compilación](#ssm-resume-build)

## Requisitos previos
<a name="ssm.prerequisites"></a>

Para permitir el uso de Session Manager con la sesión de compilación, es necesario habilitar la conexión de sesión para la compilación. Hay dos prerrequisitos:
+ CodeBuild Las imágenes seleccionadas estándar de Linux ya tienen el agente SSM instalado y el agente ContainerMode SSM activado. 

  Si va a utilizar una imagen personalizada para la compilación, haga lo siguiente:

  1. Instalar el SSM Agent de . Para obtener más información, consulte [Instalación manual de SSM Agent en instancias EC2 de Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) en la Guía del usuario de AWS Systems Manager . La versión de SSM Agent debe ser 3.0.1295.0 o posterior.

  1. Copie el archivo [https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json) en el directorio de la imagen. `/etc/amazon/ssm/` De este modo se habilita Modo de contenedor en SSM Agent.
**nota**  
Las imágenes personalizadas requieren el agente SSM más actualizado para que esta función funcione según lo esperado.
+ El rol de CodeBuild servicio debe tener la siguiente política de SSM:

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	  
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
       }
     ]
  }
  ```

------

  Puede hacer que la CodeBuild consola asocie automáticamente esta política a su función de servicio al iniciar la compilación. Como alternativa, puede adjuntar la política al rol de servicio manualmente.
+ Si tiene habilitada la **auditoría y el registro de la actividad de la sesión** en las preferencias de Systems Manager, la función de CodeBuild servicio también debe tener permisos adicionales. Los permisos varían según el lugar donde se almacenen los registros.  
CloudWatch Registros  
Si utiliza CloudWatch los registros para almacenar los registros, añada el siguiente permiso a la función CodeBuild de servicio:    
****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "logs:DescribeLogGroups",
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*:*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:PutLogEvents"
              ],
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:MyLogGroup:*"
          }
      ]
  }
  ```  
Amazon S3  
Si utiliza Amazon S3 para almacenar sus registros, añada el siguiente permiso al rol CodeBuild de servicio:    
****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "s3:GetEncryptionConfiguration",
          "s3:PutObject"
        ],
        "Resource": [
          "arn:aws:s3:::<bucket-name>",
          "arn:aws:s3:::<bucket-name>/*"
        ]
      }
    ]
  }
  ```

  Para obtener más información, consulte [Actividad de auditoría y registro de sesión](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) en la *Guía del usuario de AWS Systems Manager *.

## Pausar la compilación
<a name="ssm-pause-build"></a>

Para pausar la compilación, inserte el comando **codebuild-breakpoint** en cualquiera de las fases de compilación del archivo de especificación de compilación. La compilación se pausará en este punto, lo que permite conectar con el contenedor de compilación y ver el contenedor en su estado actual. 

Por ejemplo, añada lo siguiente a las fases de compilación del archivo de especificación de compilación.

```
phases:
  pre_build:
    commands:
      - echo Entered the pre_build phase...
      - echo "Hello World" > /tmp/hello-world
      - codebuild-breakpoint
```

Este código crea el archivo `/tmp/hello-world` y, a continuación, detiene la compilación en este punto.

## Iniciar la compilación
<a name="ssm-start-build"></a>

Para permitir el uso de Session Manager con la sesión de compilación, es necesario habilitar las conexiones de sesión para la compilación. Para hacerlo, al iniciar la compilación, siga estos pasos:

1. Abra la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. En el panel de navegación, elija **Proyectos de compilación**. Elija el proyecto de compilación y, a continuación, elija **Iniciar compilación con anulaciones**.

1. Seleccione **Advanced build overrides (Sustitución avanzada de compilaciones)**.

1. En la sección **Entorno**, elija la opción **Habilitar la conexión de sesión**. Si no se selecciona esta opción, se ignoran todos los comandos de **codebuild-breakpoint** y **codebuild-resume**.

1. Realice los demás cambios que desee y elija **Iniciar compilación**. 

1. Monitoriza el estado de la compilación en la consola. Cuando la sesión esté disponible, el enlace al **AWS Session Manager** aparecerá en la sección **Estado de compilación**.

## Conectarse al contenedor de compilación
<a name="ssm-connect"></a>

Es posible conectarse al contenedor de compilación de una de las dos formas siguientes:

CodeBuild consola  
En un navegador web, abra el enlace de **AWS Session Manager** para conectarse al contenedor de compilación. Se abre una sesión de terminal que le permite explorar y controlar el contenedor de compilación. 

AWS CLI  
Su máquina local debe tener instalado el complemento de Session Manager para realizar este procedimiento. Para obtener más información, consulte [Instalación del complemento Session Manager para la AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) en la Guía del AWS Systems Manager usuario. 

1. Llame a la API de **batch-get-builds** con el ID de compilación para obtener información sobre la compilación, incluido el identificador de destino de la sesión. El nombre de la propiedad del identificador de destino de la sesión varía según el tipo de salida del comando `aws`. Por eso se añade `--output json` al comando.

   ```
   aws codebuild batch-get-builds --ids <buildID> --region <region> --output json
   ```

1. Copie el valor de la propiedad `sessionTarget`. El nombre de la propiedad `sessionTarget` puede variar en función del tipo de salida del comando `aws`. Por eso se añade `--output json` al comando en el paso anterior.

1. Utilice el comando siguiente para conectarse al contenedor de compilación.

   ```
   aws ssm start-session --target <sessionTarget> --region <region>
   ```

Para este ejemplo, comprueba que el archivo `/tmp/hello-world` exista y contiene el texto `Hello World`.

## Reanudar la compilación
<a name="ssm-resume-build"></a>

Después de examinar el contenedor de compilación, ejecute el comando **codebuild-resume** desde el intérprete de comandos del contenedor.

```
$ codebuild-resume
```