Pemecahan masalah AWS IoT Greengrass dalam wadah Docker - AWS IoT Greengrass

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

Pemecahan masalah AWS IoT Greengrass dalam wadah Docker

Gunakan informasi berikut untuk membantu Anda memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker dan untuk men-debug masalah AWS IoT Greengrass di wadah Docker.

Memecahkan masalah dengan menjalankan kontainer Docker

Gunakan informasi berikut untuk membantu memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker.

Kesalahan: Tidak dapat melakukan login interaktif dari TTY non-perangkat

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

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

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah aws ecr get-login. Pastikan Anda telah menginstal AWS CLI versi terbaru (misalnya, Jalankan:pip install awscli --upgrade --user). Untuk informasi selengkapnya, lihat AWS Command Line Interface Menginstal Microsoft Windows di Panduan AWS Command Line Interface Pengguna.

Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.

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

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

Anda mungkin menerima kesalahan ini saat menjalankan aws ecr get-login-password perintah jika Anda tidak memiliki izin yang cukup untuk mengakses ECR repositori Amazon. Untuk informasi selengkapnya, lihat Contoh Kebijakan ECR Repositori Amazon dan Mengakses Satu ECR Repositori Amazon 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 dalam wadah 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 wadah, Anda dapat menggunakan docker cp perintah berikut untuk menyalin log Greengrass dari wadah Docker ke direktori log sementara.

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

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

Untuk mengikat /greengrass/v2/logs direktori, lakukan salah satu hal berikut saat Anda menjalankan wadah Docker baru 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 /tmp/logs di host Anda untuk melihat log Greengrass AWS IoT Greengrass saat berjalan di dalam wadah 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 hal berikut ini:

  • 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 AWS IoT Greengrass pemecahan masalah umum, lihat. Pemecahan masalah AWS IoT Greengrass V2