Penyelesaian masalah AWS IoT Greengrass di kontainer Docker - AWS IoT Greengrass

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

Penyelesaian masalah AWS IoT Greengrass di kontainer Docker

Gunakan informasi berikut untuk membantu Anda memecahkan masalah dengan menjalankan AWS IoT Greengrass dalam kontainer Docker dan untuk men-debug masalah dengan AWS IoT Greengrass dalam kontainer Docker.

Memecahkan masalah dengan menjalankan kontainer Docker

Gunakan informasi berikut untuk membantu menyelesaikan masalah dengan menjalankan AWS IoT Greengrass di kontainer Docker.

Kesalahan: Tidak dapat melakukan login interaktif dari perangkat non TTY

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah aws ecr get-login-password. Pastikan Anda telah menginstal AWS CLI versi 2 atau versi 1. Kami menyarankan agar Anda menggunakan AWS CLI versi 2. Untuk informasi selengkapnya, lihat Menginstal AWS CLI dalam AWS Command Line Interface Panduan Pengguna.

Kesalahan: Opsi tidak dikenal: - no-include-email

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah aws ecr get-login. Pastikan Anda memiliki versi AWS CLI terkini yang diinstal (misalnya, jalankan: pip install awscli --upgrade --user). Untuk informasi lebih lanjut, lihat: Menginstal AWS Command Line Interface di Microsoft Windows di Panduan Pengguna AWS Command Line Interface.

Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.

Anda mungkin menerima kesalahan ini atau Firewall Detected saat menjalankan Docker di komputer Windows. Hal ini juga dapat terjadi jika Anda masuk pada jaringan pribadi virtual (VPN) dan pengaturan jaringan Anda mencegah dipasangnya drive bersama. Dalam situasi itu, matikan VPN dan jalankan kembali kontainer Docker.

Kesalahan: Terjadi kesalahan (AccessDeniedException) saat memanggil GetAuthorizationToken operasi: Pengguna: arn:aws:iam:: account-id:user/ <user-name>tidak diizinkan untuk melakukan: ecr: on resource: * GetAuthorizationToken

Anda mungkin menerima kesalahan ini saat menjalankan aws ecr get-login-password jika Anda tidak memiliki izin yang memadai untuk mengakses repositori Amazon ECR. Untuk informasi lebih lanjut, lihat: Contoh Kebijakan Repositori Amazon ECR dan Mengakses Satu Repositori Amazon ECR di Panduan Pengguna Amazon ECR.

Kesalahan: Anda telah mencapai batas kecepatan tarik

Docker Hub membatasi jumlah permintaan tarik yang dapat dibuat oleh pengguna anonim dan Free Docker Hub. Jika Anda melebihi batas kecepatan tersebut untuk permintaan tarik pengguna anonim atau gratis, Anda akan menerima salah satu dari kesalahan berikut:

ERROR: toomanyrequests: Too Many Requests.
You have reached your pull rate limit.

Untuk mengatasi kesalahan ini, Anda dapat menunggu selama beberapa jam sebelum Anda mencoba permintaan tarik lain. Jika Anda berencana untuk secara konsisten mengirimkan sejumlah besar permintaan tarik, lihat situs web Docker Hub untuk informasi tentang batas kecepatan, dan opsi untuk mengautentikasi dan meningkatkan akun Docker Anda.

Debugging AWS IoT Greengrass di kontainer Docker

Untuk men-debug masalah dengan kontainer Docker, Anda dapat mempertahankan log waktu aktif Greengrass atau melampirkan shell interaktif pada kontainer Docker.

Pertahankan log Greengrass di luar kontainer Docker

Setelah Anda menghentikan AWS IoT Greengrass, Anda dapat menggunakan perintah docker cp berikut untuk menyalin log Greengrass dari kontainer Docker ke direktori log sementara.

docker cp container-id:/greengrass/v2/logs /tmp/logs

Untuk mempertahankan log bahkan setelah kontainer keluar atau dihapus, Anda harus menjalankan kontainer Docker AWS IoT Greengrass setelah mengikat-pasang direktori /greengrass/v2/logs.

Untuk melakukan ikat-pasang pada direktori /greengrass/v2/logs, lakukan salah satu hal berikut ini ketika Anda menjalankan kontainer Docker AWS IoT Greengrass.

  • Sertakan -v /tmp/logs:/greengrass/v2/logs:ro di perintah docker run.

    Ubah blok volumes dalam file Compose untuk menyertakan baris berikut sebelum Anda menjalankan perintah docker-compose up.

    volumes: - /tmp/logs:/greengrass/v2/logs:ro

Anda kemudian dapat memeriksa log Anda di /tmp/logs pada host Anda untuk melihat log Greengrass sementara AWS IoT Greengrass berjalan di dalam kontainer Docker.

Untuk informasi tentang menjalankan kontainer Docker Greengrass, lihat Jalankan AWS IoT Greengrass di Docker dengan penyediaan manual dan Jalankan AWS IoT Greengrass di Docker dengan penyediaan otomatis

Lampirkan shell interaktif ke kontainer Docker

Saat Anda menggunakan docker exec untuk menjalankan perintah di dalam kontainer Docker, perintah tersebut tidak tertangkap di log Docker. Pencatatan perintah Anda dalam log Docker dapat membantu Anda menyelidiki keadaan kontainer Docker Greengrass. Lakukan salah satu dari cara berikut:

  • Jalankan perintah berikut di terminal terpisah untuk melampirkan standar input, output, dan kesalahan terminal Anda ke kontainer yang sedang berjalan. Hal ini memungkinkan Anda untuk melihat dan mengontrol kontainer Docker dari terminal Anda saat ini.

    docker attach container-id
  • Jalankan perintah berikut pada terminal yang terpisah. Hal ini memungkinkan Anda untuk menjalankan perintah Anda dalam mode interaktif, bahkan jika kontainer tidak terlampir.

    docker exec -it container-id sh -c "command > /proc/1/fd/1"

Untuk pemecahan masalah AWS IoT Greengrass umum, lihat Pemecahan masalah AWS IoT Greengrass V2.