

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Debug s'intègre AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild fournit deux méthodes pour le débogage des versions pendant le développement et le dépannage. Vous pouvez utiliser l'environnement CodeBuild Sandbox pour étudier les problèmes et valider les correctifs en temps réel, ou vous pouvez utiliser le gestionnaire de session de AWS Systems Manager pour vous connecter au conteneur de construction et consulter l'état du conteneur.

## Déboguer les builds avec Sandbox CodeBuild
<a name="debug-codebuild-sandbox"></a>

L'environnement CodeBuild sandbox fournit une session de débogage interactive dans un environnement sécurisé et isolé. Vous pouvez interagir avec l'environnement directement via le AWS Management Console ou AWS CLI, exécuter des commandes et valider votre processus de création étape par étape. Il utilise un modèle de facturation rentable à la seconde et prend en charge la même intégration native avec les fournisseurs de sources et de AWS services que votre environnement de construction. Vous pouvez également vous connecter à un environnement sandbox à l'aide de clients SSH ou à partir de vos environnements de développement intégrés ()IDEs.

Pour en savoir plus sur la tarification du CodeBuild sandbox, consultez la [documentation CodeBuild tarifaire](https://aws.amazon.com/codebuild/pricing/#Sandbox). Pour obtenir des instructions détaillées, consultez la [Déboguer les builds avec Sandbox CodeBuild](sandbox.md) documentation.

## Déboguer les builds avec le gestionnaire de session
<a name="debug-codebuild-session-manager"></a>

AWS Systems Manager Session Manager permet d'accéder directement aux versions en cours d'exécution dans leur environnement d'exécution réel. Cette approche vous permet de vous connecter à des conteneurs de build actifs et d'inspecter le processus de construction en temps réel. Vous pouvez examiner le système de fichiers, surveiller les processus en cours d'exécution et résoudre les problèmes au fur et à mesure qu'ils surviennent.

Pour obtenir des instructions détaillées, consultez la [Déboguer les builds avec le gestionnaire de session](session-manager.md) documentation.

# Déboguer les builds avec Sandbox CodeBuild
<a name="sandbox"></a>

Dans AWS CodeBuild, vous pouvez déboguer une version en utilisant le CodeBuild sandbox pour exécuter des commandes personnalisées et résoudre les problèmes liés à votre version.

**Topics**
+ [Conditions préalables](#sandbox-prereq)
+ [Déboguer les versions avec CodeBuild sandbox (console)](#sandbox-console)
+ [Déboguer les builds avec CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutoriel : Connexion à un sandbox via SSH](sandbox-ssh-tutorial.md)
+ [Résolution des problèmes AWS CodeBuild de connexion SSH au sandbox](sandbox-troubleshooting.md)

## Conditions préalables
<a name="sandbox-prereq"></a>

Avant d'utiliser un CodeBuild sandbox, assurez-vous que votre rôle de CodeBuild service est conforme à la politique SSM suivante :

------
#### [ 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"
            ]
        }
    ]
}
```

------

## Déboguer les versions avec CodeBuild sandbox (console)
<a name="sandbox-console"></a>

Suivez les instructions suivantes pour exécuter des commandes et connecter votre client SSH au CodeBuild sandbox de la console.

### Exécuter des commandes avec le CodeBuild bac à sable (console)
<a name="sandbox-console.commands"></a>

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Dans le volet de navigation, choisissez **Projets de génération**. Choisissez le projet de génération, puis choisissez **Debug build**.  
![\[La page détaillée du projet debug build dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Dans l'onglet **Exécuter la commande**, entrez vos commandes personnalisées, puis choisissez **Exécuter la commande**.  
![\[La page détaillée de la commande d'exécution dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/debug-build-run.png)

1. Votre CodeBuild sandbox sera ensuite initialisé et commencera à exécuter vos commandes personnalisées. La sortie sera affichée dans l'onglet **Sortie** lorsqu'elle sera terminée.   
![\[La page de sortie de la commande d'exécution dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/debug-build-run-output.png)

1. Lorsque le dépannage est terminé, vous pouvez arrêter le bac à sable en choisissant **Arrêter le bac à sable**. Choisissez ensuite **Stop** pour confirmer que votre sandbox sera arrêté.  
![\[La boîte de dialogue Stop Sandbox.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[La page de sortie de la commande d'exécution avec un sandbox arrêté dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/stopped-sandbox.png)

### Connectez-vous à votre client SSH avec CodeBuild sandbox (console)
<a name="sandbox-console.ssh"></a>

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Dans le volet de navigation, choisissez **Projets de génération**. Choisissez le projet de génération, puis choisissez **Debug build**.  
![\[La page détaillée du projet debug build dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Dans l'onglet **Client SSH**, choisissez **Start sandbox**.  
![\[La page sandbox du client SSH dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Une fois le CodeBuild sandbox lancé, suivez les instructions de la console pour connecter votre client SSH au sandbox.  
![\[La page sandbox du client SSH dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. Lorsque le dépannage est terminé, vous pouvez arrêter le bac à sable en choisissant **Arrêter le bac à sable**. Choisissez ensuite **Stop** pour confirmer que votre sandbox sera arrêté.  
![\[La boîte de dialogue Stop Sandbox.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[La page de sortie de la commande d'exécution avec un sandbox arrêté dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Déboguer les builds avec CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Suivez les instructions suivantes pour exécuter des commandes et connecter votre client SSH au CodeBuild sandbox.

### Démarrer un CodeBuild bac à sable ()AWS CLI
<a name="sandbox-cli.start-sandbox"></a>

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

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nom CodeBuild du projet

------
#### [ 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
            }
        }
    }
}
```

------

### Obtenir des informations sur l'état du bac à sable ()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`: liste séparée par des virgules de `sandboxIds` ou`sandboxArns`.

Vous pouvez fournir un identifiant de sandbox ou un ARN de sandbox :
+ Identifiant du bac à sable : `<codebuild-project-name>:<UUID>`

  Par exemple, `project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.
+ ARN du bac à sable : arn:aws:codebuild : ::sandbox/ : *<region>* *<account-id>* *<codebuild-project-name>* *<UUID>*

  Par exemple, `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": []
}
```

------

### Arrêter un bac à sable ()AWS CLI
<a name="sandbox-cli.stop-sandbox"></a>

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

```
aws codebuild stop-sandbox --id $SANDBOX-ID
```
+ `--id`: A `sandboxId` ou`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
            }
        }
    }
}
```

------

### Lancer l'exécution d'une commande (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`: commande qui doit être exécutée.
+ `--sandbox-id`: A `sandboxId` ou`sandboxArn`.
+ `--type`: le type de commande,`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
        }
    }
}
```

------

### Obtenir des informations sur les exécutions de commandes (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`: liste séparée par des virgules de. `commandExecutionIds`
+ `--sandbox-id`: A `sandboxId` ou`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": []
}
```

------

### Répertorier les exécutions de commandes pour un sandbox ()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`: le jeton suivant, le cas échéant, pour obtenir des résultats paginés. Vous obtiendrez cette valeur lors de l'exécution précédente de listes de sandbox.
+ `--max-results`: (Facultatif) Le nombre maximum d'enregistrements sandbox à récupérer.
+ `--sort-order`: ordre dans lequel les enregistrements sandbox doivent être récupérés.

------
#### [ 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
                }
            }
        }
    ]
}
```

------

### Répertorier les bacs à sable ()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"
    ]
}
```

------

# Tutoriel : Connexion à un sandbox via SSH
<a name="sandbox-ssh-tutorial"></a>

Ce didacticiel explique comment se connecter à un CodeBuild sandbox à l'aide d'un client SSH.

Pour effectuer ce didacticiel, vous devez d'abord :
+ Assurez-vous d'avoir un AWS CodeBuild projet existant.
+ Configurez les autorisations IAM appropriées configurées pour votre rôle dans le CodeBuild projet. 
+ Installez et configurez AWS CLI sur votre machine locale.

## Étape 1 : démarrer un bac à sable
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Pour démarrer un CodeBuild bac à sable dans la console**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Dans le volet de navigation, choisissez **Projets de génération**. Choisissez le projet de génération, puis choisissez **Debug build**.  
![\[La page détaillée du projet de création dans la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/project-debug-build.png)

1. Dans l'onglet **Client SSH**, choisissez **Start sandbox**.  
![\[L'onglet « Client SSH » de la console avec le bouton « Démarrer le bac à sable ».\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Le processus d'initialisation du sandbox peut prendre un certain temps. Vous pouvez vous connecter au sandbox lorsque son statut passe à`RUN_SANDDBOX`.  
![\[La connexion au sandbox SSH une fois que le statut passe à « RUN_SANDDBOX ».\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/run-sandbox.png)

## Étape 2 : Modifier la configuration SSH locale
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Si vous vous connectez au sandbox pour la première fois, vous devez effectuer un processus de configuration unique en suivant les étapes suivantes :

**Pour modifier la configuration SSH locale dans la console**

1. Localisez les commandes de configuration de votre système d'exploitation.

1. Ouvrez votre terminal local, puis copiez et exécutez les commandes fournies pour télécharger et exécuter le script permettant de configurer votre configuration SSH locale. Par exemple, si votre système d'exploitation est macOS, utilisez la commande suivante :  
![\[Les commandes macOS pour la connexion SSH au CodeBuild sandbox de la console.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. Le script de configuration ajoutera les configurations requises pour la connexion à vos sandbox. Vous serez invité à accepter ces modifications.

1. Une fois la configuration réussie, une nouvelle entrée de configuration SSH pour le CodeBuild sandbox sera créée.  
![\[Connexion sandbox SSH réussie.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Étape 3 : Connectez-vous au bac à sable
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Pour modifier la configuration SSH locale dans la console**

1. Configurez AWS CLI l'authentification et assurez-vous que votre AWS CLI utilisateur dispose de l'`codebuild:StartSandboxConnection`autorisation. Pour plus d'informations, consultez la section [Authentification à l'aide des informations d'identification utilisateur IAM AWS CLI dans le](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html) *guide de l'utilisateur de l'interface de ligne de AWS commande pour la version 1*.

1. Connectez-vous à votre sandbox à l'aide de la commande suivante :

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**Note**  
Pour résoudre les problèmes de connexion, utilisez l'`-v`indicateur pour activer la sortie détaillée. Par exemple, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Pour obtenir des conseils de dépannage supplémentaires, consultez[Résolution des problèmes AWS CodeBuild de connexion SSH au sandbox](sandbox-troubleshooting.md).

## Étape 4 : Passez en revue vos résultats
<a name="sandbox-ssh-tutorial.review-results"></a>

Une fois connecté, vous pouvez corriger les échecs de compilation, tester les commandes de compilation, expérimenter des modifications de configuration et vérifier les variables d'environnement et les dépendances avec votre sandbox.

# Résolution des problèmes AWS CodeBuild de connexion SSH au sandbox
<a name="sandbox-troubleshooting"></a>

Utilisez les informations de cette rubrique pour identifier, diagnostiquer et résoudre les problèmes de connexion SSH dans le CodeBuild sandbox.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`erreur lors du SSH dans un environnement CodeBuild sandbox](#sandbox-troubleshooting.invalid-input)
+ [Erreur : « Impossible de localiser les informations d'identification » lors du SSH dans un environnement CodeBuild sandbox](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`erreur lors du SSH dans un environnement CodeBuild sandbox](#sandbox-troubleshooting.access-denied)
+ [Erreur : « ssh : Impossible de résoudre le nom d'hôte » lors du SSH dans un environnement sandbox CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`erreur lors du SSH dans un environnement CodeBuild sandbox
<a name="sandbox-troubleshooting.invalid-input"></a>

**Problème :** Lorsque vous tentez de vous connecter à un environnement CodeBuild sandbox à l'aide de la commande`ssh codebuild-sandbox-ssh=<sandbox-arn>`, vous pouvez rencontrer une `InvalidInputException` erreur telle que :

```
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.
```

**Cause possible :**
+ Agent Amazon EC2 Systems Manager manquant : l'agent SSM n'est pas correctement installé ou configuré sur l'image de compilation.
+ Autorisations insuffisantes : le rôle de service de CodeBuild projet ne dispose pas des autorisations SSM requises.

**Solution recommandée :** Si vous utilisez une image personnalisée pour votre build, procédez comme suit.

1. Installez SSM Agent. Pour plus d'informations, consultez la section [Installation et désinstallation manuelles de l'agent SSM sur les instances Amazon EC2 pour](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) Linux dans le. ** La version de l'agent SSM doit être `3.0.1295.0` ou ultérieure.

1. Copiez le fichier [ 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) dans le `/etc/amazon/ssm/` répertoire de votre image. Cela active **le mode conteneur** dans l'agent SSM.

1. Assurez-vous que le rôle de service de votre CodeBuild projet dispose des autorisations suivantes, puis redémarrez l'environnement 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"
        ]
    }
   ```

## Erreur : « Impossible de localiser les informations d'identification » lors du SSH dans un environnement CodeBuild sandbox
<a name="sandbox-troubleshooting.credentials"></a>

**Problème :** Lorsque vous tentez de vous connecter à un environnement CodeBuild sandbox à l'aide de la commande`ssh codebuild-sandbox-ssh=<sandbox-arn>`, vous pouvez rencontrer l'erreur d'identification suivante :

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

**Cause possible :** les AWS informations d'identification n'ont pas été correctement configurées dans votre environnement local.

**Solution recommandée :** Configurez vos AWS CLI informations d'identification en suivant la documentation officielle : [Configuration des paramètres du Guide de AWS CLI l'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)*utilisateur de l'interface de ligne de AWS commande pour la version 2*.

## `StartSandboxConnection``AccessDeniedException`erreur lors du SSH dans un environnement CodeBuild sandbox
<a name="sandbox-troubleshooting.access-denied"></a>

**Problème :** Lorsque vous tentez de vous connecter à un environnement CodeBuild sandbox à l'aide de la commande`ssh codebuild-sandbox-ssh=<sandbox-arn>`, vous pouvez rencontrer l'erreur d'autorisation suivante :

```
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
```

**Cause possible :** Vos AWS informations d'identification ne disposent pas CodeBuild des autorisations nécessaires pour effectuer cette opération.

**Solution recommandée :** assurez-vous que l'utilisateur ou le rôle IAM associé à vos AWS CLI informations d'identification dispose des autorisations suivantes :

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

## Erreur : « ssh : Impossible de résoudre le nom d'hôte » lors du SSH dans un environnement sandbox CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Problème :** Lorsque vous tentez de vous connecter à un environnement CodeBuild sandbox à l'aide de la commande`ssh codebuild-sandbox-ssh=<sandbox-arn>`, vous rencontrez l'erreur de résolution de nom d'hôte suivante :

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

**Cause possible :** Cette erreur se produit généralement lorsque le script de connexion au CodeBuild sandbox requis n'a pas été correctement exécuté dans votre environnement local.

**Solution recommandée:**

1. Téléchargez le script de connexion au CodeBuild sandbox.

1. Exécutez le script dans votre terminal pour établir la configuration SSH nécessaire.

1. Réessayez de vous connecter SSH à l'environnement sandbox.

# Déboguer les builds avec le gestionnaire de session
<a name="session-manager"></a>

Dans AWS CodeBuild, vous pouvez suspendre une compilation en cours, puis utiliser le gestionnaire de AWS Systems Manager session pour vous connecter au conteneur de génération et afficher l'état du conteneur.

**Note**  
Cette fonctionnalité n'est pas disponible dans les environnements Windows.

**Topics**
+ [Conditions préalables](#ssm.prerequisites)
+ [Suspendre le build](#ssm-pause-build)
+ [Commencez la construction](#ssm-start-build)
+ [Connectez-vous au conteneur de construction](#ssm-connect)
+ [Reprendre le build](#ssm-resume-build)

## Conditions préalables
<a name="ssm.prerequisites"></a>

Pour autoriser l'utilisation du gestionnaire de session avec la session de génération, vous devez activer la connexion à la session pour la génération. Il existe deux prérequis :
+ CodeBuild L'agent SSM est déjà installé et l'agent SSM est activé sur les images sélectionnées standard de Linux. ContainerMode 

  Si vous utilisez une image personnalisée pour votre build, procédez comme suit :

  1. Installez SSM Agent. Pour plus d'informations, consultez la section [Installation manuelle de l'agent SSM sur les instances EC2 pour Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) dans le guide de l' AWS Systems Manager utilisateur. La version de l'agent SSM doit être 3.0.1295.0 ou ultérieure.

  1. Copiez le fichier [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) dans le `/etc/amazon/ssm/` répertoire de votre image. Cela active le mode conteneur dans l'agent SSM.
**Note**  
Les images personnalisées nécessiteraient la mise à jour de l'agent SSM le plus récent pour que cette fonctionnalité fonctionne comme prévu.
+ Le rôle CodeBuild de service doit respecter la politique SSM suivante :

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

****  

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

------

  Vous pouvez demander à la CodeBuild console d'associer automatiquement cette politique à votre rôle de service lorsque vous démarrez la génération. Vous pouvez également associer cette politique à votre rôle de service manuellement.
+ Si l'**audit et la journalisation de l'activité des sessions** sont activés dans les préférences de Systems Manager, le rôle de CodeBuild service doit également disposer d'autorisations supplémentaires. Les autorisations sont différentes en fonction de l'endroit où les journaux sont stockés.  
CloudWatch Journaux  
Si vous utilisez CloudWatch Logs pour stocker vos journaux, ajoutez l'autorisation suivante au rôle CodeBuild de service :    
****  

  ```
  {
      "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 vous utilisez Amazon S3 pour stocker vos journaux, ajoutez l'autorisation suivante au rôle CodeBuild de service :    
****  

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

  Pour plus d'informations, consultez la section [Audit et journalisation de l'activité des sessions](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) dans le *guide de AWS Systems Manager l'utilisateur*.

## Suspendre le build
<a name="ssm-pause-build"></a>

Pour suspendre la génération, insérez la **codebuild-breakpoint** commande dans l'une des phases de construction de votre fichier buildspec. La construction sera suspendue à ce stade, ce qui vous permettra de vous connecter au conteneur de construction et de visualiser le conteneur dans son état actuel. 

Par exemple, ajoutez ce qui suit aux phases de construction dans votre fichier buildspec.

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

Ce code crée le `/tmp/hello-world` fichier, puis suspend la compilation à ce stade.

## Commencez la construction
<a name="ssm-start-build"></a>

Pour autoriser l'utilisation du gestionnaire de session avec la session de génération, vous devez activer les connexions de session pour la génération. Pour ce faire, lors du démarrage de la compilation, procédez comme suit :

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Dans le volet de navigation, choisissez **Projets de génération**. Choisissez le projet de construction, puis choisissez **Démarrer la construction avec des remplacements**.

1. Choisissez **Advanced build overrides (Remplacements avancés de génération)**.

1. Dans la section **Environnement**, choisissez l'option **Activer la connexion à la session**. Si cette option n'est pas sélectionnée, toutes les **codebuild-resume** commandes **codebuild-breakpoint** et sont ignorées.

1. Apportez les autres modifications souhaitées, puis choisissez **Démarrer la construction**. 

1. Surveillez l'état de construction dans la console. Lorsque la session est disponible, le lien du **gestionnaire de AWS session** apparaît dans la section **État de la création**.

## Connectez-vous au conteneur de construction
<a name="ssm-connect"></a>

Vous pouvez vous connecter au conteneur de construction de deux manières :

CodeBuild console  
Dans un navigateur Web, ouvrez le lien du **gestionnaire de AWS session** pour vous connecter au conteneur de construction. Une session de terminal s'ouvre pour vous permettre de parcourir et de contrôler le conteneur de construction. 

AWS CLI  
Le plug-in Session Manager doit être installé sur votre machine locale pour cette procédure. Pour plus d'informations, voir [Installer le plug-in du gestionnaire de session pour la AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) dans le guide de AWS Systems Manager l'utilisateur. 

1. Appelez l'**batch-get-builds**API avec l'ID de build pour obtenir des informations sur le build, y compris l'identifiant cible de session. Le nom de propriété de l'identifiant cible de session varie en fonction du type de sortie de la `aws` commande. C'est pourquoi `--output json` il est ajouté à la commande.

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

1. Copiez la valeur `sessionTarget` de la propriété. Le nom de la `sessionTarget` propriété peut varier en fonction du type de sortie de la `aws` commande. C'est pourquoi `--output json` il est ajouté à la commande à l'étape précédente.

1. Utilisez la commande suivante pour vous connecter au conteneur de construction.

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

Pour cet exemple, vérifiez que le `/tmp/hello-world` fichier existe et contient le texte`Hello World`.

## Reprendre le build
<a name="ssm-resume-build"></a>

Une fois que vous avez terminé d'examiner le conteneur de construction, émettez la **codebuild-resume** commande depuis le shell du conteneur.

```
$ codebuild-resume
```