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.
Topik
Memecahkan masalah dengan menjalankan kontainer Docker
Gunakan informasi berikut untuk membantu menyelesaikan masalah dengan menjalankan AWS IoT Greengrass di kontainer Docker.
Topik
- Kesalahan: Tidak dapat melakukan login interaktif dari perangkat non TTY
- Kesalahan: Opsi tidak dikenal: - no-include-email
- Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.
- 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
- Kesalahan: Anda telah mencapai batas kecepatan tarik
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
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
.
/logs/greengrass/v2
Untuk melakukan ikat-pasang pada direktori
, lakukan salah satu hal berikut ini ketika Anda menjalankan kontainer Docker AWS IoT Greengrass.
/logs/greengrass/v2
-
Sertakan
-v
di perintah/tmp/logs
:
/logs:ro/greengrass/v2
docker run
.Ubah blok
volumes
dalam file Compose untuk menyertakan baris berikut sebelum Anda menjalankan perintahdocker-compose up
.volumes: -
/tmp/logs
:
/logs:ro/greengrass/v2
Anda kemudian dapat memeriksa log Anda di
pada host Anda untuk melihat log Greengrass sementara AWS IoT Greengrass berjalan di dalam kontainer Docker./tmp/logs
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.