

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Compilações de depuração AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild fornece dois métodos para depurar compilações durante o desenvolvimento e a solução de problemas. Você pode usar o ambiente CodeBuild Sandbox para investigar problemas e validar correções em tempo real, ou você pode usar o AWS Systems Manager Session Manager para se conectar ao contêiner de compilação e visualizar o estado do contêiner.

## Depure compilações com sandbox CodeBuild
<a name="debug-codebuild-sandbox"></a>

O ambiente CodeBuild sandbox fornece uma sessão de depuração interativa em um ambiente seguro e isolado. Você pode interagir com o ambiente diretamente por meio do Console de gerenciamento da AWS or AWS CLI, executar comandos e validar seu processo de criação passo a passo. Ele usa um modelo econômico de cobrança por segundo e oferece suporte à mesma integração nativa com provedores e AWS serviços de origem que seu ambiente de construção. Você também pode se conectar a um ambiente sandbox usando clientes SSH ou de seus ambientes de desenvolvimento integrados ()IDEs.

Para saber mais sobre os preços do CodeBuild sandbox, acesse a [documentação CodeBuild de preços](https://aws.amazon.com/codebuild/pricing/#Sandbox). Consulte instruções detalhadas na documentação do [Depure compilações com sandbox CodeBuild](sandbox.md).

## Depurar compilações com o Session Manager
<a name="debug-codebuild-session-manager"></a>

AWS O Systems Manager Session Manager permite acesso direto às compilações em execução em seu ambiente de execução real. Essa abordagem permite se conectar a contêineres de compilação ativos e inspecionar o processo de compilação em tempo real. Você pode examinar o sistema de arquivos, monitorar os processos em execução e solucionar problemas à medida que eles ocorrem.

Consulte instruções detalhadas na documentação do [Depurar compilações com o Session Manager](session-manager.md).

# Depure compilações com sandbox CodeBuild
<a name="sandbox"></a>

Em AWS CodeBuild, você pode depurar uma compilação usando o CodeBuild sandbox para executar comandos personalizados e solucionar problemas de sua compilação.

**Topics**
+ [Pré-requisitos](#sandbox-prereq)
+ [Depurar compilações com CodeBuild sandbox (console)](#sandbox-console)
+ [Depure compilações com CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutorial: conectar-se a um sandbox usando SSH](sandbox-ssh-tutorial.md)
+ [Solução de problemas de conexão SSH do AWS CodeBuild sandbox](sandbox-troubleshooting.md)

## Pré-requisitos
<a name="sandbox-prereq"></a>

Antes de usar um CodeBuild sandbox, certifique-se de que sua função CodeBuild de serviço tenha a seguinte política de SSM:

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

****  

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

------

## Depurar compilações com CodeBuild sandbox (console)
<a name="sandbox-console"></a>

Use as instruções a seguir para executar comandos e conectar seu cliente SSH ao CodeBuild sandbox no console.

### Execute comandos com o CodeBuild sandbox (console)
<a name="sandbox-console.commands"></a>

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, selecione **Projetos de compilação**. Escolha o projeto de compilação e selecione **Depurar compilação**.  
![\[A página de detalhes do projeto de compilação de depuração no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Na guia **Executar comando**, insira os comandos personalizados e selecione **Executar comando**.  
![\[A página de detalhes do comando de execução no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/debug-build-run.png)

1. Sua CodeBuild sandbox será então inicializada e começará a executar seus comandos personalizados. A saída será mostrada na guia **Saída** quando for concluída.   
![\[A página de saída do comando de execução no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/debug-build-run-output.png)

1. Quando a solução de problemas for concluída, você poderá interromper o sandbox escolhendo **Interromper sandbox**. Depois, escolha **Interromper** para confirmar que o sandbox será interrompido.  
![\[A caixa de diálogo Interromper sandbox.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[A página de saída do comando de execução com um sandbox interrompido no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/stopped-sandbox.png)

### Conecte-se ao seu cliente SSH com CodeBuild sandbox (console)
<a name="sandbox-console.ssh"></a>

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, selecione **Projetos de compilação**. Escolha o projeto de compilação e selecione **Depurar compilação**.  
![\[A página de detalhes do projeto de compilação de depuração no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Na guia **Cliente SSH**, escolha **Iniciar sandbox**.  
![\[A página de sandbox do cliente SSH no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Depois que a CodeBuild sandbox começar a ser executada, siga as instruções do console para conectar seu cliente SSH à sandbox.  
![\[A página de sandbox do cliente SSH no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. Quando a solução de problemas for concluída, você poderá interromper o sandbox escolhendo **Interromper sandbox**. Depois, escolha **Interromper** para confirmar que o sandbox será interrompido.  
![\[A caixa de diálogo Interromper sandbox.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[A página de saída do comando de execução com um sandbox interrompido no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Depure compilações com CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Use as instruções a seguir para executar comandos e conectar seu cliente SSH ao CodeBuild sandbox.

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

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

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nome CodeBuild do projeto

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

------

### Obtenha informações sobre o status do 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`: lista de `sandboxIds` ou `sandboxArns` separados por vírgula.

Você pode fornecer um ID de sandbox ou um ARN de sandbox:
+ ID do sandbox: `<codebuild-project-name>:<UUID>`

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

  Por exemplo, .`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": []
}
```

------

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

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

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

------

### Iniciar a execução de um 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`: o comando que precisa ser executado.
+ `--sandbox-id`: um `sandboxId` ou `sandboxArn`.
+ `--type`: o tipo de comando, `SHELL`.

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

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

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

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

------

### Obter informações sobre as execuções do comando (AWS CLI)
<a name="sandbox-cli.batch-get-command-executions"></a>

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

```
aws codebuild batch-get-command-executions --command-execution-ids $COMMAND-IDs --sandbox-id $SANDBOX-IDs
```
+ `--command-execution-ids`: lista de `commandExecutionIds` separada por vírgulas.
+ `--sandbox-id`: um `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": []
}
```

------

### Listar as execuções de comandos para um 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`: o próximo token, se houver, para obter resultados paginados. Você obterá esse valor por meio da execução anterior de listar sandboxes.
+ `--max-results`: (opcional) o número máximo de registros de sandbox a serem recuperados.
+ `--sort-order`: a ordem na qual os registros do sandbox devem ser recuperados.

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

------

### Listar sandboxes (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: conectar-se a um sandbox usando SSH
<a name="sandbox-ssh-tutorial"></a>

Este tutorial mostra como se conectar a uma CodeBuild sandbox usando um cliente SSH.

Para concluir este tutorial, você deve primeiramente:
+ Certifique-se de ter um AWS CodeBuild projeto existente.
+ Configure as permissões apropriadas do IAM configuradas para a função CodeBuild do seu projeto. 
+ Instale e configure AWS CLI em sua máquina local.

## Etapa 1: iniciar um sandbox
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Para iniciar uma CodeBuild sandbox no console**

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, selecione **Projetos de compilação**. Escolha o projeto de compilação e selecione **Depurar compilação**.  
![\[A página de detalhes do projeto de compilação no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/project-debug-build.png)

1. Na guia **Cliente SSH**, escolha **Iniciar sandbox**.  
![\[A guia “Cliente SSH” no console com o botão “Iniciar sandbox”.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. O processo de inicialização do sandbox pode levar algum tempo. Você pode se conectar ao sandbox quando o status mudar para `RUN_SANDDBOX`.  
![\[A conexão do sandbox via SSH depois que o status muda para “RUN_SANDBOX”.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/run-sandbox.png)

## Etapa 2: modificar a configuração de SSH local
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Se estiver se conectando ao sandbox pela primeira vez, você precisará realizar um processo de configuração único usando as seguintes etapas:

**Como modificar a configuração SSH local no console**

1. Encontre os comandos de configuração do sistema operacional.

1. Abra o terminal local e, depois, copie e execute os comandos fornecidos para baixar e executar o script a fim de definir a configuração de SSH local. Por exemplo, se o sistema operacional for o macOS, use o seguinte comando:  
![\[Os comandos do macOS para conexão SSH com a CodeBuild sandbox no console.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. O script de configuração adiciona as configurações necessárias para se conectar aos sandboxes. Você recebe uma solicitação para aceitar essas alterações.

1. Após a configuração bem-sucedida, uma nova entrada de configuração SSH para CodeBuild sandbox será criada.  
![\[Uma conexão de sandbox via SSH bem-sucedida.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Etapa 3: conectar-se ao sandbox
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Como modificar a configuração SSH local no console**

1. Configure a AWS CLI autenticação e garanta que seu AWS CLI usuário tenha a `codebuild:StartSandboxConnection` permissão. Consulte mais informações em [Autenticação usando credenciais de usuário do IAM para a AWS CLI](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html) no *Guia do usuário da AWS Command Line Interface versão 1*.

1. Conecte-se ao sandbox com o seguinte comando:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**nota**  
Para solucionar falhas de conexão, use o sinalizador `-v` para habilitar a saída detalhada. Por exemplo, .`ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`  
Consulte mais orientações sobre solução de problemas em [Solução de problemas de conexão SSH do AWS CodeBuild sandbox](sandbox-troubleshooting.md).

## Etapa 4: analise seus resultados
<a name="sandbox-ssh-tutorial.review-results"></a>

Depois da conexão, é possível depurar falhas de compilação, testar comandos de compilação, experimentar alterações na configuração e verificar as dependências e variáveis de ambiente com o sandbox.

# Solução de problemas de conexão SSH do AWS CodeBuild sandbox
<a name="sandbox-troubleshooting"></a>

Use as informações deste tópico para ajudá-lo a identificar, diagnosticar e resolver problemas de conexão SSH do CodeBuild sandbox.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`erro quando o SSH entra no ambiente CodeBuild sandbox](#sandbox-troubleshooting.invalid-input)
+ [Erro: “Não é possível localizar as credenciais” quando o SSH entra no ambiente sandbox CodeBuild](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`erro quando o SSH entra no ambiente CodeBuild sandbox](#sandbox-troubleshooting.access-denied)
+ [Erro: “ssh: não foi possível resolver o nome do host” quando o SSH está no ambiente sandbox CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`erro quando o SSH entra no ambiente CodeBuild sandbox
<a name="sandbox-troubleshooting.invalid-input"></a>

**Problema:** ao tentar se conectar a um ambiente CodeBuild sandbox usando o comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, você pode encontrar um `InvalidInputException` erro como:

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

**Possível causa:**
+ Agente do Amazon EC2 Systems Manager ausente: a imagem de compilação não tem o SSM Agent devidamente instalado ou configurado.
+ Permissões insuficientes: a função de serviço do CodeBuild projeto não tem as permissões SSM necessárias.

**Solução recomendada:** se você estiver usando uma imagem personalizada para a compilação, faça o seguinte.

1. Instalar o SSM Agent do . Consulte mais informações em [Instalar e desinstalar manualmente o SSM Agent em instâncias do Amazon EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) no **. A versão do SSM Agent deve ser `3.0.1295.0` ou posterior.

1. Copie o arquivo, [ 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) para o diretório na sua imagem. `/etc/amazon/ssm/` Isso habilita o **Modo de contêiner** no SSM Agent.

1. Certifique-se de que a função de serviço do seu CodeBuild projeto tenha as seguintes permissões e reinicie o 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"
        ]
    }
   ```

## Erro: “Não é possível localizar as credenciais” quando o SSH entra no ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.credentials"></a>

**Problema:** ao tentar se conectar a um ambiente CodeBuild sandbox usando o comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, você pode encontrar o seguinte erro de credenciais:

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

**Possível causa:** AWS as credenciais não foram configuradas corretamente em seu ambiente local.

**Solução recomendada:** configure suas AWS CLI credenciais seguindo a documentação oficial: [Definindo as configurações do Guia do usuário da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *interface de linha de AWS comando para a versão 2*.

## `StartSandboxConnection``AccessDeniedException`erro quando o SSH entra no ambiente CodeBuild sandbox
<a name="sandbox-troubleshooting.access-denied"></a>

**Problema:** ao tentar se conectar a um ambiente de CodeBuild sandbox usando o comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, você pode encontrar o seguinte erro de permissão:

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

**Causa possível:** suas AWS credenciais não têm as CodeBuild permissões necessárias para realizar essa operação.

**Solução recomendada:** certifique-se de que o usuário ou a função do IAM associada às suas AWS CLI credenciais tenha as seguintes permissões:

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

## Erro: “ssh: não foi possível resolver o nome do host” quando o SSH está no ambiente sandbox CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Problema:** ao tentar se conectar a um ambiente de CodeBuild sandbox usando o comando`ssh codebuild-sandbox-ssh=<sandbox-arn>`, você encontra o seguinte erro de resolução de nome de host:

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

**Possível causa:** Esse erro geralmente ocorre quando o script de conexão de CodeBuild sandbox necessário não foi executado corretamente em seu ambiente local.

**A solução recomendada:**

1. Baixe o script de conexão do CodeBuild sandbox.

1. Execute o script no terminal para estabelecer a configuração SSH necessária.

1. Tente estabelecer novamente a conexão SSH com o ambiente de sandbox.

# Depurar compilações com o Session Manager
<a name="session-manager"></a>

Em AWS CodeBuild, você pode pausar uma compilação em execução e, em seguida, usar o Gerenciador de AWS Systems Manager Sessões para se conectar ao contêiner de compilação e visualizar o estado do contêiner.

**nota**  
Esse atributo não está disponível em ambientes Windows.

**Topics**
+ [Pré-requisitos](#ssm.prerequisites)
+ [Pausar a compilação](#ssm-pause-build)
+ [Iniciar a compilação](#ssm-start-build)
+ [Conectar-se ao contêiner de compilação](#ssm-connect)
+ [Retomar a compilação](#ssm-resume-build)

## Pré-requisitos
<a name="ssm.prerequisites"></a>

Para permitir que o Gerenciador de Sessões seja usado com a sessão de compilação, é necessário habilitar a conexão de sessão para a compilação. Há dois pré-requisitos:
+ CodeBuild As imagens com curadoria padrão do Linux já têm o agente SSM instalado e o agente SSM ativado. ContainerMode 

  Se você estiver usando uma imagem personalizada para a compilação, faça o seguinte:

  1. Instalar o SSM Agent do . Para obter mais informações, consulte [Manually install SSM Agent on EC2 instances for Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) no Guia do usuário do AWS Systems Manager . A versão do SSM Agent deve ser 3.0.1295.0 ou posterior.

  1. Copie o arquivo [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) para o diretório em sua imagem. `/etc/amazon/ssm/` Isso habilita o Modo de contêiner no SSM Agent.
**nota**  
Imagens personalizadas exigiriam o SSM Agent mais atualizado para que esse atributo funcionasse conforme o esperado.
+ A função CodeBuild de serviço deve ter a seguinte política de SSM:

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

****  

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

------

  Você pode fazer com que o CodeBuild console anexe automaticamente essa política à sua função de serviço ao iniciar a compilação. Se preferir, você poderá anexar essa política ao perfil de serviço manualmente.
+ Se você tiver a **atividade de sessão de auditoria e registro** ativada nas preferências do Systems Manager, a função CodeBuild de serviço também deverá ter permissões adicionais. As permissões são diferentes, dependendo do local onde os logs são armazenados.  
CloudWatch Registros  
Se estiver usando CloudWatch Logs para armazenar seus registros, adicione a seguinte permissão à função CodeBuild de serviço:    
****  

  ```
  {
      "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  
Se estiver usando o Amazon S3 para armazenar seus registros, adicione a seguinte permissão à função de CodeBuild serviço:    
****  

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

  Para obter mais informações, consulte [Auditing and logging session activity](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) no *Guia do usuário do AWS Systems Manager *.

## Pausar a compilação
<a name="ssm-pause-build"></a>

Para pausar a compilação, insira o comando **codebuild-breakpoint** em qualquer uma das fases de compilação no arquivo buildspec. A compilação será pausada nesse momento, o que permite a você se conectar ao contêiner de compilação e visualizar o contêiner no estado atual. 

Por exemplo, adicione o seguinte às fases de compilação do arquivo buildspec.

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

Esse código cria o arquivo `/tmp/hello-world` e, depois, pausa a compilação nesse momento.

## Iniciar a compilação
<a name="ssm-start-build"></a>

Para permitir que o Gerenciador de Sessões seja usado com a sessão de compilação, é necessário habilitar as conexões de sessão para a compilação. Para fazer isso, ao iniciar a compilação, siga as estas etapas:

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, selecione **Projetos de compilação**. Selecione o projeto de compilação e, depois, escolha **Iniciar compilação com substituições**.

1. Escolha **Advanced build overrides (Substituições de compilação avançadas)**.

1. Na seção **Ambiente**, escolha a opção **Habilitar conexão de sessão**. Se essa opção não for selecionada, todos os comandos **codebuild-breakpoint** e **codebuild-resume** serão ignorados.

1. Faça todas as outras alterações desejadas e escolha **Iniciar compilação**. 

1. Monitore o status da compilação no console. Quando a sessão está disponível, o link do **Gerenciador de Sessões da AWS ** é exibido na seção **Status da compilação**.

## Conectar-se ao contêiner de compilação
<a name="ssm-connect"></a>

É possível se conectar ao contêiner de compilação de uma duas formas:

CodeBuild console  
Em um navegador web, abra o link do **Gerenciador de Sessões do AWS ** para se conectar ao contêiner de compilação. É aberta uma sessão de terminal que permite a você navegar e controlar o contêiner de compilação. 

AWS CLI  
A máquina local deve ter o plug-in do Gerenciador de Sessões instalado para esse procedimento. Para obter mais informações, consulte [Instalar o plug-in do gerenciador de sessões para a AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) no Guia do AWS Systems Manager usuário. 

1. Chame a API **batch-get-builds** com o ID da compilação para obter informações sobre a compilação, incluindo o identificador de destino da sessão. O nome da propriedade do identificador de destino da sessão varia de acordo com o tipo de saída do comando `aws`. É por isso que `--output json` é adicionado ao comando.

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

1. Copie o valor da propriedade `sessionTarget`. O nome da propriedade `sessionTarget` pode variar dependendo do tipo de saída do comando `aws`. É por isso que `--output json` foi adicionado ao comando na etapa anterior.

1. Use o comando a seguir para se conectar ao contêiner de compilação.

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

Neste exemplo, verifique se o arquivo `/tmp/hello-world` existe e contém o texto `Hello World`.

## Retomar a compilação
<a name="ssm-resume-build"></a>

Depois de terminar de examinar o contêiner de compilação, emita o comando **codebuild-resume** do shell de contêiner.

```
$ codebuild-resume
```