Mengelola penerapan dan komponen lokal - AWS IoT Greengrass

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

Mengelola penerapan dan komponen lokal

catatan

Fitur ini tersedia untuk v2.6.0 dan versi kemudianKomponen Greengrass.

Gunakan layanan Greengrass CLI IPC untuk mengelola penerapan lokal dan komponen Greengrass pada perangkat inti.

Untuk menggunakan operasi IPC ini, sertakan versi 2.6.0 atau yang lebih baruKomponen Greengrass CLIsebagai dependensi dalam komponen kustom Anda. Anda kemudian dapat menggunakan operasi IPC di komponen kustom Anda untuk melakukan hal berikut:

  • Buat deployment lokal untuk memodifikasi dan mengonfigurasi komponen Greengrass pada perangkat inti.

  • Memulai ulang dan menghentikan komponen Greengrass pada perangkat inti.

  • Buat kata sandi yang dapat Anda gunakan untuk masukkonsol debug lokal.

SDK (Versi Minimum)

Tabel berikut menjelaskan versi minimum dariAWS IoT Device SDKyang harus Anda gunakan untuk berinteraksi dengan layanan Greengrass CLI IPC.

Otorisasi

Untuk menggunakan layanan Greengrass CLI IPC dalam komponen kustom, Anda harus menentukan kebijakan otorisasi yang memungkinkan komponen Anda untuk mengelola penerapan dan komponen lokal. Untuk informasi tentang cara menentukan kebijakan otorisasi, lihat Otorisasi komponen untuk melakukan operasi IPC.

Kebijakan otorisasi untuk Greengrass CLI memiliki properti berikut.

Pengenal layanan IPC: aws.greengrass.Cli

Operasi Deskripsi Sumber daya

aws.greengrass#CreateLocalDeployment

Memungkinkan komponen untuk membuat deployment lokal pada perangkat inti.

*

aws.greengrass#ListLocalDeployments

Memungkinkan komponen untuk menjelaskan deployment lokal pada perangkat inti.

*

aws.greengrass#GetLocalDeploymentStatus

Memungkinkan komponen untuk mendapatkan status deployment lokal pada perangkat inti.

ID penyebaran lokal, atau*untuk mengizinkan akses semua deployment lokal.

aws.greengrass#ListComponents

Memungkinkan komponen untuk daftar komponen pada perangkat inti.

*

aws.greengrass#GetComponentDetails

Memungkinkan komponen untuk mendapatkan detail tentang komponen pada perangkat inti.

Nama komponen, seperticom.example.HelloWorld, atau*untuk mengizinkan akses semua komponen.

aws.greengrass#RestartComponent

Memungkinkan komponen untuk me-restart komponen pada perangkat inti.

Nama komponen, seperticom.example.HelloWorld, atau*untuk mengizinkan akses semua komponen.

aws.greengrass#StopComponent

Memungkinkan komponen untuk menghentikan komponen pada perangkat inti.

Nama komponen, seperticom.example.HelloWorld, atau*untuk mengizinkan akses semua komponen.

aws.greengrass#CreateDebugPassword

Memungkinkan komponen untuk menghasilkan kata sandi yang akan digunakan untuk masuk keKomponen debug lokal.

*

contoh Contoh kebijakan otorisasi

Contoh kebijakan otorisasi berikut memungkinkan komponen untuk membuat penyebaran lokal, melihat semua penerapan dan komponen lokal, dan memulai ulang dan menghentikan komponen bernamacom.example.HelloWorld.

{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }

CreateLocalDeployment

Buat atau perbarui deployment lokal menggunakan resep komponen tertentu, artefak, dan argumen waktu aktif.

Operasi ini menyediakan fungsionalitas yang sama dengandeployment buat perintahdi Greengrass CLI.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

recipeDirectoryPath(Python:recipe_directory_path)

(Opsional) Path absolut ke folder yang berisi file resep komponen.

artifactDirectoryPath(Python:artifact_directory_path)

(Opsional) Path absolut ke folder yang berisi file artefak yang akan dimasukkan dalam deployment. Folder artefak artefak harus berisi struktur folder berikut:

/path/to/artifact/folder/component-name/component-version/artifacts
rootComponentVersionsToAdd(Python:root_component_versions_to_add)

(Opsional) Versi komponen yang akan dipasang pada perangkat inti. Objek ini,ComponentToVersionMap, adalah peta yang berisi pasangan nilai kunci berikut:

key

Nama komponen.

value

Versi komponen.

rootComponentsToRemove(Python:root_components_to_remove)

(Opsional) Komponen yang akan di-uninstall dari perangkat inti. Tentukan daftar di mana setiap entri adalah nama komponen.

componentToConfiguration(Python:component_to_configuration)

(Opsional) Memperbarui konfigurasi untuk setiap komponen dalam deployment. Objek ini,ComponentToConfiguration, adalah peta yang berisi pasangan nilai kunci berikut:

key

Nama komponen.

value

Konfigurasi memperbarui objek JSON untuk komponen. Objek JSON JSON harus dalam format berikut.

{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }

Untuk informasi selengkapnya tentang pembaruan konfigurasi, lihat Perbarui konfigurasi komponen.

componentToRunWithInfo(Python:component_to_run_with_info)

(Opsional) Konfigurasi runtime untuk setiap komponen dalam penyebaran. Konfigurasi ini mencakup pengguna sistem yang memiliki setiap proses komponen dan batas sistem untuk diterapkan ke setiap komponen. Objek ini,ComponentToRunWithInfo, adalah peta yang berisi pasangan nilai kunci berikut:

key

Nama komponen.

value

Konfigurasi runtime untuk komponen tersebut. Jika Anda menghilangkan parameter konfigurasi runtime,AWS IoT GreengrassPerangkat lunak inti menggunakan nilai default yang Anda konfigurasikan padaInti Greengrass. Objek ini, RunWithInfo, berisi informasi berikut:

posixUser(Python:posix_user)

(Opsional)Pengguna sistem POSIX dan, opsional, grup yang akan digunakan untuk menjalankan komponen ini pada perangkat inti Linux. Pengguna, dan grup jika ditentukan, harus ada di setiap perangkat inti Linux. Tentukan pengguna dan grup yang dipisahkan dengan titik dua (:) dalam format berikut: user:group. Grup ini opsional. Jika Anda tidak menentukan grup,AWS IoT GreengrassPerangkat lunak inti menggunakan kelompok utama untuk pengguna. Untuk informasi selengkapnya, lihatMengkonfigurasi pengguna yang menjalankan komponen.

windowsUser(Python:windows_user)

(Opsional)Pengguna Windows yang digunakan untuk menjalankan komponen ini pada perangkat inti Windows. Pengguna harus ada di setiap perangkat inti Windows, dan nama dan kata sandinya harus disimpan di LocalSystem Manajer Kredensial akun misalnya. Untuk informasi selengkapnya, lihatMengkonfigurasi pengguna yang menjalankan komponen.

systemResourceLimits(Python:system_resource_limits)

(Opsional)Batas sumber daya sistem untuk diterapkan pada proses komponen ini. Anda dapat menerapkan batas sumber daya sistem ke komponen Lambda generik dan non-kontainer. Untuk informasi selengkapnya, lihatMengkonfigurasi batas sumber daya sistem untuk komponen.

AWS IoT GreengrassSaat ini tidak mendukung fitur ini pada perangkat inti Windows.

Objek ini, SystemResourceLimits, berisi informasi berikut:

cpus

(Opsional)Jumlah maksimum waktu CPU yang dapat digunakan proses komponen ini pada perangkat inti. Total waktu CPU perangkat inti setara dengan jumlah inti CPU perangkat. Misalnya, pada perangkat inti dengan 4 inti CPU, Anda dapat mengatur nilai ini2untuk membatasi proses komponen ini untuk 50 persen penggunaan setiap inti CPU. Pada perangkat dengan 1 inti CPU, Anda dapat mengatur nilai ini0.25untuk membatasi proses komponen ini untuk 25 persen penggunaan CPU. Jika Anda menetapkan nilai ini ke angka yang lebih besar dari jumlah core CPU,AWS IoT GreengrassPerangkat lunak inti tidak membatasi penggunaan CPU komponen.

memory

(Opsional)Jumlah maksimum RAM (dalam kilobyte) yang dapat digunakan proses komponen ini pada perangkat inti.

groupName(Python:group_name)

(Opsional) Nama grup objek yang akan ditargetkan dengan deployment ini.

Response

Tanggapan operasi ini memiliki informasi berikut:

deploymentId(Python:deployment_id)

ID deployment lokal yang dibuat permintaan.

ListLocalDeployments

Dapatkan status dari 10 deployment lokal terakhir.

Operasi ini menyediakan fungsionalitas yang sama denganperintah daftar penyebarandi Greengrass CLI.

Permintaan

Operasi ini tidak memiliki parameter apa pun.

Response

Tanggapan operasi ini memiliki informasi berikut:

localDeployments(Python:local_deployments)

Daftar penyebaran lokal. Setiap objek dalam daftar ini adalahLocalDeploymentobjek, yang berisi informasi berikut:

deploymentId(Python:deployment_id)

ID deployment lokal.

status

Status penyebaran lokal. Enum ini, DeploymentStatus, memiliki nilai-nilai berikut:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

GetLocalDeploymentStatus

Dapatkan status deployment lokal.

Operasi ini menyediakan fungsionalitas yang sama denganperintah deploymentdi Greengrass CLI.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

deploymentId(Python:deployment_id)

ID deployment lokal yang akan didapat.

Response

Tanggapan operasi ini memiliki informasi berikut:

deployment

Deployment lokal. Objek ini, LocalDeployment, berisi informasi berikut:

deploymentId(Python:deployment_id)

ID deployment lokal.

status

Status penyebaran lokal. Enum ini, DeploymentStatus, memiliki nilai-nilai berikut:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

ListComponents

Dapatkan nama, versi, status, dan konfigurasi dari setiap komponen akar pada perangkat inti. SEBUAHkomponen rootadalah komponen yang Anda tentukan dalam penyebaran. Respons ini tidak menyertakan komponen yang diinstal sebagai dependensi komponen lainnya.

Operasi ini menyediakan fungsionalitas yang sama denganperintah daftar komponendi Greengrass CLI.

Permintaan

Operasi ini tidak memiliki parameter apa pun.

Response

Tanggapan operasi ini memiliki informasi berikut:

components

Daftar komponen root pada perangkat inti. Setiap objek dalam daftar ini adalahComponentDetailsobjek, yang berisi informasi berikut:

componentName(Python:component_name)

Nama komponen.

version

Versi komponen.

state

Keadaan komponen. Keadaan ini dapat menjadi salah satu dari yang berikut:

  • RUNNING

  • ERRORED

configuration

Konfigurasi komponen sebagai objek JSON.

GetComponentDetails

Dapatkan versi, status, dan konfigurasi komponen pada perangkat inti.

Operasi ini menyediakan fungsionalitas yang sama denganperintah detail komponendi Greengrass CLI.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:component_name)

Nama komponen yang akan didapat.

Response

Tanggapan operasi ini memiliki informasi berikut:

componentDetails(Python:component_details)

Rincian komponen. Objek ini, ComponentDetails, berisi informasi berikut:

componentName(Python:component_name)

Nama komponen.

version

Versi komponen.

state

Keadaan komponen. Keadaan ini dapat menjadi salah satu dari yang berikut:

  • RUNNING

  • ERRORED

configuration

Konfigurasi komponen sebagai objek JSON.

RestartComponent

Memulai ulang komponen pada perangkat inti.

catatan

Meskipun Anda dapat me-restart komponen apa pun, kami sarankan Anda me-restart sajakomponen generik.

Operasi ini menyediakan fungsionalitas yang sama denganperintah restart komponendi Greengrass CLI.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:component_name)

Nama komponen.

Response

Tanggapan operasi ini memiliki informasi berikut:

restartStatus(Python:restart_status)

Status permintaan restart. Nilai bisa jadi salah satu dari yang berikut:

  • SUCCEEDED

  • FAILED

message

Pesan tentang mengapa komponen gagal memulai ulang, jika permintaan gagal.

StopComponent

Menghentikan proses komponen pada perangkat inti.

catatan

Meskipun Anda dapat menghentikan komponen apa pun, kami sarankan Anda berhenti sajakomponen generik.

Operasi ini menyediakan fungsionalitas yang sama dengankomponen berhenti perintahdi Greengrass CLI.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:component_name)

Nama komponen.

Response

Tanggapan operasi ini memiliki informasi berikut:

stopStatus(Python:stop_status)

Status permintaan yang berhenti. Nilai bisa jadi salah satu dari yang berikut:

  • SUCCEEDED

  • FAILED

message

Pesan tentang mengapa komponen gagal berhenti, jika permintaan gagal.

CreateDebugPassword

Menghasilkan kata sandi acak yang dapat Anda gunakan untuk masuk keKomponen debug lokal. Kata sandi kedaluwarsa 8 jam setelah dibuat.

Operasi ini menyediakan fungsionalitas yang sama denganget-debug-password komandodi Greengrass CLI.

Permintaan

Operasi ini tidak memiliki parameter apa pun.

Response

Tanggapan operasi ini memiliki informasi berikut:

username

Nama pengguna yang digunakan untuk masuk.

password

Kata sandi yang digunakan untuk masuk.

passwordExpiration(Python:password_expiration)

Waktu ketika kata sandi kedaluwarsa.

certificateSHA256Hash(Python:certificate_sha256_hash)

Sidik jari SHA-256 untuk sertifikat yang ditandatangani sendiri yang digunakan konsol debug lokal saat HTTPS diaktifkan. Ketika Anda membuka konsol debug lokal, gunakan sidik jari ini untuk memverifikasi bahwa sertifikat itu sah dan sambungan aman.

certificateSHA1Hash(Python:certificate_sha1_hash)

Sidik jari SHA-1 untuk sertifikat yang ditandatangani sendiri yang digunakan konsol debug lokal saat HTTPS diaktifkan. Ketika Anda membuka konsol debug lokal, gunakan sidik jari ini untuk memverifikasi bahwa sertifikat itu sah dan sambungan aman.