

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Il debug si integra AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild fornisce due metodi per il debug delle build durante lo sviluppo e la risoluzione dei problemi. È possibile utilizzare l'ambiente CodeBuild Sandbox per esaminare i problemi e convalidare le correzioni in tempo reale oppure utilizzare AWS Systems Manager Session Manager per connettersi al contenitore di build e visualizzare lo stato del contenitore.

## Esegui il debug delle build con sandbox CodeBuild
<a name="debug-codebuild-sandbox"></a>

L'ambiente CodeBuild sandbox fornisce una sessione di debug interattiva in un ambiente sicuro e isolato. È possibile interagire con l'ambiente direttamente tramite la sala operatoria Console di gestione AWS AWS CLI, eseguire comandi e convalidare il processo di compilazione passo dopo passo. Utilizza un modello di fatturazione al secondo conveniente e supporta la stessa integrazione nativa con i fornitori e AWS i servizi di origine dell'ambiente di compilazione. Puoi anche connetterti a un ambiente sandbox utilizzando client SSH o dai tuoi ambienti di sviluppo integrati (). IDEs

[Per ulteriori informazioni sui prezzi della CodeBuild sandbox, consulta la CodeBuild documentazione sui prezzi.](https://aws.amazon.com/codebuild/pricing/#Sandbox) Per istruzioni dettagliate, consulta la [Compilazioni di debug con sandbox CodeBuild](sandbox.md) documentazione.

## Compilazioni di debug con Session Manager
<a name="debug-codebuild-session-manager"></a>

AWS Systems Manager Session Manager consente l'accesso diretto alle build in esecuzione nel loro ambiente di esecuzione effettivo. Questo approccio consente di connettersi a contenitori di build attivi e di ispezionare il processo di compilazione in tempo reale. È possibile esaminare il file system, monitorare i processi in esecuzione e risolvere i problemi non appena si verificano.

Per istruzioni dettagliate, consulta la [Compilazioni di debug con Session Manager](session-manager.md) documentazione.

# Compilazioni di debug con sandbox CodeBuild
<a name="sandbox"></a>

In AWS CodeBuild, puoi eseguire il debug di una build utilizzando CodeBuild sandbox per eseguire comandi personalizzati e risolvere i problemi della build.

**Topics**
+ [Prerequisiti](#sandbox-prereq)
+ [Esegui il debug delle build con CodeBuild sandbox (console)](#sandbox-console)
+ [Compila il debug con CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutorial: Connessione a una sandbox tramite SSH](sandbox-ssh-tutorial.md)
+ [Risoluzione dei problemi AWS CodeBuild di connessione SSH nella sandbox](sandbox-troubleshooting.md)

## Prerequisiti
<a name="sandbox-prereq"></a>

Prima di utilizzare una CodeBuild sandbox, assicurati che il tuo ruolo di CodeBuild servizio abbia la seguente politica 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"
            ]
        }
    ]
}
```

------

## Esegui il debug delle build con CodeBuild sandbox (console)
<a name="sandbox-console"></a>

Usa le seguenti istruzioni per eseguire comandi e connettere il tuo client SSH alla CodeBuild sandbox nella console.

### Esegui i comandi con CodeBuild sandbox (console)
<a name="sandbox-console.commands"></a>

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. **Scegli il progetto di compilazione, quindi scegli Debug build.**  
![\[La pagina dei dettagli del progetto di debug build nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Nella scheda **Esegui comando**, inserisci i comandi personalizzati, quindi scegli **Esegui comando**.  
![\[La pagina dei dettagli del comando di esecuzione nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/debug-build-run.png)

1. La CodeBuild sandbox verrà quindi inizializzata e inizierà a eseguire i comandi personalizzati. L'output verrà visualizzato nella scheda **Output** una volta completato.   
![\[La pagina di output del comando di esecuzione nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/debug-build-run-output.png)

1. Una volta completata la risoluzione dei problemi, puoi interrompere la sandbox scegliendo **Stop sandbox**. Quindi scegli **Stop** per confermare che la sandbox verrà interrotta.  
![\[La finestra di dialogo Stop Sandbox.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[La pagina di output del comando di esecuzione con una sandbox interrotta nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stopped-sandbox.png)

### Connect al client SSH con CodeBuild sandbox (console)
<a name="sandbox-console.ssh"></a>

1. [Apri la AWS CodeBuild console su codebuild/homehttps://console.aws.amazon.com/codesuite/.](https://console.aws.amazon.com/codesuite/codebuild/home)

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. **Scegli il progetto di compilazione, quindi scegli Debug build.**  
![\[La pagina dei dettagli del progetto di debug build nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Nella scheda **Client SSH**, scegli **Avvia** sandbox.  
![\[La pagina sandbox del client SSH nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Dopo l'avvio della CodeBuild sandbox, segui le istruzioni della console per connettere il client SSH alla sandbox.  
![\[La pagina sandbox del client SSH nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. **Una volta completata la risoluzione dei problemi, puoi interrompere la sandbox scegliendo Stop sandbox.** Quindi scegli **Stop** per confermare che la sandbox verrà interrotta.  
![\[La finestra di dialogo Stop Sandbox.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[La pagina di output del comando di esecuzione con una sandbox interrotta nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Compila il debug con CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Usa le seguenti istruzioni per eseguire comandi e connettere il tuo client SSH alla sandbox. CodeBuild 

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

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

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nome CodeBuild del progetto

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

------

### Ottieni informazioni sullo stato della sandbox ()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`: elenco separato da virgole di `sandboxIds` o`sandboxArns`.

Puoi fornire un ID sandbox o un ARN sandbox:
+ ID sandbox: `<codebuild-project-name>:<UUID>`

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

  Ad esempio, `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": []
}
```

------

### Ferma una sandbox (AWS CLI)
<a name="sandbox-cli.stop-sandbox"></a>

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

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

------

### Avvia l'esecuzione di 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`: Il comando che deve essere eseguito.
+ `--sandbox-id`: A `sandboxId` o`sandboxArn`.
+ `--type`: Il tipo di 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
        }
    }
}
```

------

### Ottieni informazioni sulle esecuzioni dei comandi ()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`: elenco separato da virgole di. `commandExecutionIds`
+ `--sandbox-id`: A `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": []
}
```

------

### Elenca le esecuzioni di comandi per una 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`: Il token successivo, se presente, per ottenere risultati impaginati. Otterrete questo valore dalla precedente esecuzione delle sandbox di elenchi.
+ `--max-results`: (Facoltativo) Il numero massimo di record sandbox da recuperare.
+ `--sort-order`: L'ordine in cui i record della sandbox devono essere recuperati.

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

------

### Elenca le sandbox ()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: Connessione a una sandbox tramite SSH
<a name="sandbox-ssh-tutorial"></a>

Questo tutorial mostra come connettersi a una CodeBuild sandbox utilizzando un client SSH.

Per completare questo tutorial, è necessario innanzitutto:
+ Assicurati di avere un progetto esistente AWS CodeBuild .
+ Imposta le autorizzazioni IAM appropriate configurate per il ruolo CodeBuild del tuo progetto. 
+ Installa e configura AWS CLI sul tuo computer locale.

## Fase 1: Avvia una sandbox
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Per avviare una CodeBuild sandbox nella console**

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. **Scegli il progetto di compilazione, quindi scegli Debug build.**  
![\[La pagina dei dettagli del progetto di compilazione nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/project-debug-build.png)

1. Nella scheda **Client SSH**, scegli **Avvia sandbox**.  
![\[La scheda «Client SSH» nella console con il pulsante «Avvia sandbox».\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Il processo di inizializzazione della sandbox potrebbe richiedere del tempo. Puoi connetterti alla sandbox quando il suo stato cambia in. `RUN_SANDDBOX`  
![\[La connessione sandbox SSH dopo la modifica dello stato diventa «RUN_SANDDBOX».\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/run-sandbox.png)

## Fase 2: Modificare la configurazione SSH locale
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Se ti connetti alla sandbox per la prima volta, devi eseguire una procedura di configurazione una tantum utilizzando i seguenti passaggi:

**Per modificare la configurazione SSH locale nella console**

1. Individua i comandi di configurazione per il tuo sistema operativo.

1. Apri il terminale locale, quindi copia ed esegui i comandi forniti per scaricare ed eseguire lo script per configurare la configurazione SSH locale. Ad esempio, se il tuo sistema operativo è macOS, usa il seguente comando:  
![\[I comandi macOS per la connessione SSH alla CodeBuild sandbox nella console.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. Lo script di configurazione aggiungerà le configurazioni richieste per la connessione alle sandbox. Ti verrà richiesto di accettare queste modifiche.

1. Una volta completata la configurazione, verrà creata una nuova voce di configurazione SSH per CodeBuild sandbox.  
![\[Connessione sandbox SSH riuscita.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Passaggio 3: Connect alla sandbox
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Per modificare la configurazione SSH locale nella console**

1. Configura AWS CLI l'autenticazione e assicurati che AWS CLI l'utente disponga dell'`codebuild:StartSandboxConnection`autorizzazione. Per ulteriori informazioni, consulta [Autenticazione tramite credenziali utente IAM per la Guida per l'](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html)*utente dell'interfaccia AWS CLI a riga di AWS comando per* la versione 1.

1. Connect alla sandbox con il seguente comando:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**Nota**  
Per risolvere gli errori di connessione, usa il `-v` flag per abilitare l'output dettagliato. Ad esempio, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Per ulteriori indicazioni sulla risoluzione dei problemi, vedere. [Risoluzione dei problemi AWS CodeBuild di connessione SSH nella sandbox](sandbox-troubleshooting.md)

## Fase 4: Rivedi i risultati
<a name="sandbox-ssh-tutorial.review-results"></a>

Una volta connesso, puoi eseguire il debug degli errori di compilazione, testare i comandi di compilazione, sperimentare modifiche alla configurazione e verificare le variabili e le dipendenze di ambiente con la tua sandbox.

# Risoluzione dei problemi AWS CodeBuild di connessione SSH nella sandbox
<a name="sandbox-troubleshooting"></a>

Utilizza le informazioni contenute in questo argomento per identificare, diagnosticare e risolvere i problemi di connessione SSH CodeBuild nella sandbox.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`errore quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.invalid-input)
+ [Errore: «Impossibile individuare le credenziali» quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`errore quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.access-denied)
+ [Errore: «ssh: impossibile risolvere il nome host» quando SSH entra nell'ambiente sandbox CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`errore quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.invalid-input"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, è possibile che si verifichi un `InvalidInputException` errore del tipo:

```
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 possibile:**
+ Agente Amazon EC2 Systems Manager mancante: nell'immagine di build non è installato o configurato correttamente l'agente SSM.
+ Autorizzazioni insufficienti: il ruolo del servizio di CodeBuild progetto non dispone delle autorizzazioni SSM richieste.

**Soluzione consigliata:** se utilizzi un'immagine personalizzata per la build, procedi come segue.

1. Installazione di SSM Agent Per ulteriori informazioni, consulta [Installazione e disinstallazione manuale dell'agente SSM su istanze Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) per Linux nel. ** La versione di SSM Agent deve essere o successiva. `3.0.1295.0`

1. Copia il file, [ 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) nella directory dell'immagine. `/etc/amazon/ssm/` **Ciò abilita la modalità contenitore nell'agente SSM.**

1. Assicurati che il ruolo di servizio del tuo CodeBuild progetto disponga delle seguenti autorizzazioni, quindi riavvia l'ambiente 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"
        ]
    }
   ```

## Errore: «Impossibile individuare le credenziali» quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.credentials"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, è possibile che si verifichi il seguente errore di credenziali:

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

**Possibile causa:** AWS le credenziali non sono state configurate correttamente nell'ambiente locale.

**Soluzione consigliata:** configura AWS CLI le credenziali seguendo la documentazione ufficiale: [Configurazione delle impostazioni per la Guida utente dell'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)*interfaccia AWS CLI a riga di AWS comando per* la versione 2.

## `StartSandboxConnection``AccessDeniedException`errore quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.access-denied"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, è possibile che si verifichi il seguente errore di autorizzazione:

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

**Possibile causa:** AWS le tue credenziali non dispongono delle CodeBuild autorizzazioni necessarie per eseguire questa operazione.

**Soluzione consigliata:** assicurati che l'utente o il ruolo IAM associato alle tue AWS CLI credenziali disponga delle seguenti autorizzazioni:

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

## Errore: «ssh: impossibile risolvere il nome host» quando SSH entra nell'ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Problema:** quando si tenta di connettersi a un ambiente CodeBuild sandbox utilizzando il comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, si verifica il seguente errore di risoluzione del nome host:

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

**Possibile causa:** questo errore si verifica in genere quando lo script di connessione alla CodeBuild sandbox richiesto non è stato eseguito correttamente nell'ambiente locale.

**Soluzione consigliata:**

1. Scarica lo script di connessione alla CodeBuild sandbox.

1. Esegui lo script nel tuo terminale per stabilire la configurazione SSH necessaria.

1. Riprova la connessione SSH all'ambiente sandbox.

# Compilazioni di debug con Session Manager
<a name="session-manager"></a>

In AWS CodeBuild, puoi mettere in pausa una build in esecuzione e quindi utilizzare AWS Systems Manager Session Manager per connetterti al contenitore di compilazione e visualizzare lo stato del contenitore.

**Nota**  
Questa funzionalità non è disponibile negli ambienti Windows.

**Topics**
+ [Prerequisiti](#ssm.prerequisites)
+ [Metti in pausa la compilazione](#ssm-pause-build)
+ [Avvia la compilazione](#ssm-start-build)
+ [Connect al container di compilazione](#ssm-connect)
+ [Riprendi la compilazione](#ssm-resume-build)

## Prerequisiti
<a name="ssm.prerequisites"></a>

Per consentire l'utilizzo di Session Manager con la sessione di compilazione, è necessario abilitare la connessione alla sessione per la build. Esistono due prerequisiti:
+ CodeBuild Nelle immagini curate dagli standard Linux l'agente SSM è già installato e l'agente SSM è abilitato. ContainerMode 

  Se stai usando un'immagine personalizzata per la tua build, fai quanto segue:

  1. Installazione di SSM Agent Per ulteriori informazioni, consulta [Installare manualmente l'agente SSM sulle istanze EC2 per Linux nella Guida per](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) l' AWS Systems Manager utente. La versione di SSM Agent deve essere 3.0.1295.0 o successiva.

  1. Copia il file [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) nella directory dell'immagine. `/etc/amazon/ssm/` Ciò abilita la modalità contenitore nell'agente SSM.
**Nota**  
Le immagini personalizzate richiederebbero l'agente SSM più aggiornato affinché questa funzionalità funzioni come previsto.
+ Il ruolo CodeBuild di servizio deve avere la seguente politica SSM:

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

****  

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

------

  Puoi fare in modo che la CodeBuild console alleghi automaticamente questa policy al tuo ruolo di servizio all'avvio della build. In alternativa, puoi allegare manualmente questa politica al tuo ruolo di servizio.
+ Se l'**attività di controllo e registrazione della sessione** è abilitata nelle preferenze di Systems Manager, il ruolo di CodeBuild servizio deve disporre anche di autorizzazioni aggiuntive. Le autorizzazioni sono diverse, a seconda di dove sono archiviati i log.  
CloudWatch Registri  
Se utilizzi CloudWatch Logs per archiviare i log, aggiungi la seguente autorizzazione al CodeBuild ruolo di servizio:    
****  

  ```
  {
      "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:*"
          }
      ]
  }
  ```  
Simple Storage Service (Amazon S3)  
Se utilizzi Amazon S3 per archiviare i log, aggiungi la seguente autorizzazione al CodeBuild ruolo di servizio:    
****  

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

  *Per ulteriori informazioni, consulta [Controllo e registrazione dell'attività della sessione nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) per l'utente.AWS Systems Manager *

## Metti in pausa la compilazione
<a name="ssm-pause-build"></a>

Per mettere in pausa la compilazione, inserisci il **codebuild-breakpoint** comando in una qualsiasi delle fasi di compilazione nel tuo file buildspec. La compilazione verrà messa in pausa a questo punto, il che consente di connettersi al contenitore di compilazione e visualizzare il contenitore nello stato corrente. 

Ad esempio, aggiungi quanto segue alle fasi di compilazione nel tuo file buildspec.

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

Questo codice crea il `/tmp/hello-world` file e quindi sospende la compilazione a questo punto.

## Avvia la compilazione
<a name="ssm-start-build"></a>

Per consentire l'utilizzo di Session Manager con la sessione di compilazione, è necessario abilitare le connessioni di sessione per la build. Per fare ciò, quando avvii la build, segui questi passaggi:

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**. Scegli il progetto di compilazione, quindi scegli **Avvia build** with overrides.

1. Selezionare **Advanced build overrides (Sostituzioni avanzate della compilazione)**.

1. Nella sezione **Ambiente**, scegli l'opzione **Abilita la connessione alla sessione.** Se questa opzione non è selezionata, tutti i **codebuild-resume** comandi **codebuild-breakpoint** and vengono ignorati.

1. Apportate le altre modifiche desiderate e scegliete **Avvia compilazione**. 

1. Monitora lo stato della build nella console. Quando la sessione è disponibile, il link **AWS Session Manager** viene visualizzato nella sezione **Build status**.

## Connect al container di compilazione
<a name="ssm-connect"></a>

Puoi connetterti al contenitore di compilazione in due modi:

CodeBuild console  
In un browser web, apri il link **AWS Session Manager** per connetterti al contenitore di build. Si apre una sessione di terminale che consente di sfogliare e controllare il contenitore di compilazione. 

AWS CLI  
Per questa procedura, è necessario che sul computer locale sia installato il plug-in Session Manager. Per ulteriori informazioni, consulta [Installare il plug-in Session Manager per la AWS CLI nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) per l' AWS Systems Manager utente. 

1. Chiama l'**batch-get-builds**api con l'ID di build per ottenere informazioni sulla build, incluso l'identificatore di destinazione della sessione. Il nome della proprietà dell'identificatore di destinazione della sessione varia a seconda del tipo di output del `aws` comando. Questo è il motivo per cui `--output json` viene aggiunto al comando.

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

1. Copia il valore della `sessionTarget` proprietà. Il nome della `sessionTarget` proprietà può variare a seconda del tipo di output del `aws` comando. Questo è il motivo `--output json` per cui viene aggiunto al comando nel passaggio precedente.

1. Usa il seguente comando per connetterti al contenitore di compilazione.

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

Per questo esempio, verificate che il `/tmp/hello-world` file esista e contenga il testo`Hello World`.

## Riprendi la compilazione
<a name="ssm-resume-build"></a>

Dopo aver finito di esaminare il contenitore di compilazione, emetti il **codebuild-resume** comando dalla shell del contenitore.

```
$ codebuild-resume
```