Pemecahan Masalah AWS IoT Greengrass V2 - 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 V2

Gunakan informasi pemecahan masalah dan solusi di bagian ini untuk membantu menyelesaikan masalah dengan AWS IoT Greengrass Version 2.

LihatAWS IoT GreengrassLog perangkat lunak dan komponen

KlasterAWS IoT GreengrassPerangkat lunak inti menulis log ke sistem file lokal yang dapat Anda gunakan untuk melihat informasi secara langsung tentang perangkat inti. Anda juga dapat mengkonfigurasi perangkat inti untuk menulis log ke CloudWatch Log, sehingga Anda dapat memecahkan masalah perangkat inti dari jarak jauh. Log ini dapat membantu Anda mengidentifikasi masalah dengan komponen, deployment, dan perangkat inti. Untuk informasi selengkapnya, lihat PemantauanAWS IoT Greengrasslog.

AWS IoT Greengrass Masalah perangkat lunak inti

Pecahkan masalahAWS IoT GreengrassMasalah perangkat lunak inti.

Topik

Tidak dapat mengatur perangkat inti

Jika Penginstal perangkat lunak inti AWS IoT Greengrass gagal dan Anda tidak dapat menyiapkan perangkat inti, Anda mungkin perlu mencopot pemasangan perangkat lunak dan coba lagi. Untuk informasi selengkapnya, lihat Hapus instalasi perangkat lunak inti AWS IoT Greengrass.

Tidak dapat memulaiAWS IoT GreengrassPerangkat lunak inti sebagai layanan sistem

JikaAWS IoT GreengrassPerangkat lunak inti gagal untuk memulai,periksa log layanan sistemuntuk mengidentifikasi masalah. Salah satu masalah umum adalah di mana Java tidak tersedia pada variabel lingkungan PATH (Linux) atau variabel sistem PATH (Windows).

Tidak dapat mengatur nukleus sebagai layanan sistem

Anda mungkin melihat kesalahan ini ketikaAWS IoT GreengrassPenginstal perangkat lunak inti gagal diaturAWS IoT Greengrasssebagai layanan sistem. Pada perangkat Linux, kesalahan ini biasanya terjadi jika perangkat inti tidak memilikisystemdsistem init. Installer berhasil dapat mengaturAWS IoT GreengrassPerangkat lunak inti bahkan jika gagal mengatur layanan sistem.

Lakukan salah satu dari berikut:

  • Konfigurasikan dan jalankanAWS IoT GreengrassPerangkat lunak inti sebagai layanan sistem. Anda harus mengonfigurasi perangkat lunak sebagai layanan sistem untuk menggunakan semua fiturAWS IoT Greengrass. Anda dapat menginstalsystemdatau menggunakan sistem init yang berbeda. Untuk informasi selengkapnya, lihat Konfigurasikan nukleus Greengrass sebagai layanan sistem.

  • JalankanAWS IoT GreengrassPerangkat lunak inti tanpa layanan sistem. Anda dapat menjalankan perangkat lunak menggunakan skrip loader yang dipasang installer di folder root Greengrass. Untuk informasi selengkapnya, lihat Jalankan perangkat lunak inti AWS IoT Greengrass tanpa layanan sistem.

Tidak dapat terhubung ke AWS IoT Core

Anda mungkin melihat kesalahan ini ketika perangkat lunak inti AWS IoT Greengrass tidak dapat terhubung ke AWS IoT Core untuk mengambil tugas deployment, misalnya. Lakukan hal berikut:

  • Periksa apakah perangkat inti Anda dapat terhubung ke internet dan AWS IoT Core. Untuk informasi selengkapnya tentang titik akhir AWS IoT Core yang tersambung ke perangkat Anda, lihat Konfigurasikan perangkat lunak inti AWS IoT Greengrass.

  • Periksa apakah objek AWS IoT perangkat inti Anda menggunakan sertifikat yang memungkinkan izin iot:Connect, iot:Publish, iot:Receive, dan iot:Subscribe.

  • Jika perangkat inti Anda menggunakan proksi jaringan, periksa apakah perangkat inti Anda memiliki peran perangkat dan apakah perannya memungkinkan izin iot:Connect, iot:Publish, iot:Receive, dan iot:Subscribe.

Kesalahan kehabisan memori

Kesalahan ini biasanya terjadi jika perangkat Anda tidak memiliki memori yang cukup untuk mengalokasikan objek di tumpukan Java. Pada perangkat dengan memori terbatas, Anda mungkin perlu menentukan ukuran tumpukan maksimum untuk mengontrol alokasi memori. Untuk informasi selengkapnya, lihat Kontrol alokasi memori dengan opsi JVM.

Tidak dapat menginstal Greengrass CLI

Anda mungkin melihat pesan konsol berikut ketika Anda menggunakan --deploy-dev-tools dalam perintah instalasi anda untuk inti AWS IoT Greengrass.

Thing group exists, it could have existing deployment and devices, hence NOT creating deployment for Greengrass first party dev tools, please manually create a deployment if you wish to

Hal ini terjadi ketika komponen Greengrass CLI tidak diinstal karena perangkat inti Anda adalah anggota dari grup objek yang memiliki deployment yang ada. Jika Anda melihat pesan ini, Anda dapat secara manual menyebarkan komponen Greengrass CLI (aws.greengrass.Cli) ke perangkat untuk menginstal Greengrass CLI. Untuk informasi selengkapnya, lihat Instal Greengrass CLI.

User root is not allowed to execute

Anda mungkin melihat kesalahan ini ketika pengguna yang menjalankan Perangkat lunak inti AWS IoT Greengrass (biasanya root) tidak memiliki izin untuk menjalankan sudo dengan pengguna dan grup apa pun. Untuk pengguna sistem ggc_user default, kesalahan ini terlihat seperti berikut:

Sorry, user root is not allowed to execute <command> as ggc_user:ggc_group.

Periksa bahwa file /etc/sudoers Anda memberikan izin pengguna untuk menjalankan sudo sebagai kelompok lain. Izin untuk pengguna di /etc/sudoers seharusnya terlihat seperti contoh berikut.

root ALL=(ALL:ALL) ALL

com.aws.greengrass.lifecyclemanager.GenericExternalService: Could not determine user/group to run with

Anda mungkin melihat kesalahan ini saat perangkat inti mencoba menjalankan komponen, dan inti Greengrass tidak menentukan pengguna sistem default yang akan digunakan untuk menjalankan komponen.

Untuk memperbaiki masalah ini, konfigurasikan nukleus Greengrass untuk menentukan pengguna sistem default yang menjalankan komponen. Untuk informasi selengkapnya, lihat Mengkonfigurasi pengguna yang menjalankan komponen dan Konfigurasikan default pengguna komponen.

Failed to map segment from shared object: operation not permitted

Anda mungkin melihat kesalahan ini ketikaAWS IoT GreengrassPerangkat lunak inti gagal untuk memulai karena/tmpfolder dipasang dengannoexecizin. KlasterAWSPustaka Runtime Umum (CRT)menggunakan/tmpfolder secara default.

Lakukan salah satu dari berikut:

  • Jalankan perintah berikut untuk remount/tmpfolder denganexecizin dan coba lagi.

    sudo mount -o remount,exec /tmp
  • Jika Anda menjalankan Greengrass nucleus v2.5.0 atau yang lebih baru, Anda dapat mengatur opsi JVM untuk mengubah folder yangAWSPerpustakaan CRT menggunakan. Anda dapat menentukanjvmOptionsparameter dalam konfigurasi komponen inti Greengrass dalam penyebaran atau saat Anda menginstalAWS IoT GreengrassPerangkat lunak inti. Ganti/jalan/ke/gunakandengan path ke folder yangAWSPustaka CRT dapat digunakan.

    { "jvmOptions": "-Daws.crt.lib.dir=\"/path/to/use\"" }

Gagal mengatur layanan Windows

Anda mungkin melihat kesalahan ini jika Anda menginstalAWS IoT GreengrassPerangkat lunak inti pada perangkat Microsoft Windows 2016. KlasterAWS IoT GreengrassPerangkat lunak inti tidak didukung pada Windows 2016, untuk daftar sistem operasi yang didukung, lihatPlatform yang didukung.

Jika Anda harus menggunakan Windows 2016, Anda dapat melakukan hal berikut:

  1. Buka filenyaAWS IoT GreengrassArsip instalasi inti

  2. DiGreengrassmembuka direktoribin/greengrass.xml.templateberkas.

  3. Tambahkan<autoRefresh>tag ke akhir file sebelum</service>Tanda.

    </log> <autoRefresh>false</autoRefresh> </service>

com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager

Anda mungkin melihat kesalahan ini ketika Anda menginstalAWS IoT GreengrassPerangkat lunak inti tanpa file otoritas sertifikasi akar (CA).

2022-06-05T10:00:39.556Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: service-loaded. {serviceName=DeploymentService} 2022-06-05T10:00:39.943Z [WARN] (main) com.aws.greengrass.componentmanager.ClientConfigurationUtils: configure-greengrass-mutual-auth. Error during configure greengrass client mutual auth. {} com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager

Periksa apakah Anda menentukan file CA root yang valid denganrootCaPathparameter dalam file konfigurasi yang Anda berikan kepada installer. Untuk informasi selengkapnya, lihat Instal perangkat lunak inti AWS IoT Greengrass.

com.aws.greengrass.deployment.IotJobsHelper: No connection available during subscribing to Iot Jobs descriptions topic. Will retry in sometime

Anda mungkin melihat pesan peringatan ini saat perangkat inti tidak dapat terhubungAWS IoT Coreuntuk berlangganan pemberitahuan pekerjaan penyebaran. Lakukan hal berikut:

  • Periksa bahwa perangkat inti terhubung ke internet dan dapat mencapaiAWS IoTendpoint data yang Anda konfigurasikan. Untuk informasi selengkapnya tentang titik akhir yang digunakan perangkat inti, lihatIzinkan lalu lintas perangkat melalui proxy atau firewall.

  • Periksa log Greengrass untuk kesalahan lain yang mengungkapkan akar penyebab lainnya.

software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid

Anda mungkin melihat kesalahan ini ketika AndaMenginstalAWS IoT GreengrassPerangkat lunak inti dengan penyediaan otomatis, dan installer menggunakanAWStoken sesi yang tidak valid. Lakukan hal berikut:

  • Jika Anda menggunakan kredensi keamanan sementara, periksa apakah token sesi sudah benar dan Anda menyalin dan menempelkan token sesi lengkap.

  • Jika Anda menggunakan kredensi keamanan jangka panjang, periksa apakah perangkat tidak memiliki token sesi sejak sebelumnya Anda menggunakan kredensi sementara. Lakukan hal berikut:

    1. Jalankan perintah berikut untuk mengatur variabel lingkungan token session.

      Linux or Unix
      unset AWS_SESSION_TOKEN
      Windows Command Prompt (CMD)
      set AWS_SESSION_TOKEN=
      PowerShell
      Remove-Item Env:\AWS_SESSION_TOKEN
    2. Periksa apakahAWSfile kredenensi,~/.aws/credentials, berisi token sesi,aws_session_token. Jika demikian, hapus baris itu dari file.

      aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

Anda juga dapat menginstalAWS IoT GreengrassPerangkat lunak inti tanpa menyediakanAWSkredenensi. Untuk informasi lebih lanjut, lihat Instal perangkat lunak inti AWS IoT Greengrass dengan penyediaan sumber daya manual atau PasangAWS IoT GreengrassPerangkat lunak inti denganAWS IoTpenyediaan armada.

software.amazon.awssdk.services.iot.model.IotException: User: <user> is not authorized to perform: iot:GetPolicy

Anda mungkin melihat kesalahan ini ketika AndaMenginstalAWS IoT GreengrassPerangkat lunak inti dengan penyediaan otomatis, dan installer menggunakanAWSkredenal yang tidak memiliki izin yang diperlukan. Untuk informasi selengkapnya tentang izin yang diperlukan, lihatKebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya.

Periksa izin untuk IAM identitas kredensial', dan berikan identitas IAM izin yang diperlukan yang hilang.

Error: com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request

Anda mungkin melihat kesalahan ini ketika Anda menggunakankomponen manajerkepadasinkronkan bayangan perangkat denganAWS IoT Core. Kode status HTTP 403 menunjukkan bahwa kesalahan ini terjadi karena perangkat intiAWS IoTkebijakan tidak memberikan izin untuk meneleponGetThingShadow.

com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request. {thing name=MyGreengrassCore, shadow name=MyShadow} 2021-07-14T21:09:02.456Z [ERROR] (pool-2-thread-109) com.aws.greengrass.shadowmanager.sync.SyncHandler: sync. Skipping sync request. {thing name=MyGreengrassCore, shadow name=MyShadow} com.aws.greengrass.shadowmanager.exception.SkipSyncRequestException: software.amazon.awssdk.services.iotdataplane.model.IotDataPlaneException: null (Service: IotDataPlane, Status Code: 403, Request ID: f6e713ba-1b01-414c-7b78-5beb3f3ad8f6, Extended Request ID: null)

Untuk menyinkronkan bayangan lokal denganAWS IoT Core, perangkat intiAWS IoTkebijakan harus memberikan izin berikut:

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

Periksa perangkat intiAWS IoTkebijakan, dan tambahkan izin yang diperlukan yang hilang. Untuk informasi selengkapnya, lihat yang berikut:

Operation aws.greengrass#<operation> is not supported by Greengrass

Anda mungkin melihat kesalahan ini ketika Anda menggunakanoperasi komunikasi antar proses (IPC)dalam komponen Greengrass kustom, dan yang diperlukanAWSKomponen yang disediakan tidak diinstal pada perangkat inti.

Untuk mengatasi masalah ini, tambahkan komponen yang diperlukan sebagaidependensi dalam resep komponen Anda, jadiAWS IoT GreengrassPerangkat lunak inti menginstal komponen yang diperlukan saat Anda menerapkan komponen Anda.

java.io.FileNotFoundException: <stream-manager-store-root-dir>/stream_manager_metadata_store (Permission denied)

Anda mungkin melihat kesalahan ini di file log pengelola aliran (aws.greengrass.StreamManager.log) ketika Anda mengkonfigurasipengelola pengaliranuntuk menggunakan folder root yang tidak ada atau memiliki izin yang benar. Untuk informasi selengkapnya tentang cara mengonfigurasi folder ini, lihatkonfigurasi pengelola pengaliran.

com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist

Kesalahan ini terjadi saatKomponen penyedia PKCS #11tidak dapat menemukan atau memuat kunci privat atau sertifikat yang Anda tentukan saat mengonfigurasiAWS IoT GreengrassPerangkat lunak inti untuk menggunakanmodul keamanan perangkat keras (HSM). Lakukan hal berikut:

  • Periksa apakah kunci pribadi dan sertifikat disimpan di HSM menggunakan slot, PIN pengguna, dan label objek yang Anda konfigurasikanAWS IoT GreengrassPerangkat lunak inti untuk digunakan.

  • Periksa apakah kunci pribadi dan sertifikat menggunakan label objek yang sama di HSM.

  • Jika HSM Anda mendukung ID objek, periksa apakah kunci privat dan sertifikat menggunakan ID objek yang sama di HSM.

Periksa dokumentasi untuk HSM Anda untuk mempelajari cara menanyakan detail tentang token keamanan di HSM. Jika Anda perlu mengubah slot, label objek, atau ID objek untuk token keamanan, periksa dokumentasi untuk HSM Anda untuk mempelajari cara melakukannya.

software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn>

Kesalahan ini dapat terjadi ketika Anda menggunakan komponen secret manager untuk menyebarkan AWS Secrets Manager rahasia. Jika IAM role pertukaran token perangkat inti tidak memberikan izin untuk mendapatkan rahasia, deployment itu gagal dan log Greengrass mencakup kesalahan ini.

Untuk mengotorisasi perangkat inti untuk mengunduh rahasia

  1. Tambahkan izin secretsmanager:GetSecretValue ke peran pertukaran token perangkat inti. Contoh pernyataan kebijakan berikut memberikan izin untuk mendapatkan nilai rahasia.

    { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef" ] }

    Untuk informasi selengkapnya, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan.

  2. Terapkan kembali deployment ke perangkat inti. Lakukan salah satu dari berikut:

    • Revisi deployment tanpa perubahan apa pun. Perangkat inti mencoba untuk mengunduh rahasia lagi ketika menerima deployment yang direvisi. Untuk informasi selengkapnya, lihat Revisi deployment.

    • Mulai ulang perangkat lunak inti AWS IoT Greengrass untuk mencoba lagi deployment. Untuk informasi selengkapnya, lihatJalankan perangkat lunak inti AWS IoT Greengrass

    Deployment berhasil jika secret manager berhasil mengunduh rahasia tersebut.

software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: Access to KMS is not allowed

Kesalahan ini dapat terjadi ketika Anda menggunakankomponen manajer rahasiauntuk men-deployAWS Secrets Managerrahasia yang dienkripsi olehAWS Key Management Servicekunci. Jika perangkat intiperan pertukaran token IAMtidak memberikan izin untuk mendekripsi rahasia, deployment itu gagal dan log Greengrass mencakup kesalahan ini.

Untuk memperbaiki masalah, tambahkankms:Decryptizin untuk peran pertukaran token perangkat inti. Untuk informasi selengkapnya, lihat yang berikut:

java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi

Anda mungkin melihat kesalahan ini ketika Anda mencoba untuk menginstalAWS IoT GreengrassPerangkat lunak inti dengankeamanan perangkat kerasdan Anda menggunakan versi nukleus Greengrass sebelumnya yang tidak mendukung integrasi keamanan perangkat keras. Untuk menggunakan integrasi keamanan perangkat keras, Anda harus menggunakan Greengrass nucleus v2.5.3 atau yang lebih baru.

AWS IoT Greengrass masalah cloud

Gunakan informasi berikut untuk memecahkan masalah dengan konsol AWS IoT Greengrass dan API. Setiap entri sesuai dengan pesan kesalahan yang mungkin Anda lihat ketika Anda melakukan tindakan.

An error occurred (AccessDeniedException) when calling the CreateComponentVersion operation: User: arn:aws:iam::123456789012:user/<username> is not authorized to perform: null

Anda mungkin melihat kesalahan ini ketika Anda membuat versi komponen dariAWS IoT Greengrasskonsol atau denganCreateComponentVersionoperasi.

Kesalahan ini menunjukkan bahwa resep Anda bukan JSON atau YAML yang valid. Periksa sintaks resep Anda, perbaiki masalah sintaks, dan coba lagi. Anda dapat menggunakan pemeriksa sintaks JSON atau YAML online untuk mengidentifikasi masalah sintaks dalam resep Anda.

Invalid Input: Encountered following errors in Artifacts: {<s3ArtifactUri> = Specified artifact resource cannot be accessed}

Anda mungkin melihat kesalahan ini ketika Anda membuat versi komponen dariAWS IoT Greengrasskonsol atau denganCreateComponentVersionoperasi. Kesalahan ini menunjukkan bahwa artefak S3 dalam resep komponen tidak valid.

Lakukan hal berikut:

  • Periksa apakah bucket S3 samaWilayah AWSdi mana Anda membuat komponen.AWS IoT Greengrasstidak mendukung permintaan lintas wilayah untuk artefak komponen.

  • Periksa apakah URI artefak adalah URL objek S3 yang valid, dan periksa artefak yang ada di URL objek S3 itu.

  • Periksa bahwaAkun AWSmemiliki izin untuk mengakses artefak di URL objek S3-nya.

Masalah deployment perangkat inti

Pecahkan masalah penyebaran pada perangkat inti Greengrass. Setiap entri sesuai dengan pesan log yang mungkin Anda lihat di perangkat inti Anda.

Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact

Anda mungkin melihat kesalahan ini ketika perangkat lunak inti AWS IoT Greengrass gagal untuk mengunduh artefak komponen ketika perangkat inti menerapkan deployment. Deployment gagal sebagai akibat dari kesalahan ini.

Ketika Anda menerima kesalahan ini, log juga mencakup jejak tumpukan yang dapat Anda gunakan untuk mengidentifikasi masalah tertentu. Masing-masing entri berikut sesuai dengan pesan yang mungkin Anda lihat di jejak tumpukan pesan kesalahan Failed to download artifact.

software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: null, ...)

KlasterPackageDownloadException kesalahanmungkin termasuk jejak tumpukan ini dalam kasus berikut:

  • Artefak komponen tidak tersedia di URL objek S3 yang Anda tentukan dalam resep komponen. Periksa bahwa Anda telah mengunggah artefak ke bucket S3 dan bahwa URI artefak cocok dengan URL objek S3 artefak di bucket.

  • Perangkat intiperan pertukaran tokentidak mengizinkanAWS IoT GreengrassPerangkat lunak inti untuk mengunduh artefak komponen dari URL objek S3 yang Anda tentukan dalam resep komponen. Periksa apakah peran pertukaran token memungkinkans3:GetObjectuntuk URL objek S3 di mana artefak tersedia.

software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: <requestID>

KlasterPackageDownloadException kesalahanmungkin mencakup jejak tumpukan ini ketika perangkat inti tidak memiliki izin untuk menelepons3:GetBucketLocation. Pesan kesalahan juga menyertakan pesan berikut.

reason: Failed to determine S3 bucket location

Periksa apakah perangkat intiperan pertukaran tokenmemungkinkans3:GetBucketLocationuntuk bucket S3 di mana artefak tersedia.

Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.

Anda mungkin melihat kesalahan ini ketika perangkat lunak inti AWS IoT Greengrass gagal untuk mengunduh artefak komponen ketika perangkat inti menerapkan deployment. Deployment gagal karena checksum file artefak yang diunduh tidak cocok dengan checksum yang dihitung oleh AWS IoT Greengrass saat Anda membuat komponen.

Lakukan hal berikut:

  • Periksa apakah file artefak berubah dalam bucket S3 tempat Anda meng-hosting-nya. Jika file berubah sejak Anda membuat komponen, pulihkan ke versi sebelumnya yang diharapkan perangkat inti. Jika Anda tidak dapat memulihkan file ke versi sebelumnya, atau jika Anda ingin menggunakan versi baru dari file itu, buat versi baru dari komponen dengan file artefak.

  • Periksa koneksi internet perangkat inti Anda. Kesalahan ini dapat terjadi jika file artefak rusak saat mengunduh. Buat deployment baru dan coba lagi.

Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>

Anda mungkin melihat kesalahan ini bila perangkat inti tidak dapat menemukan versi komponen yang memenuhi persyaratan penyebaran untuk perangkat inti tersebut. Perangkat inti memeriksa komponen di layanan AWS IoT Greengrass dan pada perangkat lokal. Pesan kesalahan mencakup target setiap penyebaran dan persyaratan versi penyebaran untuk komponen. Target deployment dapat berupa objek, grup objek, atau LOCAL_DEPLOYMENT, yang mewakili deployment lokal pada perangkat inti.

Masalah ini dapat terjadi pada kasus berikut:

  • Perangkat inti adalah target dari beberapa penyebaran yang memiliki persyaratan versi komponen yang bertentangan. Sebagai contoh, perangkat inti tersebut mungkin menjadi target dari beberapa deployment yang mencakup komponen com.example.HelloWorld, di mana satu deployment memerlukan versi 1.0.0 dan yang lain memerlukan versi 1.0.1. Tidak mungkin memiliki komponen yang memenuhi kedua persyaratan tersebut, sehingga deployment itu gagal.

  • Versi komponen tidak ada di layanan AWS IoT Greengrass atau di perangkat lokal. Komponen mungkin telah dihapus, misalnya.

  • Ada versi komponen yang memenuhi persyaratan versi, tetapi tidak ada yang kompatibel dengan platform perangkat inti.

  • Perangkat intiAWS IoTkebijakan tidak memberikangreengrass:ResolveComponentCandidatesizin. CarilahStatus Code: 403dalam log kesalahan untuk mengidentifikasi masalah ini. Untuk mengatasi masalah ini, tambahkan izin greengrass:ResolveComponentCandidates ke kebijakan perangkat inti AWS IoT. Untuk informasi selengkapnya, lihat Kebijakan AWS IoT minimal untuk perangkat inti AWS IoT Greengrass V2.

Untuk mengatasi masalah ini, revisi penyebaran dengan menyertakan versi komponen yang kompatibel atau hapus yang tidak kompatibel. Untuk informasi selengkapnya tentang cara merevisi penyebaran cloud, lihat Revisi deployment. Untuk informasi selengkapnya tentang cara merevisi deployment lokal, lihat perintah AWS IoT GreengrassBuat CLI deployment.

software.amazon.awssdk.services.greengrassv2data.model.ResourceNotFoundException: The latest version of Component <componentName> doesn't claim platform <coreDevicePlatform> compatibility

Anda mungkin melihat kesalahan ini saat Anda menerapkan komponen ke perangkat inti, dan komponen tidak mencantumkan platform yang kompatibel dengan platform perangkat inti. Lakukan salah satu dari berikut:

  • Jika komponen adalah komponen Greengrass kustom, Anda dapat memperbarui komponen agar kompatibel dengan perangkat inti. Tambahkan manifes baru yang cocok dengan platform perangkat inti, atau perbarui manifes yang ada agar sesuai dengan platform perangkat inti. Untuk informasi selengkapnya, lihat Referensi resep komponen AWS IoT Greengrass.

  • Jika komponen disediakan olehAWS, periksa apakah versi lain dari komponen kompatibel dengan perangkat inti. Jika tidak ada versi yang kompatibel, hubungi kami diAWS re:PostmenggunakanAWS IoT Greengrassmenandai, atau kontakAWS Support.

com.aws.greengrass.componentmanager.exceptions.PackagingException: The deployment attempts to update the nucleus from aws.greengrass.Nucleus-<version> to aws.greengrass.Nucleus-<version> but no component of type nucleus was included as target component

Anda mungkin melihat kesalahan ini ketika Anda menyebarkan komponen yang bergantung padaInti Greengrass, dan perangkat inti menjalankan versi nukleus Greengrass sebelumnya daripada versi minor terbaru yang tersedia. Kesalahan ini terjadi karenaAWS IoT GreengrassPerangkat lunak inti mencoba memperbarui komponen secara otomatis ke versi terbaru yang kompatibel. Namun,AWS IoT GreengrassPerangkat lunak inti mencegah inti Greengrass memperbarui ke versi minor baru, karena beberapaAWSKomponen yang disediakan bergantung pada versi minor spesifik dari inti Greengrass. Untuk informasi selengkapnya, lihat Perilaku pembaruan inti Greengrass.

Anda harusmerevisi penyebaranuntuk menentukan versi nukleus Greengrass yang ingin Anda gunakan. Lakukan salah satu dari berikut:

  • Merevisi penyebaran untuk menentukan versi nukleus Greengrass yang saat ini dijalankan perangkat inti.

  • Merevisi deployment untuk menentukan versi minor selanjutnya dari inti Greengrass. Jika Anda memilih opsi ini, Anda juga harus memperbarui versi semuaAWSkomponen yang disediakan yang bergantung pada versi minor spesifik dari inti Greengrass. Untuk informasi selengkapnya, lihat Komponen yang disediakan oleh AWS.

Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration

Anda mungkin melihat kesalahan ini ketika perangkat inti menerima dokumen deployment yang besar, yang merupakan dokumen deployment yang lebih besar dari 7 KB (untuk deployment yang menargetkan objek) atau 31 KB (untuk deployment yang menargetkan grup objek). Untuk mengambil dokumen deployment yang besar, kebijakan perangkat inti AWS IoT harus memberikan izin greengrass:GetDeploymentConfiguration. Kesalahan ini dapat terjadi ketika perangkat inti tidak memiliki izin ini. Ketika kesalahan ini terjadi, deployment tersebut mencoba ulang tanpa batas waktu, dan statusnya Dalam proses (IN_PROGRESS).

Untuk mengatasi masalah ini, tambahkan izin greengrass:GetDeploymentConfiguration ke kebijakan perangkat inti AWS IoT. Untuk informasi selengkapnya, lihat Memperbarui AWS IoT kebijakan perangkat inti.

Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy

Anda mungkin melihat peringatan ini saat perangkat inti menerima penerapan dan perangkat intiAWS IoTkebijakan tidak mengizinkangreengrass:ListThingGroupsForCoreDeviceizin. Saat Anda membuat penyebaran, perangkat inti menggunakan izin ini untuk mengidentifikasi grup halnya dan menghapus komponen untuk grup apa pun tempat Anda menghapus perangkat inti. Jika perangkat inti berjalanInti Greengrassv2.5.0, deployment gagal. Jika perangkat inti menjalankan Greengrass nucleus v2.5.1 atau yang lebih baru, penyebaran akan berlangsung tetapi tidak menghapus komponen. Untuk informasi selengkapnya tentang perilaku penghapusan grup hal, lihatDeploy komponen AWS IoT Greengrass ke perangkat.

Untuk memperbarui perilaku perangkat inti untuk menghapus komponen untuk grup hal tempat Anda menghapus perangkat inti, tambahkangreengrass:ListThingGroupsForCoreDeviceizin ke perangkat intiAWS IoTkebijakan. Untuk informasi selengkapnya, lihat Memperbarui AWS IoT kebijakan perangkat inti.

Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration

Anda mungkin melihat pesan informasi ini dicetak beberapa kali tanpa kesalahan, karena perangkat inti mencatat kesalahan di tingkat log DEBUG. Masalah ini dapat terjadi ketika perangkat inti menerima dokumen deployment yang besar. Ketika kesalahan ini terjadi, deployment ini mencoba ulang tanpa batas waktu, dan statusnya Dalam proses (IN_PROGRESS). Untuk informasi selengkapnya tentang cara mengatasi masalah ini, lihat entri pemecahan masalah ini.

Masalah komponen perangkat inti

Memecahkan masalah komponen Greengrass pada perangkat inti.

Warn: '<command>' is not recognized as an internal or external command

Anda mungkin melihat kesalahan ini di log komponen Greengrass ketikaAWS IoT GreengrassPerangkat lunak inti gagal menjalankan perintah dalam skrip siklus hidup komponen. Negara komponen menjadiBROKENsebagai akibat dari kesalahan ini. Kesalahan ini dapat terjadi jika pengguna sistem yang menjalankan komponen, sepertiggc_user, tidak dapat menemukan perintah yang dapat dieksekusi di folder diJALAN.

Pada perangkat Windows, periksa apakah folder yang berisi executable ada diPATHuntuk pengguna sistem yang menjalankan komponen. Jika hilang dariPATH, lakukan salah satu hal berikut:

  • Tambahkan folder executable kePATHvariabel sistem, yang tersedia untuk semua pengguna. Kemudian, restart komponen.

    Jika Anda menjalankan Greengrass nucleus 2.5.0, setelah Anda memperbaruiPATHvariabel sistem, Anda harus me-restartAWS IoT GreengrassPerangkat lunak inti untuk menjalankan komponen dengan yang diperbaruiPATH. JikaAWS IoT GreengrassPerangkat lunak inti tidak menggunakan yang diperbaruiPATHsetelah Anda me-restart perangkat lunak, mulai ulang perangkat dan coba lagi. Untuk informasi selengkapnya, lihat Jalankan perangkat lunak inti AWS IoT Greengrass.

  • Tambahkan folder executable kePATHvariabel pengguna untuk pengguna sistem yang menjalankan komponen.

Skrip Python tidak mencatat pesan

Perangkat inti Greengrass mengumpulkan log yang dapat Anda gunakan untuk mengidentifikasi masalah dengan komponen. Jika pesan stdout dan stderr skrip Python Anda tidak muncul di log komponen Anda, Anda mungkin perlu menyiram buffer atau menonaktifkan buffer untuk stream output standar ini di Python. Lakukan langkah-langkah berikut:

  • Jalankan Python dengan -u untuk menonaktifkan buffering pada stdout dan stderr.

    Linux or Unix
    python3 -u hello_world.py
    Windows
    py -3 -u hello_world.py
  • Gunakan Setenv dalam resep komponen Anda untuk mengatur variabel lingkungan PYTHONUNBUFFERED pada string tak kosong. Variabel lingkungan ini menonaktifkan buffering pada stdout dan stderr.

  • Siram buffer untuk pengaliran stdout atau stderr. Lakukan salah satu dari berikut:

    • Siram pesan ketika Anda mencetak.

      import sys print('Hello, error!', file=sys.stderr, flush=True)
    • Siram pesan setelah Anda mencetak. Anda dapat mengirim beberapa pesan sebelum Anda menyiram stream.

      import sys print('Hello, error!', file=sys.stderr) sys.stderr.flush()

Untuk informasi selengkapnya tentang cara memverifikasi bahwa skrip Python mengeluarkan pesan log, lihat PemantauanAWS IoT Greengrasslog.

Konfigurasi komponen tidak diperbarui saat mengubah konfigurasi default

Ketika Anda mengubahDefaultConfigurationdalam resep komponen, konfigurasi default baru tidak akan menggantikan konfigurasi komponen yang ada selama penyebaran. Untuk menerapkan konfigurasi default baru, Anda harus mengatur ulang konfigurasi komponen ke pengaturan defaultnya. Saat Anda menyebarkan komponen, tentukan string kosong tunggal sebagaiPembaruan pembaruan.

Console
Pengaturan ulang jalur
[""]
AWS CLI

Perintah berikut membuat penyebaran ke perangkat inti.

aws greengrassv2 create-deployment --cli-input-json file://reset-configuration-deployment.json

Klasterreset-configuration-deployment.jsonfile berisi dokumen JSON berikut.

{ "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "deploymentName": "Deployment for MyGreengrassCore", "components": { "com.example.HelloWorld": { "componentVersion": "1.0.0", "configurationUpdate": {, "reset": [""] } } } }
Greengrass CLI

Berikut iniGreengrass CLIperintah menciptakan penyebaran lokal pada perangkat inti.

sudo greengrass-cli deployment create \ --recipeDir recipes \ --artifactDir artifacts \ --merge "com.example.HelloWorld=1.0.0" \ --update-config reset-configuration-deployment.json

Klasterreset-configuration-deployment.jsonfile berisi dokumen JSON berikut.

{ "com.example.HelloWorld": { "RESET": [""] } }

awsiot.greengrasscoreipc.model.UnauthorizedError

Anda mungkin melihat kesalahan ini di log komponen Greengrass ketika komponen tidak memiliki izin untuk melakukan operasi IPC pada sumber daya. Untuk memberikan izin komponen untuk memanggil operasi IPC, tentukan kebijakan otorisasi IPC dalam konfigurasi komponen. Untuk informasi selengkapnya, lihat Otorisasi komponen untuk melakukan operasi IPC.

Tip

Jika Anda mengubahDefaultConfigurationdalam resep komponen, Anda harus mengatur ulang konfigurasi komponen ke konfigurasi default barunya. Saat Anda menyebarkan komponen, tentukan string kosong tunggal sebagaiPembaruan pembaruan. Untuk informasi selengkapnya, lihat Konfigurasi komponen tidak diperbarui saat mengubah konfigurasi default.

com.aws.greengrass.authorization.exceptions.AuthorizationException: Duplicate policy ID "<id>" for principal "<componentList>"

Anda mungkin melihat kesalahan ini jika beberapa kebijakan otorisasi IPC, termasuk di semua komponen pada perangkat inti, menggunakan ID kebijakan yang sama.

Periksa kebijakan otorisasi IPC komponen Anda, perbaiki duplikat, dan coba lagi. Untuk membuat ID kebijakan yang unik, sebaiknya Anda menggabungkan nama komponen, nama layanan IPC, dan counter. Untuk informasi selengkapnya, lihat Otorisasi komponen untuk melakukan operasi IPC.

Tip

Jika Anda mengubahDefaultConfigurationdalam resep komponen, Anda harus mengatur ulang konfigurasi komponen ke konfigurasi default barunya. Saat Anda menyebarkan komponen, tentukan string kosong tunggal sebagaiPembaruan pembaruan. Untuk informasi selengkapnya, lihat Konfigurasi komponen tidak diperbarui saat mengubah konfigurasi default.

com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 400)

Anda mungkin melihat kesalahan ini ketika perangkat inti tidak bisa mendapatkanAWSkredensi darilayanan pertukaran token. Kode status HTTP 400 menunjukkan bahwa kesalahan ini terjadi karena perangkat intiperan pertukaran token IAMtidak ada atau tidak memiliki hubungan kepercayaan yang memungkinkanAWS IoTpenyedia kredensil untuk mengasumsikan itu.

Lakukan hal berikut:

  1. Identifikasi peran pertukaran token yang digunakan perangkat inti. Pesan galat mencakup perangkat intiAWS IoTalias peran, yang menunjuk ke peran pertukaran token. Jalankan perintah berikut di komputer pengembangan Anda, dan gantiMyGreengrassCoreTokenExchangeRoleAliasdengan namaAWS IoTalias peran dari pesan kesalahan.

    aws iot describe-role-alias --role-alias MyGreengrassCoreTokenExchangeRoleAlias

    Respons yang muncul meliputi Amazon Resource Name (ARN) dari IAM role pertukaran token token.

    { "roleAliasDescription": { "roleAlias": "MyGreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/MyGreengrassCoreTokenExchangeRoleAlias", "roleArn": "arn:aws:iam::123456789012:role/MyGreengrassV2TokenExchangeRole", "owner": "123456789012", "credentialDurationSeconds": 3600, "creationDate": "2021-02-05T16:46:18.042000-08:00", "lastModifiedDate": "2021-02-05T16:46:18.042000-08:00" } }
  2. Periksa apakah peran itu ada. Jalankan perintah berikut, dan gantiMyGreengrassV2TokenExchangeRoledengan nama peran pertukaran token.

    aws iam get-role --role-name MyGreengrassV2TokenExchangeRole

    Jika perintah mengembalikanNoSuchEntitykesalahan, peran tidak ada, dan Anda harus membuatnya. Untuk informasi selengkapnya tentang cara membuat dan mengonfigurasi peran ini, lihatOtorisasi perangkat inti untuk berinteraksi dengan AWS layanan.

  3. Periksa apakah peran memiliki hubungan kepercayaan yang memungkinkanAWS IoTpenyedia kredensil untuk mengasumsikan itu. Respons dari langkah sebelumnya berisiAssumeRolePolicyDocument, yang mendefinisikan hubungan kepercayaan peran. Peran harus menentukan hubungan kepercayaan yang memungkinkancredentials.iot.amazonaws.comuntuk mengasumsikan itu. Dokumen ini akan terlihat serupa dengan contoh berikut.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Jika hubungan kepercayaan peran tidak memungkinkancredentials.iot.amazonaws.comuntuk mengasumsikan hal itu, Anda harus menambahkan hubungan kepercayaan ini untuk peran. Untuk informasi selengkapnya, lihatMengubah perandi dalamAWS Identity and Access ManagementPanduan Pengguna.

com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 403)

Anda mungkin melihat kesalahan ini ketika perangkat inti tidak bisa mendapatkanAWSkredensi darilayanan pertukaran token. Kode status HTTP 403 menunjukkan bahwa kesalahan ini terjadi karena perangkat intiAWS IoTkebijakan tidak memberikaniot:AssumeRoleWithCertificateizin untuk perangkat intiAWS IoTAlias peran.

Tinjau perangkat intiAWS IoTkebijakan, dan menambahkaniot:AssumeRoleWithCertificateizin untuk perangkat intiAWS IoTAlias peran. Pesan galat mencakup arus perangkat intiAWS IoTAlias peran. Untuk informasi selengkapnya tentang izin ini dan cara memperbarui perangkat intiAWS IoTkebijakan, lihatKebijakan AWS IoT minimal untuk perangkat inti AWS IoT Greengrass V2danMemperbarui AWS IoT kebijakan perangkat inti.

Received error when attempting to retrieve ECS metadata: Could not connect to the endpoint URL: "<tokenExchangeServiceEndpoint>"

Anda mungkin melihat kesalahan ini ketika komponen tidak menjalankanlayanan pertukaran tokendan komponen mencoba memintaAWSkredenensi.

Lakukan hal berikut:

  • Periksa apakah komponen menyatakan ketergantungan pada komponen layanan pertukaran token,aws.greengrass.TokenExchangeService. Jika tidak, tambahkan dependensi, dan deploy ulang komponen.

  • Periksa apakah komponen menggunakanAWSkredenensi diinstallSiklus hidup.AWS IoT Greengrasstidak menjamin bahwa layanan pertukaran token tersedia selamainstallSiklus hidup. Perbarui komponen untuk memindahkan kode yang menggunakanAWSkredensi kestartupataurunsiklus hidup, dan redeploy komponen.

copyFrom: <configurationPath> is already a container, not a leaf

Anda mungkin melihat kesalahan ini saat mengubah nilai konfigurasi dari tipe kontainer (daftar atau objek) ke tipe non-kontainer (string, angka, atau Boolean). Lakukan hal berikut:

  1. Periksa resep komponen untuk melihat apakah konfigurasi defaultnya menetapkan nilai konfigurasi itu ke daftar atau objek. Jika demikian, hapus atau ubah nilai konfigurasi tersebut.

  2. Buat penyebaran untuk mengatur ulang nilai konfigurasi tersebut ke nilai defaultnya. Untuk informasi selengkapnya, lihat Buat deployment dan Perbarui konfigurasi komponen.

Kemudian, Anda dapat mengatur bahwa nilai konfigurasi untuk string, nomor, atau Boolean.

com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.'

Anda mungkin melihat kesalahan ini di catatan nukleus Greengrass saatKomponen manajer aplikasimencoba mengunduh gambar Docker dari repositori pribadi di Amazon Elastic Container Registry (Amazon ECR). Kesalahan ini terjadi jika Anda menggunakanwincred Pembantu kredensi(docker-credential-wincred). Akibatnya, Amazon ECR tidak dapat menyimpan kredensi login.

Ambil salah satu tindakan berikut:

  • Jika Anda tidak menggunakanwincredDocker credential helper, hapusdocker-credential-wincredprogram dari perangkat inti.

  • Jika Anda menggunakanwincredPembantu kredenal Docker, lakukan hal berikut:

    1. Mengubah Namadocker-credential-wincredpada perangkat inti. Gantiwincreddengan nama baru untuk penolong kredensi Windows Docker. Misalnya, Anda dapat mengganti namanya menjadidocker-credential-wincredreal.

    2. PerbaruicredsStoreopsi dalam file konfigurasi Docker (.docker/config.json) untuk menggunakan nama baru untuk Windows Docker credential helper. Misalnya, jika Anda mengganti nama program menjadidocker-credential-wincredreal, perbaruicredsStoreopsi untukwincredreal.

      { "credsStore": "wincredreal" }

java.io.IOException: Cannot run program "cmd" ...: [LogonUser] The password for this account has expired.

Anda mungkin melihat kesalahan ini pada perangkat inti Windows saat pengguna sistem yang menjalankan proses komponen, sepertiggc_user, memiliki kata sandi kedaluwarsa. Hasilnya,AWS IoT GreengrassPerangkat lunak inti tidak dapat menjalankan proses komponen sebagai pengguna sistem itu.

Untuk memperbarui sandi pengguna sistem Greengrass

  1. Jalankan perintah berikut ini sebagai administrator untuk mengatur kata sandi pengguna. Gantiggc_userdengan pengguna sistem, dan gantikata sandidengan kata sandi untuk mengatur.

    net user ggc_user password
  2. GunakanPsExec utilitasuntuk menyimpan kata sandi baru pengguna dalam contoh Manajer Kredensi untuk LocalSystem akun. Gantikata sandidengan kata sandi pengguna yang Anda tetapkan.

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
Tip

Tergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa future. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.

  • Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.

    net user ggc_user | findstr /C:expires
  • Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.

    wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False

aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant

Saat Anda memutakhirkan stream manager v2.0.7 ke versi antara v2.0.8 dan v2.0.11, Anda mungkin melihat kesalahan berikut di log komponen pengelola aliran jika komponen gagal dimulai.

2021-07-16T00:54:58.568Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: com.fasterxml.jackson.databind.JsonMappingException: Instant exceeds minimum or maximum instant (through reference chain: com.amazonaws.iot.greengrass.streammanager.export.PersistedSuccessExportStatesV1["lastExportTime"]). {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING} 2021-07-16T00:54:58.579Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: java.time.DateTimeException: Instant exceeds minimum or maximum instant. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}

Jika Anda menggunakan stream manager v2.0.7 dan ingin meningkatkan ke versi yang lebih baru, Anda harus meningkatkan ke stream manager v2.0.12 secara langsung. Untuk informasi selengkapnya tentang komponen pengelola aliran, lihatManajer pengaliran.

Masalah komponen fungsi Lambda perangkat inti

Pecahkan masalah komponen fungsi Lambda pada perangkat inti.

The following cgroup subsystems are not mounted: devices, memory

Anda mungkin melihat kesalahan ini saat menjalankan fungsi Lambda dalam peti kemas dalam kasus berikut:

  • Perangkat inti tidak mengaktifkan cgroup v1 untuk memori atau cgroup perangkat.

  • Perangkat inti memiliki cgroups v2 diaktifkan. Fungsi Greengrass Lambda membutuhkan cgroup v1, dan cgroup v1 dan v2 saling eksklusif.

Untuk mengaktifkan cgroups v1, boot perangkat dengan parameter kernel Linux berikut.

cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
Tip

Pada Raspberry Pi, edit/boot/cmdline.txtfile untuk mengatur parameter kernel perangkat.

ipc_client.py:64,HTTP Error 400:Bad Request, b'No subscription exists for the source <label-or-lambda-arn> and subject <label-or-lambda-arn>

Anda mungkin melihat kesalahan ini saat menjalankan fungsi V1 Lambda, yang menggunakanAWS IoT GreengrassCore SDK, pada perangkat inti V2 tanpa menentukan langganan dikomponen router langganan. Untuk memperbaiki masalah ini, gunakan dan konfigurasikan router langganan lama untuk menentukan langganan yang diperlukan. Untuk informasi selengkapnya, lihat Impor fungsi Lambda V1.

Masalah antarmuka Baris Perintah Greengrass

Memecahkan masalah denganGreengrass CLI.

java.lang.RuntimeException: Unable to create ipc client

Anda mungkin melihat kesalahan ini ketika Anda menjalankan perintah Greengrass CLI dan Anda menentukan folder root yang berbeda dari manaAWS IoT GreengrassPerangkat lunak inti diinstal.

Lakukan salah satu dari berikut ini untuk mengatur jalur root, dan ganti/greengrass/v2dengan jalan menujuAWS IoT GreengrassInstalasi perangkat lunak inti:

  • Atur GGC_ROOT_PATH variabel lingkungan ke /greengrass/v2.

  • Tambahkan--ggcRootPath /greengrass/v2argumen untuk perintah Anda seperti yang ditunjukkan pada contoh berikut.

    greengrass-cli --ggcRootPath /greengrass/v2 <command> <subcommand> [arguments]

AWS Command Line Interfacemasalah

Pecahkan masalahAWS CLImasalah untukAWS IoT Greengrass V2.

Error: Invalid choice: 'greengrassv2'

Anda mungkin melihat kesalahan ini ketika Anda menjalankanAWS IoT Greengrass V2perintah denganAWS CLI(Misalnya,aws greengrassv2 list-core-devices).

Kesalahan ini menunjukkan bahwa Anda memiliki versiAWS CLIyang tidak mendukungAWS IoT Greengrass V2. Untuk menggunakanAWS IoT Greengrass V2denganAWS CLIAnda harus memiliki salah satu versi berikut ini atau versi yang lebih baru:

  • Minimum AWS CLI Versi V1: v1.18.197

  • Minimum AWS CLI Versi V2: v2.1.11

Tip

Anda dapat menjalankan perintah berikut untuk memeriksa versiAWS CLIyang Anda miliki.

aws --version

Untuk mengatasi masalah ini, perbaruiAWS CLIke versi yang lebih baru yang mendukungAWS IoT Greengrass V2. Untuk informasi selengkapnya, lihat Menginstal, memperbarui, dan mencopot instalasi AWS CLI di Panduan Pengguna AWS Command Line Interface.