Buat AWS IoT Greengrass komponen - AWS IoT Greengrass

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

Buat AWS IoT Greengrass komponen

Anda dapat mengembangkan AWS IoT Greengrass komponen khusus pada komputer pengembangan lokal atau perangkat inti Greengrass. AWS IoT Greengrass menyediakan AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) untuk membantu Anda membuat, membangun, dan menerbitkan komponen dari templat komponen dan komponen komunitas yang telah ditentukan sebelumnya. Anda juga dapat menjalankan perintah shell bawaan untuk membuat, membangun, dan menerbitkan komponen. Pilih dari opsi berikut untuk membuat komponen Greengrass kustom:

  • Gunakan CLI Kit Pengembangan Greengrass

    Gunakan CLI GDK untuk mengembangkan komponen pada komputer pengembangan lokal. CLI GDK membangun dan mengemas kode sumber komponen menjadi resep dan artefak yang dapat Anda publikasikan sebagai komponen pribadi ke layanan. AWS IoT Greengrass Anda dapat mengonfigurasi CLI GDK untuk memperbarui versi komponen dan URI artefak secara otomatis saat Anda mempublikasikan komponen, jadi Anda tidak perlu memperbarui resep setiap kali. Untuk mengembangkan komponen menggunakan CLI GDK, Anda dapat memulai dari template atau komponen komunitas dari Katalog Perangkat Lunak Greengrass. Untuk informasi selengkapnya, lihat AWS IoT GreengrassKit Pengembangan Antarmuka Baris Perintah.

  • Jalankan perintah shell bawaan

    Anda dapat menjalankan perintah shell bawaan untuk mengembangkan komponen pada komputer pengembangan lokal atau pada perangkat inti Greengrass. Anda menggunakan perintah shell untuk menyalin atau membangun kode sumber komponen menjadi artefak. Setiap kali Anda membuat versi baru komponen, Anda harus membuat atau memperbarui resep dengan versi komponen baru. Saat memublikasikan komponen ke AWS IoT Greengrass layanan, Anda harus memperbarui URI ke setiap artefak komponen dalam resep.

Buat komponen (GDK CLI)

Ikuti petunjuk di bagian ini untuk membuat dan membangun komponen menggunakan CLI GDK.

Untuk mengembangkan komponen Greengrass (GDK CLI)
  1. Jika Anda belum melakukannya, instal CLI GDK di komputer pengembangan Anda. Untuk informasi selengkapnya, lihat Instal atau perbarui Antarmuka AWS IoT Greengrass Baris Perintah Kit Pengembangan.

  2. Ubah ke folder tempat Anda ingin membuat folder komponen.

    Linux or Unix
    mkdir ~/greengrassv2 cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2 cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2 cd ~/greengrassv2
  3. Pilih template komponen atau komponen komunitas untuk diunduh. CLI GDK mengunduh template atau komponen komunitas, sehingga Anda dapat memulai dari contoh fungsional. Gunakan perintah daftar komponen untuk mengambil daftar template yang tersedia atau komponen komunitas.

    • Untuk daftar template komponen, jalankan perintah berikut. Setiap baris dalam respons mencakup nama template dan bahasa pemrograman.

      gdk component list --template
    • Untuk daftar komponen komunitas, jalankan perintah berikut.

      gdk component list --repository
  4. Buat dan ubah ke folder komponen tempat CLI GDK mengunduh templat atau komponen komunitas. Ganti HelloWorlddengan nama komponen, atau nama lain yang membantu Anda mengidentifikasi folder komponen ini.

    Linux or Unix
    mkdir HelloWorld cd HelloWorld
    Windows Command Prompt (CMD)
    mkdir HelloWorld cd HelloWorld
    PowerShell
    mkdir HelloWorld cd HelloWorld
  5. Unduh template atau komponen komunitas ke folder saat ini. Gunakan perintah komponen init.

    • Untuk membuat folder komponen dari template, jalankan perintah berikut. Ganti HelloWorlddengan nama template, dan ganti python dengan nama bahasa pemrograman.

      gdk component init --template HelloWorld --language python
    • Untuk membuat folder komponen dari komponen komunitas, jalankan perintah berikut. Ganti ComponentNamedengan nama komponen komunitas.

      gdk component init --repository ComponentName
    catatan

    Jika Anda menggunakan GDK CLI v1.0.0, Anda harus menjalankan perintah ini di folder kosong. CLI GDK mengunduh template atau komponen komunitas ke folder saat ini.

    Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, Anda dapat menentukan --name argumen untuk menentukan folder tempat CLI GDK mengunduh template atau komponen komunitas. Jika Anda menggunakan argumen ini, tentukan folder yang tidak ada. CLI GDK membuat folder untuk Anda. Jika Anda tidak menentukan argumen ini, CLI GDK menggunakan folder saat ini, yang harus kosong.

  6. CLI GDK membaca dari file konfigurasi CLI GDK, gdk-config.json bernama, untuk membangun dan menerbitkan komponen. File konfigurasi ini ada di root folder komponen. Langkah sebelumnya membuat file ini untuk Anda. Pada langkah ini, Anda memperbarui gdk-config.json dengan informasi tentang komponen Anda. Lakukan hal-hal berikut:

    1. Buka gdk-config.json di editor teks.

    2. (Opsional) Ubah nama komponen. Nama komponen adalah kunci dalam component objek.

    3. Ubah penulis komponen.

    4. (Opsional) Ubah 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 tambalan. 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.

    5. (Opsional) Ubah konfigurasi build untuk komponen. Konfigurasi build mendefinisikan bagaimana CLI GDK membangun sumber komponen menjadi artefak. Pilih dari opsi berikut untukbuild_system:

      • zip— Paket 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.

    6. Jika Anda menentukan custom untukbuild_system, tambahkan custom_build_command ke build objek. Dalamcustom_build_command, tentukan 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"].

    7. 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.

      Ubah konfigurasi publikasi untuk komponen. Lakukan hal-hal berikut:

      1. Tentukan nama bucket S3 yang akan digunakan untuk meng-host artefak komponen.

      2. Tentukan Wilayah AWS tempat CLI GDK menerbitkan komponen.

    Ketika Anda selesai dengan langkah ini, gdk-config.json file mungkin terlihat mirip dengan contoh berikut.

    { "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" }
  7. Perbarui file resep komponen, bernama recipe.yaml ataurecipe.json. Lakukan hal-hal berikut:

    1. Jika Anda mengunduh templat atau komponen komunitas yang menggunakan sistem zip build, periksa apakah nama artefak zip cocok dengan nama folder komponen. CLI GDK meritsleting folder komponen ke dalam file zip dengan nama yang sama dengan folder komponen. Resep berisi nama artefak zip dalam daftar artefak komponen dan skrip siklus hidup yang menggunakan file dalam artefak zip. Perbarui Artifacts dan Lifecycle definisi sedemikian rupa sehingga nama file zip cocok dengan nama folder komponen. Contoh resep parsi berikut menyoroti nama file zip dalam Lifecycle definisi Artifacts dan.

      JSON
      { ... "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
      YAML
      --- ... Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
    2. (Opsional) Perbarui deskripsi komponen, konfigurasi default, artefak, skrip siklus hidup, dan dukungan platform. Untuk informasi selengkapnya, lihat AWS IoT Greengrass referensi resep komponen.

    Setelah selesai dengan langkah ini, file resep mungkin terlihat mirip dengan contoh berikut.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "{COMPONENT_NAME}", "ComponentVersion": "{COMPONENT_VERSION}", "ComponentDescription": "This is a simple Hello World component written in Python.", "ComponentPublisher": "{COMPONENT_AUTHOR}", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "World" } }, "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: "2020-01-25" ComponentName: "{COMPONENT_NAME}" ComponentVersion: "{COMPONENT_VERSION}" ComponentDescription: "This is a simple Hello World component written in Python." ComponentPublisher: "{COMPONENT_AUTHOR}" ComponentConfiguration: DefaultConfiguration: Message: "World" Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
  8. Kembangkan dan bangun komponen Greengrass. Perintah build komponen menghasilkan resep dan artefak di greengrass-build folder di folder komponen. Jalankan perintah berikut.

    gdk component build

Saat Anda siap untuk menguji komponen Anda, gunakan CLI GDK untuk mempublikasikannya ke AWS IoT Greengrass layanan. Kemudian, Anda dapat menerapkan komponen ke perangkat inti Greengrass. Untuk informasi selengkapnya, lihat Publikasikan komponen untuk diterapkan ke perangkat inti Anda.

Buat komponen (perintah shell)

Ikuti petunjuk di bagian ini untuk membuat folder resep dan artefak yang berisi kode sumber dan artefak untuk beberapa komponen.

Untuk mengembangkan komponen Greengrass (perintah shell)
  1. Buat folder untuk komponen Anda dengan subfolder untuk resep dan artefak. Jalankan perintah berikut pada perangkat inti Greengrass Anda untuk membuat folder ini dan mengubah ke folder komponen. Ganti ~/greengrassv2 atau %USERPROFILE%\ greengrassv2 dengan path ke folder yang akan digunakan untuk pengembangan lokal.

    Linux or Unix
    mkdir -p ~/greengrassv2/{recipes,artifacts} cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2\\recipes, %USERPROFILE%\greengrassv2\\artifacts cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2/recipes, ~/greengrassv2/artifacts cd ~/greengrassv2
  2. Gunakan editor teks untuk membuat file resep yang mendefinisikan metadata, parameter, dependensi, siklus hidup, dan kemampuan platform komponen Anda. Sertakan versi komponen dalam nama file resep agar Anda dapat mengidentifikasi resep yang mencerminkan versi komponen. Anda dapat memilih format YAML atau JSON untuk resep Anda.

    Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

    JSON
    nano recipes/com.example.HelloWorld-1.0.0.json
    YAML
    nano recipes/com.example.HelloWorld-1.0.0.yaml
    catatan

    AWS IoT Greengrass menggunakan versi semantik untuk komponen. Versi semantik mengikuti sistem nomor mayor.minor.patch. Sebagai contoh, versi 1.0.0 merupakan rilis mayor pertama untuk sebuah komponen. Untuk informasi lebih lanjut, lihat spesifikasi versi semantik.

  3. Tentukan resep untuk komponen Anda. Untuk informasi selengkapnya, lihat AWS IoT Greengrass referensi resep komponen.

    Resep Anda mungkin terlihat serupa dengan contoh resep Hello World berikut.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.HelloWorld ComponentVersion: '1.0.0' ComponentDescription: My first AWS IoT Greengrass component. ComponentPublisher: Amazon ComponentConfiguration: DefaultConfiguration: Message: world Manifests: - Platform: os: linux Lifecycle: run: | python3 -u {artifacts:path}/hello_world.py "{configuration:/Message}" - Platform: os: windows Lifecycle: run: | py -3 -u {artifacts:path}/hello_world.py "{configuration:/Message}"

    Resep ini menjalankan skrip Hello World Python, yang mungkin terlihat mirip dengan contoh skrip berikut.

    import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message)
  4. Buat folder untuk versi komponen yang akan dikembangkan. Kami merekomendasikan agar Anda menggunakan folder terpisah untuk setiap versi komponen artefak agar Anda dapat mengidentifikasi artefak untuk setiap versi komponen. Jalankan perintah berikut.

    Linux or Unix
    mkdir -p artifacts/com.example.HelloWorld/1.0.0
    Windows Command Prompt (CMD)
    mkdir artifacts/com.example.HelloWorld/1.0.0
    PowerShell
    mkdir artifacts/com.example.HelloWorld/1.0.0
    penting

    Anda harus menggunakan format berikut untuk jalur folder artefak. Sertakan nama komponen dan versi yang Anda tentukan dalam resep.

    artifacts/componentName/componentVersion/
  5. Buat artefak untuk komponen Anda di folder yang Anda buat di langkah sebelumnya. Artefak dapat mencakup perangkat lunak, gambar, dan biner lain yang menggunakan komponen Anda.

    Ketika komponen Anda sudah siap, uji komponen Anda.