File konfigurasi CLI Kit Pengembangan Greengrass - AWS IoT Greengrass

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

File konfigurasi CLI Kit Pengembangan Greengrass

AWS IoT GreengrassDevelopment Kit Command-Line Interface (GDK CLI) membaca dari file konfigurasi gdk-config.json bernama untuk membangun dan menerbitkan komponen. File konfigurasi ini harus ada di root repositori komponen. Anda dapat menggunakan perintah GDK CLI init untuk menginisialisasi repositori komponen dengan file konfigurasi ini.

Format file konfigurasi GDK CLI

Saat Anda menentukan file konfigurasi CLI GDK untuk komponen, Anda menentukan informasi berikut dalam format JSON.

gdk_version

Versi minimum CLI GDK yang kompatibel dengan komponen ini. Nilai ini harus menjadi salah satu versi CLI GDK dari rilis.

component

Konfigurasi untuk komponen ini.

componentName
author

Penulis atau penerbit komponen.

version

Versi komponen. Tentukan satu dari yang berikut ini:

  • NEXT_PATCH— Saat Anda memilih opsi ini, CLI GDK menetapkan versi saat Anda mempublikasikan komponen. CLI GDK menanyakan layanan AWS IoT Greengrass untuk mengidentifikasi versi komponen terbaru yang diterbitkan. Kemudian, ia menetapkan versi ke versi patch berikutnya setelah versi itu. Jika Anda belum mempublikasikan komponen sebelumnya, CLI GDK menggunakan versi. 1.0.0

    Jika Anda memilih opsi ini, Anda tidak dapat menggunakan CLI Greengrass untuk menyebarkan dan menguji komponen secara lokal ke komputer pengembangan lokal Anda yang menjalankan perangkat lunak Core. AWS IoT Greengrass Untuk mengaktifkan penerapan lokal, Anda harus menentukan versi semantik sebagai gantinya.

  • Versi semantik, seperti. 1.0.0 Versi semantik menggunakan mayor. kecil. sistem penomoran patch. Untuk informasi lebih lanjut, lihat spesifikasi versi semantik.

    Jika Anda mengembangkan komponen pada perangkat inti Greengrass tempat Anda ingin menerapkan dan menguji komponen, pilih opsi ini. Anda harus membangun komponen dengan versi tertentu untuk membuat penerapan lokal dengan CLI Greengrass.

build

Konfigurasi yang digunakan untuk membangun sumber komponen ini menjadi artefak. Objek ini berisi informasi berikut:

build_system

Sistem build yang akan digunakan. Pilih dari salah satu pilihan berikut:

  • zip— Mengemas folder komponen ke dalam file ZIP untuk didefinisikan sebagai satu-satunya artefak komponen. Pilih opsi ini untuk jenis komponen berikut:

    • Komponen yang menggunakan bahasa pemrograman yang ditafsirkan, seperti JavaScript Python atau.

    • Komponen yang mengemas file selain kode, seperti model pembelajaran mesin atau sumber daya lainnya.

    CLI GDK meritsleting folder komponen ke dalam file zip dengan nama yang sama dengan folder komponen. Misalnya, jika nama folder komponen adalahHelloWorld, CLI GDK membuat file zip bernama. HelloWorld.zip

    catatan

    Jika Anda menggunakan GDK CLI versi 1.0.0 pada perangkat Windows, folder komponen dan nama file zip harus berisi hanya huruf kecil.

    Ketika CLI GDK meritsleting folder komponen ke dalam file zip, ia melewatkan file-file berikut:

    • File gdk-config.json

    • File resep (recipe.jsonataurecipe.yaml)

    • Membangun folder, seperti greengrass-build

  • maven— Menjalankan mvn clean package perintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang menggunakan Maven, seperti komponen Java.

    Pada perangkat Windows, fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.

  • gradle— Menjalankan gradle build perintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang menggunakan Gradle. Fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.

    Sistem gradle build mendukung Kotlin DSL sebagai file build. Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.

  • gradlew— Menjalankan gradlew perintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang menggunakan Gradle Wrapper.

    Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.

  • custom— Menjalankan perintah khusus untuk membangun sumber komponen menjadi resep dan artefak. Tentukan perintah khusus dalam custom_build_command parameter.

custom_build_command

(Opsional) Perintah custom build untuk dijalankan untuk sistem build kustom. Anda harus menentukan parameter ini jika Anda menentukan custom untukbuild_system.

penting

Perintah ini harus membuat resep dan artefak di folder berikut dalam folder komponen. CLI GDK membuat folder ini untuk Anda saat Anda menjalankan perintah build komponen.

  • Folder resep: greengrass-build/recipes

  • Folder artefak: greengrass-build/artifacts/componentName/componentVersion

    Ganti componentName dengan nama komponen, dan ganti componentVersion dengan versi komponen atau. NEXT_PATCH

Anda dapat menentukan satu string atau daftar string, di mana setiap string adalah kata dalam perintah. Misalnya, untuk menjalankan perintah build kustom untuk komponen C++, Anda dapat menentukan cmake --build build --config Release atau["cmake", "--build", "build", "--config", "Release"].

Untuk melihat contoh sistem build kustom, lihat aws.greengrass.labs.LocalWebServer community componentdi GitHub.

options

(Opsional) Opsi konfigurasi tambahan yang digunakan selama proses pembuatan komponen.

Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.

excludes

Daftar pola glob yang menentukan file mana yang akan dikecualikan dari direktori komponen saat membuat file zip. Hanya berlaku ketika build_system adazip.

catatan

Di GDK CLI versi 1.4.0 dan sebelumnya, file apa pun yang cocok dengan entri dalam daftar pengecualian dikecualikan dari semua subdirektori komponen. Untuk mencapai perilaku yang sama di GDK CLI versi 1.5.0 dan yang lebih baru, tambahkan **/ entri yang ada dalam daftar pengecualian. Misalnya, *.txt akan mengecualikan file teks hanya dari direktori; **/*.txt akan mengecualikan file teks dari semua direktori dan subdirektori.

Di GDK CLI versi 1.5.0 dan yang lebih baru, Anda mungkin melihat peringatan selama pembuatan komponen excludes saat ditentukan dalam file konfigurasi GDK. Untuk menonaktifkan peringatan ini, atur variabel lingkungan GDK_EXCLUDES_WARN_IGNORE ketrue.

CLI GDK selalu mengecualikan file berikut dari file zip:

  • File gdk-config.json

  • File resep (recipe.jsonataurecipe.yaml)

  • Membangun folder, seperti greengrass-build

File-file berikut dikecualikan secara default. Namun, Anda dapat mengontrol file mana yang dikecualikan dengan excludes opsi.

  • Setiap folder yang dimulai dengan awalan “test” () test*

  • Semua file tersembunyi

  • node_modulesFolder

Jika Anda menentukan excludes opsi, CLI GDK hanya mengecualikan file-file yang Anda atur dengan opsi. excludes Jika Anda tidak menentukan excludes opsi, CLI GDK mengecualikan file dan folder default yang disebutkan sebelumnya.

zip_name

Nama file zip yang akan digunakan saat Anda membuat artefak zip selama proses pembuatan. Hanya berlaku ketika build_system adazip. Jika kosong, nama komponen digunakan untuk nama file zip. build_system

publish

Konfigurasi yang digunakan untuk mempublikasikan komponen ini ke AWS IoT Greengrass layanan.

Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, Anda dapat menentukan argumen untuk menentukan --bucket bucket S3 tempat CLI GDK mengunggah artefak komponen. Jika Anda tidak menentukan argumen ini, CLI GDK akan mengunggah ke bucket S3 yang namanya, di mana bucket dan region bucket-region-accountId adalah nilai yang Anda tentukangdk-config.json, dan accountID adalah ID Anda. Akun AWS CLI GDK membuat bucket jika tidak ada.

Objek ini berisi informasi berikut:

bucket

Nama bucket S3 yang digunakan untuk meng-host artefak komponen.

region

Wilayah AWSTempat CLI GDK menerbitkan komponen ini.

Properti ini bersifat opsional jika Anda menggunakan GDK CLI v1.3.0 atau yang lebih baru.

options

(Opsional) Opsi konfigurasi tambahan yang digunakan selama pembuatan versi komponen.

Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.

file_upload_args

Struktur JSON yang berisi argumen yang dikirim ke Amazon S3 saat mengunggah file ke bucket, seperti metadata dan mekanisme enkripsi. Untuk daftar argumen yang diizinkan, lihat S3Transferkelas dalam dokumentasi Boto3. .

test-e2e

(Opsional) Konfigurasi yang akan digunakan selama end-to-end pengujian komponen. Fitur ini tersedia untuk GDK CLI v1.3.0 dan yang lebih baru.

build

build_system— Sistem build yang akan digunakan. Opsi default adalahmaven. Pilih dari salah satu pilihan berikut:

  • maven— Menjalankan mvn package perintah untuk membangun modul pengujian. Pilih opsi ini untuk membangun modul pengujian yang menggunakan Maven.

  • gradle— Menjalankan gradle build perintah untuk membangun modul pengujian. Pilih opsi ini untuk modul pengujian yang menggunakan Gradle.

gtf_version

(Opsional) Versi Greengrass Testing Framework (GTF) untuk digunakan sebagai dependensi modul pengujian saat Anda menginisialisasi proyek GDK end-to-end dengan GTF. Nilai ini harus menjadi salah satu versi GTF dari rilis. Defaultnya adalah GTF versi 1.1.0.

gtf_options

(Opsional) Opsi konfigurasi tambahan yang digunakan selama end-to-end pengujian komponen.

Daftar berikut mencakup opsi yang dapat Anda gunakan dengan GTF versi 1.1.0.

  • additional-plugins- (Opsional) Plugin Mentimun Tambahan

  • aws-region— Menargetkan titik akhir regional tertentu untuk AWS layanan. Default untuk apa yang ditemukan SDKAWS.

  • credentials-path— Jalur kredensial AWS profil opsional. Default untuk kredensil yang ditemukan di lingkungan host.

  • credentials-path-rotation— Durasi rotasi opsional untuk AWS kredensil. Default hingga 15 menit atau. PT15M

  • csr-path— Jalur untuk CSR yang menggunakan sertifikat perangkat yang akan dihasilkan.

  • device-mode— Perangkat target yang sedang diuji. Default ke perangkat lokal.

  • env-stage— Menargetkan lingkungan penyebaran Greengrass. Default untuk produksi.

  • existing-device-cert-arn— Arn dari sertifikat yang ada yang ingin Anda gunakan sebagai sertifikat perangkat untuk Greengrass.

  • feature-path— File atau direktori yang berisi file fitur tambahan. Default adalah tidak ada file fitur tambahan yang digunakan.

  • gg-cli-version— Mengganti versi CLI Greengrass. Default ke nilai yang ditemukan di. ggc.version

  • gg-component-bucket— Nama ember Amazon S3 yang ada yang menampung komponen Greengrass.

  • gg-component-overrides— Daftar penggantian komponen Greengrass.

  • gg-persist— Daftar elemen pengujian untuk bertahan setelah uji coba. Perilaku default adalah tidak mempertahankan apa pun. Nilai yang diterima adalah:aws.resources,installed.software, dangenerated.files.

  • gg-runtime— Daftar nilai untuk mempengaruhi bagaimana tes berinteraksi dengan sumber daya pengujian. Nilai-nilai ini menggantikan parameter. gg.persist Jika default kosong, itu mengasumsikan semua sumber daya pengujian dikendalikan oleh kasus uji, termasuk runtime Greengrass yang diinstal. Nilai yang diterima adalah:aws.resources,installed.software, dangenerated.files.

  • ggc-archive— Jalur menuju komponen inti Greengrass yang diarsipkan.

  • ggc-install-root— Direktori untuk menginstal komponen inti Greengrass. Default ke test.temp.path dan test run folder.

  • ggc-log-level— Atur level log nukleus Greengrass untuk uji coba. Defaultnya adalah “INFO”.

  • ggc-tes-rolename— Peran IAM yang akan diasumsikan AWS IoT Greengrass Core untuk mengakses AWS layanan. Jika peran dengan nama yang diberikan tidak ada maka akan dibuat dan kebijakan akses default.

  • ggc-trusted-plugins— Daftar koma terpisah dari jalur (pada host) dari plugin tepercaya yang perlu ditambahkan ke Greengrass. Untuk menyediakan jalur pada DUT itu sendiri, awali jalur dengan 'dut: '

  • ggc-user-name— Nilai user:group POSIXuser untuk inti Greengrass. Default ke nama pengguna saat ini yang masuk.

  • ggc-version— Mengganti versi komponen inti Greengrass yang sedang berjalan. Default ke nilai yang ditemukan di ggc.archive.

  • log-level— Tingkat log uji coba. Default ke “INFO”.

  • parallel-config— Set indeks batch dan jumlah batch sebagai JSON String. Nilai default indeks batch adalah 0 dan jumlah batch adalah 1.

  • proxy-url— Konfigurasikan semua tes untuk merutekan lalu lintas melalui URL ini.

  • tags— Hanya jalankan tag fitur. Dapat berpotongan dengan '&'

  • test-id-prefix- Awalan umum diterapkan untuk semua sumber daya pengujian tertentu termasuk nama AWS sumber daya dan tag. Default adalah awalan “gg”.

  • test-log-path— Direktori yang akan berisi hasil dari seluruh uji coba. Default ke “TestResults”.

  • test-results-json— Tandai untuk menentukan apakah laporan Cucumber JSON yang dihasilkan ditulis ke disk. Default ke true.

  • test-results-log— Tandai untuk menentukan apakah output konsol dihasilkan ditulis ke disk. Default ke false.

  • test-results-xml- Tandai untuk menentukan apakah laporan XMLJunit yang dihasilkan dihasilkan ditulis ke disk. Default ke true.

  • test-temp-path— Direktori untuk menghasilkan artefak uji lokal. Default ke direktori temp acak diawali dengan gg-testing.

  • timeout-multiplier— Pengganda disediakan untuk semua batas waktu pengujian. Defaultnya adalah 1.0.

Contoh file konfigurasi GDK CLI

Anda dapat mereferensikan contoh file konfigurasi CLI GDK berikut untuk membantu Anda mengonfigurasi lingkungan komponen Greengrass.

Halo Dunia (Python)

File konfigurasi CLI GDK berikut mendukung komponen Hello World yang menjalankan skrip Python. File konfigurasi ini menggunakan sistem zip build untuk mengemas skrip Python komponen ke dalam file ZIP yang diunggah CLI GDK sebagai artefak.

{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip", "options": { "excludes": [".*"] } }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "some-key": "some-value" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }

Hello World (Jawa)

File konfigurasi CLI GDK berikut mendukung komponen Hello World yang menjalankan aplikasi Java. File konfigurasi ini menggunakan sistem maven build untuk mengemas kode sumber Java komponen ke dalam file JAR yang diunggah CLI GDK sebagai artefak.

{ "component": { "com.example.JavaHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "maven" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "some-key": "some-value" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }

Komponen komunitas

Beberapa komponen komunitas dalam Katalog Perangkat Lunak Greengrass menggunakan CLI GDK. Anda dapat menjelajahi file konfigurasi CLI GDK di repositori komponen ini.

Untuk melihat file konfigurasi CLI GDK komponen komunitas
  1. Jalankan perintah berikut untuk membuat daftar komponen komunitas yang menggunakan CLI GDK.

    gdk component list --repository

    Respons mencantumkan nama GitHub repositori untuk setiap komponen komunitas yang menggunakan CLI GDK. Setiap repositori ada di organisasi. awslabs

    [2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog. [2022-02-22 17:27:31] INFO - Found '6' component repositories to display. 1. aws-greengrass-labs-database-influxdb 2. aws-greengrass-labs-telemetry-influxdbpublisher 3. aws-greengrass-labs-dashboard-grafana 4. aws-greengrass-labs-dashboard-influxdb-grafana 5. aws-greengrass-labs-local-web-server 6. aws-greengrass-labs-lookoutvision-gstreamer
  2. Buka GitHub repositori komponen komunitas di URL berikut. Ganti community-component-namedengan nama komponen komunitas dari langkah sebelumnya.

    https://github.com/awslabs/community-component-name