

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Debug dibangun di AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild menyediakan dua metode untuk men-debug build selama pengembangan dan pemecahan masalah. Anda dapat menggunakan lingkungan CodeBuild Sandbox untuk menyelidiki masalah dan memvalidasi perbaikan secara real-time, atau Anda dapat menggunakan AWS Systems Manager Session Manager untuk menyambung ke container build dan melihat status container.

## Debug dibangun dengan kotak pasir CodeBuild
<a name="debug-codebuild-sandbox"></a>

Lingkungan CodeBuild kotak pasir menyediakan sesi debug interaktif di lingkungan yang aman dan terisolasi. Anda dapat berinteraksi dengan lingkungan secara langsung melalui perintah Konsol Manajemen AWS atau AWS CLI, mengeksekusi, dan memvalidasi proses build Anda langkah demi langkah. Ini menggunakan model penagihan per detik yang hemat biaya dan mendukung integrasi asli yang sama dengan penyedia sumber dan AWS layanan seperti lingkungan build Anda. Anda juga dapat terhubung ke lingkungan sandbox menggunakan klien SSH atau dari lingkungan pengembangan terintegrasi Anda ()IDEs.

Untuk mempelajari lebih lanjut tentang harga CodeBuild kotak pasir, kunjungi [dokumentasi CodeBuild harga](https://aws.amazon.com/codebuild/pricing/#Sandbox). Untuk instruksi terperinci, kunjungi [Debug dibangun dengan kotak pasir CodeBuild](sandbox.md) dokumentasi.

## Debug dibangun dengan Session Manager
<a name="debug-codebuild-session-manager"></a>

AWS Systems Manager Session Manager memungkinkan akses langsung ke build yang sedang berjalan di lingkungan eksekusi aktual mereka. Pendekatan ini memungkinkan Anda untuk terhubung ke container build aktif dan memeriksa proses build secara real-time. Anda dapat memeriksa sistem file, memantau proses yang sedang berjalan, dan memecahkan masalah saat terjadi.

Untuk instruksi terperinci, kunjungi [Debug dibangun dengan Session Manager](session-manager.md) dokumentasi.

# Debug dibangun dengan kotak pasir CodeBuild
<a name="sandbox"></a>

Di AWS CodeBuild, Anda dapat men-debug build dengan menggunakan CodeBuild sandbox untuk menjalankan perintah khusus dan memecahkan masalah build Anda.

**Topics**
+ [Prasyarat](#sandbox-prereq)
+ [Debug dibangun dengan CodeBuild sandbox (konsol)](#sandbox-console)
+ [Debug dibangun dengan CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutorial: Menghubungkan ke kotak pasir menggunakan SSH](sandbox-ssh-tutorial.md)
+ [Memecahkan masalah koneksi SSH AWS CodeBuild kotak pasir](sandbox-troubleshooting.md)

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

Sebelum menggunakan CodeBuild kotak pasir, pastikan peran CodeBuild layanan Anda memiliki kebijakan SSM berikut:

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

------

## Debug dibangun dengan CodeBuild sandbox (konsol)
<a name="sandbox-console"></a>

Gunakan instruksi berikut untuk menjalankan perintah dan menghubungkan klien SSH Anda dengan CodeBuild kotak pasir di konsol.

### Jalankan perintah dengan CodeBuild sandbox (konsol)
<a name="sandbox-console.commands"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Debug build**.  
![\[Halaman detail proyek pembuatan debug di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Di tab **Run command**, masukkan perintah kustom Anda, lalu pilih **Run command**.  
![\[Halaman detail perintah run di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/debug-build-run.png)

1.  CodeBuild Kotak pasir Anda kemudian akan diinisialisasi dan mulai menjalankan perintah khusus Anda. Output akan ditampilkan di tab **Output** saat selesai.   
![\[Halaman keluaran perintah run di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/debug-build-run-output.png)

1. **Saat pemecahan masalah selesai, Anda dapat menghentikan kotak pasir dengan memilih Stop sandbox.** Kemudian pilih **Berhenti** untuk mengonfirmasi bahwa kotak pasir Anda akan dihentikan.  
![\[Kotak dialog stop sandbox.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[Halaman keluaran perintah run dengan kotak pasir berhenti di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stopped-sandbox.png)

### Connect ke klien SSH Anda dengan CodeBuild sandbox (konsol)
<a name="sandbox-console.ssh"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Debug build**.  
![\[Halaman detail proyek pembuatan debug di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Di tab **SSH Client** dan pilih **Start sandbox**.  
![\[Halaman kotak pasir klien SSH di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Setelah CodeBuild kotak pasir mulai berjalan, ikuti instruksi konsol untuk menghubungkan klien SSH Anda dengan kotak pasir.  
![\[Halaman kotak pasir klien SSH di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. **Saat pemecahan masalah selesai, Anda dapat menghentikan kotak pasir dengan memilih Stop sandbox.** Kemudian pilih **Berhenti** untuk mengonfirmasi bahwa kotak pasir Anda akan dihentikan.  
![\[Kotak dialog stop sandbox.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[Halaman keluaran perintah run dengan kotak pasir berhenti di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Debug dibangun dengan CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Gunakan instruksi berikut untuk menjalankan perintah dan menghubungkan klien SSH Anda dengan kotak CodeBuild pasir.

### Mulai CodeBuild kotak pasir ()AWS CLI
<a name="sandbox-cli.start-sandbox"></a>

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

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nama CodeBuild proyek

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

------

### Dapatkan informasi tentang status kotak pasir ()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`: Daftar koma dipisahkan dari `sandboxIds` atau`sandboxArns`.

Anda dapat memberikan ID kotak pasir atau ARN kotak pasir:
+ ID Kotak Pasir: `<codebuild-project-name>:<UUID>`

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

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

------

### Hentikan kotak pasir ()AWS CLI
<a name="sandbox-cli.stop-sandbox"></a>

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

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

------

### Mulai eksekusi perintah (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`: Perintah yang perlu dieksekusi.
+ `--sandbox-id`: A `sandboxId` atau`sandboxArn`.
+ `--type`: Jenis perintah,`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
        }
    }
}
```

------

### Dapatkan informasi tentang eksekusi perintah ()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`: Daftar koma dipisahkan dari. `commandExecutionIds`
+ `--sandbox-id`: A `sandboxId` atau`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": []
}
```

------

### Daftar eksekusi perintah untuk 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`: Token berikutnya, jika ada, untuk mendapatkan hasil paginasi. Anda akan mendapatkan nilai ini dari eksekusi kotak pasir daftar sebelumnya.
+ `--max-results`: (Opsional) Jumlah maksimum catatan kotak pasir yang akan diambil.
+ `--sort-order`: Urutan di mana catatan kotak pasir harus diambil.

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

------

### Daftar kotak pasir ()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: Menghubungkan ke kotak pasir menggunakan SSH
<a name="sandbox-ssh-tutorial"></a>

Tutorial ini menunjukkan kepada Anda bagaimana untuk terhubung ke CodeBuild sandbox menggunakan klien SSH.

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+ Pastikan Anda memiliki AWS CodeBuild proyek yang sudah ada.
+ Siapkan izin IAM yang sesuai yang dikonfigurasi untuk peran CodeBuild proyek Anda. 
+ Instal dan konfigurasikan AWS CLI pada mesin lokal Anda.

## Langkah 1: Mulai kotak pasir
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Untuk memulai CodeBuild kotak pasir di konsol**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Debug build**.  
![\[Halaman detail proyek build di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/project-debug-build.png)

1. Di tab **SSH Client** dan pilih **Start sandbox**.  
![\[Tab “SSH Client” di konsol dengan tombol “Start sandbox”.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Proses inisialisasi kotak pasir mungkin memakan waktu lama. Anda dapat terhubung ke kotak pasir saat statusnya berubah menjadi`RUN_SANDDBOX`.  
![\[Sambungan kotak pasir SSH setelah status berubah menjadi “RUN_SANDDBOX”.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/run-sandbox.png)

## Langkah 2: Ubah konfigurasi SSH lokal
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Jika Anda menghubungkan ke sandbox untuk pertama kalinya, Anda perlu melakukan proses penyiapan satu kali menggunakan langkah-langkah berikut:

**Untuk memodifikasi konfigurasi SSH lokal di konsol**

1. Temukan perintah pengaturan untuk sistem operasi Anda.

1. Buka terminal lokal Anda, lalu salin dan jalankan perintah yang disediakan untuk mengunduh dan menjalankan skrip untuk mengatur konfigurasi SSH lokal Anda. Misalnya, jika sistem operasi Anda macOS, gunakan perintah berikut:  
![\[Perintah macOS untuk koneksi SSH ke CodeBuild kotak pasir di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. Skrip konfigurasi akan menambahkan konfigurasi yang diperlukan untuk menghubungkan ke kotak pasir Anda. Anda akan diminta untuk menerima perubahan ini.

1. Setelah konfigurasi berhasil, entri konfigurasi SSH baru untuk CodeBuild kotak pasir akan dibuat.  
![\[Koneksi kotak pasir SSH yang sukses.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-terminal-success.png)

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

**Untuk memodifikasi konfigurasi SSH lokal di konsol**

1. Konfigurasikan AWS CLI Otentikasi dan pastikan AWS CLI pengguna Anda memiliki `codebuild:StartSandboxConnection` izin. Untuk informasi selengkapnya, lihat [Mengautentikasi menggunakan kredensyal pengguna IAM untuk](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html) *Panduan Pengguna Antarmuka Baris AWS Perintah* untuk Versi 1. AWS CLI

1. Connect ke sandbox Anda dengan perintah berikut:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**catatan**  
Untuk memecahkan masalah kegagalan koneksi, gunakan `-v` tanda untuk mengaktifkan keluaran verbose. Misalnya, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Untuk panduan pemecahan masalah tambahan, lihat. [Memecahkan masalah koneksi SSH AWS CodeBuild kotak pasir](sandbox-troubleshooting.md)

## Langkah 4: Tinjau hasil Anda
<a name="sandbox-ssh-tutorial.review-results"></a>

Setelah terhubung, Anda dapat men-debug kegagalan build, menguji perintah build, bereksperimen dengan perubahan konfigurasi, dan memverifikasi variabel lingkungan dan dependensi dengan kotak pasir Anda.

# Memecahkan masalah koneksi SSH AWS CodeBuild kotak pasir
<a name="sandbox-troubleshooting"></a>

Gunakan informasi dalam topik ini untuk membantu Anda mengidentifikasi, mendiagnosis, dan mengatasi masalah koneksi SSH CodeBuild kotak pasir.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir](#sandbox-troubleshooting.invalid-input)
+ [Kesalahan: “Tidak dapat menemukan kredensyal” saat SSH masuk ke lingkungan kotak pasir CodeBuild](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir](#sandbox-troubleshooting.access-denied)
+ [Kesalahan: “ssh: Tidak dapat menyelesaikan nama host” saat SSH masuk ke lingkungan kotak pasir CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir
<a name="sandbox-troubleshooting.invalid-input"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mungkin mengalami `InvalidInputException` kesalahan seperti:

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

**Kemungkinan penyebab** :
+ Agen Amazon EC2 Systems Manager Hilang: Image build tidak memiliki agen SSM yang diinstal atau dikonfigurasi dengan benar.
+ Izin Tidak Cukup: Peran layanan CodeBuild proyek tidak memiliki izin SSM yang diperlukan.

**Solusi yang disarankan:** Jika Anda menggunakan gambar khusus untuk build Anda, lakukan hal berikut.

1. Instal SSM Agent. Untuk informasi selengkapnya, lihat [Menginstal dan mencopot pemasangan Agen SSM secara manual di instans Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) untuk Linux di. ** Versi Agen SSM harus `3.0.1295.0` atau lebih baru.

1. Salin 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) ke direktori di gambar Anda. `/etc/amazon/ssm/` Ini memungkinkan **Mode Kontainer** di agen SSM.

1. Pastikan peran layanan CodeBuild proyek Anda memiliki izin berikut, lalu mulai ulang lingkungan kotak pasir:

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

## Kesalahan: “Tidak dapat menemukan kredensyal” saat SSH masuk ke lingkungan kotak pasir CodeBuild
<a name="sandbox-troubleshooting.credentials"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mungkin mengalami kesalahan kredensyal berikut:

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

**Kemungkinan penyebabnya:** AWS kredensyal belum dikonfigurasi dengan benar di lingkungan lokal Anda.

**Solusi yang disarankan:** Konfigurasikan AWS CLI kredensyal Anda dengan mengikuti dokumentasi resmi: [Mengkonfigurasi pengaturan untuk](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *Panduan Pengguna Antarmuka Baris AWS Perintah untuk* Versi 2. AWS CLI

## `StartSandboxConnection``AccessDeniedException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir
<a name="sandbox-troubleshooting.access-denied"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mungkin mengalami kesalahan izin berikut:

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

**Kemungkinan penyebabnya:** AWS Kredensyal Anda tidak memiliki CodeBuild izin yang diperlukan untuk melakukan operasi ini.

**Solusi yang disarankan:** Pastikan bahwa pengguna IAM atau peran yang terkait dengan AWS CLI kredensyal Anda memiliki izin berikut:

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

## Kesalahan: “ssh: Tidak dapat menyelesaikan nama host” saat SSH masuk ke lingkungan kotak pasir CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mengalami kesalahan resolusi nama host berikut:

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

**Kemungkinan penyebabnya:** Kesalahan ini biasanya terjadi ketika skrip koneksi CodeBuild kotak pasir yang diperlukan belum dijalankan dengan benar di lingkungan lokal Anda.

**Solusi yang direkomendasikan:**

1. Unduh skrip koneksi CodeBuild kotak pasir.

1. Jalankan skrip di terminal Anda untuk membuat konfigurasi SSH yang diperlukan.

1. Coba lagi koneksi SSH Anda ke lingkungan kotak pasir.

# Debug dibangun dengan Session Manager
<a name="session-manager"></a>

Di AWS CodeBuild, Anda dapat menjeda build yang sedang berjalan dan kemudian menggunakan AWS Systems Manager Session Manager untuk menyambung ke container build dan melihat status container.

**catatan**  
Fitur ini tidak tersedia di lingkungan Windows.

**Topics**
+ [Prasyarat](#ssm.prerequisites)
+ [Jeda build](#ssm-pause-build)
+ [Mulai membangun](#ssm-start-build)
+ [Connect ke container build](#ssm-connect)
+ [Lanjutkan build](#ssm-resume-build)

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

Untuk mengizinkan Session Manager digunakan dengan sesi build, Anda harus mengaktifkan koneksi sesi untuk build. Ada dua prasyarat:
+ CodeBuild Gambar kurasi standar Linux sudah menginstal agen SSM dan agen SSM diaktifkan. ContainerMode 

  Jika Anda menggunakan gambar kustom untuk build Anda, lakukan hal berikut:

  1. Instal SSM Agent. Untuk informasi selengkapnya, lihat [Instal Agen SSM secara manual pada instans EC2 untuk Linux di Panduan](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) Pengguna. AWS Systems Manager Versi Agen SSM harus 3.0.1295.0 atau yang lebih baru.

  1. Salin 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) ke direktori di gambar Anda. `/etc/amazon/ssm/` Ini memungkinkan Mode Kontainer di agen SSM.
**catatan**  
Gambar khusus akan membutuhkan agen SSM terbaru agar fitur ini berfungsi seperti yang diharapkan.
+ Peran CodeBuild layanan harus memiliki kebijakan SSM berikut:

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

****  

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

------

   CodeBuild Konsol dapat melampirkan kebijakan ini secara otomatis ke peran layanan saat memulai pembuatan. Atau, Anda dapat melampirkan kebijakan ini ke peran layanan Anda secara manual.
+ Jika **aktivitas sesi Audit dan logging** diaktifkan di preferensi Systems Manager, peran CodeBuild layanan juga harus memiliki izin tambahan. Izin berbeda, tergantung di mana log disimpan.  
CloudWatch Log  
Jika menggunakan CloudWatch Log untuk menyimpan log Anda, tambahkan izin berikut ke peran CodeBuild layanan:    
****  

  ```
  {
      "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  
Jika menggunakan Amazon S3 untuk menyimpan log Anda, tambahkan izin berikut ke peran CodeBuild layanan:    
****  

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

  Untuk informasi selengkapnya, lihat [Aktivitas sesi audit dan pencatatan](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) di *Panduan AWS Systems Manager Pengguna*.

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

Untuk menjeda build, masukkan **codebuild-breakpoint** perintah di salah satu fase build di file buildspec Anda. Build akan dijeda pada titik ini, yang memungkinkan Anda terhubung ke container build dan melihat container dalam statusnya saat ini. 

Misalnya, tambahkan yang berikut ini ke fase build di file buildspec Anda.

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

Kode ini membuat `/tmp/hello-world` file dan kemudian menjeda build pada saat ini.

## Mulai membangun
<a name="ssm-start-build"></a>

Agar Session Manager dapat digunakan dengan sesi build, Anda harus mengaktifkan koneksi sesi untuk build. Untuk melakukan ini, saat memulai build, ikuti langkah-langkah berikut:

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Start build with overrides**.

1. Pilih **Penggantian build lanjutan**.

1. Di bagian **Lingkungan**, pilih opsi **Aktifkan koneksi sesi**. Jika opsi ini tidak dipilih, semua **codebuild-resume** perintah **codebuild-breakpoint** dan diabaikan.

1. Buat perubahan lain yang diinginkan, dan pilih **Mulai membangun**. 

1. Pantau status build di konsol. Saat sesi tersedia, tautan **Pengelola AWS Sesi** akan muncul di bagian **Status build**.

## Connect ke container build
<a name="ssm-connect"></a>

Anda dapat terhubung ke wadah build dengan salah satu dari dua cara:

CodeBuild konsol  
Di browser web, buka tautan **AWS Session Manager** untuk terhubung ke container build. Sesi terminal terbuka yang memungkinkan Anda menelusuri dan mengontrol container build. 

AWS CLI  
Mesin lokal Anda harus menginstal plugin Session Manager untuk prosedur ini. Untuk informasi selengkapnya, lihat [Menginstal Plugin Session Manager untuk AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) di AWS Systems Manager Panduan Pengguna. 

1. Panggil **batch-get-builds** api dengan ID build untuk mendapatkan informasi tentang build, termasuk pengidentifikasi target sesi. Nama properti pengidentifikasi target sesi bervariasi tergantung pada jenis output `aws` perintah. Inilah `--output json` sebabnya mengapa ditambahkan ke perintah.

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

1. Salin nilai `sessionTarget` properti. Nama `sessionTarget` properti dapat bervariasi tergantung pada jenis output `aws` perintah. Inilah `--output json` sebabnya mengapa ditambahkan ke perintah di langkah sebelumnya.

1. Gunakan perintah berikut untuk menyambung ke container build.

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

Untuk contoh ini, verifikasi bahwa `/tmp/hello-world` file itu ada dan berisi teks`Hello World`.

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

Setelah Anda selesai memeriksa container build, keluarkan **codebuild-resume** perintah dari shell container.

```
$ codebuild-resume
```