BuatAWS IoT Greengrasskomponen - AWS IoT Greengrass

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

BuatAWS IoT Greengrasskomponen

Anda dapat mengembangkan kustomAWS IoT Greengrasskomponen pada komputer pengembangan lokal atau perangkat inti Greengrass.AWS IoT GreengrassmenyediakanAWS IoT GreengrassKit Pengembangan Command-Line Antarmuka (GDK CLI)untuk membantu Anda membuat, membangun, dan mempublikasikan komponen dari templat komponen yang telah ditetapkan dankomponen komunitas. Anda juga dapat menjalankan perintah shell bawaan untuk membuat, membangun, dan mempublikasikan komponen. Pilih salah satu opsi berikut untuk membuat komponen Greengrass:

  • Gunakan Greengrass Development Kit CLI

    Gunakan CLI GDK untuk mengembangkan komponen pada komputer pengembangan lokal. GDK CLI membangun dan mengemas kode sumber komponen ke dalam resep dan artefak yang dapat Anda publikasikan sebagai komponen pribadi untukAWS IoT Greengrasslayanan. Anda dapat mengkonfigurasi CLI GDK untuk secara otomatis memperbarui versi komponen dan URI artefak ketika Anda mempublikasikan komponen, sehingga Anda tidak perlu memperbarui resep setiap kali. Untuk mengembangkan komponen menggunakan GDK CLI, Anda dapat memulai dari template atau komponen komunitas dariKatalog Perangkat Lunak. Untuk informasi selengkapnya, lihat AWS IoT GreengrassPengembangan Kit Command-Line Antarmuka.

  • Jalankan perintah shell bawaan

    Anda dapat menjalankan perintah shell built-in untuk mengembangkan komponen pada komputer pengembangan lokal atau pada perangkat inti Greengrass. Anda menggunakan perintah shell untuk menyalin atau membangun kode sumber komponen ke artefak. Setiap kali Anda membuat versi baru dari komponen, Anda harus membuat atau memperbarui resep dengan versi komponen baru. Ketika Anda mempublikasikan komponen keAWS IoT Greengrasslayanan, Anda harus memperbarui URI untuk setiap artefak komponen dalam resep.

Membuat komponen (GDK CLI)

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

Untuk mengembangkan komponen Greengrass (GDK CLI)

  1. Jika Anda belum menjalankannya, Instal CLI di komputer pengembangan Anda. Untuk informasi selengkapnya, lihat Menginstal atau memperbaruiAWS IoT GreengrassPengembangan Kit Command-Line Antarmuka.

  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 templat komponen atau komponen komunitas untuk diunduh. CLI GDK mengunduh komponen templat atau komunitas, sehingga Anda dapat memulai dari contoh fungsional. Menggunakandaftar komponenperintah untuk mengambil daftar templat atau komponen komunitas.

    • Untuk mencantumkan templat, jalankan perintah berikut. Setiap baris dalam respon mencakup nama template dan bahasa pemrograman.

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

      gdk component list --repository
  4. Buat dan ubah ke folder komponen tempat GDK CLI mendownload template atau komponen komunitas. GantiHelloWorlddengan 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. Download template atau komponen komunitas ke folder saat ini. Menggunakaninitperintah.

    • Untuk membuat folder komponen dari templat, jalankan perintah berikut. GantiHelloWorlddengan nama templat, dan gantipythondengan nama bahasa pemrograman.

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

      gdk component init --repository ComponentName
    catatan

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

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

  6. CLI GDK membaca dariFile konfigurasi GDK, bernamagdk-config.json, untuk membangun dan mempublikasikan komponen. File konfigurasi ini ada di root folder komponen. Langkah sebelumnya membuat file ini untuk Anda. Pada langkah ini, Anda memperbaruigdk-config.jsondengan informasi tentang komponen Anda. Lakukan hal berikut:

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

    2. (Opsional) Mengubah nama komponen. Nama komponen adalah kunci dalamcomponentobjek.

    3. Mengubah penulis komponen.

    4. (Opsional) Mengubah versi komponen. Tentukan satu dari yang berikut ini:

      • NEXT_PATCH— Saat Anda memilih opsi ini, GDK CLI menetapkan versi saat Anda mempublikasikan komponennya. GDK CLI queryAWS IoT Greengrasslayanan untuk mengidentifikasi versi terbaru dari komponen. Kemudian, ia menetapkan versi ke versi patch berikutnya setelah versi itu. Jika Anda belum mempublikasikan komponen sebelumnya, GDK CLI menggunakan versi1.0.0.

        Jika Anda memilih opsi ini, Anda tidak dapat menggunakanGreengrass CLIuntuk menyebarkan secara lokal dan menguji komponen ke komputer pengembangan lokal Anda yang menjalankanAWS IoT GreengrassPerangkat lunak inti. Untuk mengaktifkan penyebaran lokal, Anda harus menentukan versi semantik sebagai gantinya.

      • Versi semantik, seperti1.0.0. Versi semantik menggunakanutama.minor.tambalansistem penomoran. Untuk informasi lebih lanjut, lihat spesifikasi versi semantik.

        Jika Anda mengembangkan komponen pada perangkat inti Greengrass di mana Anda ingin menyebarkan dan menguji komponen, pilih opsi ini. Anda harus membangun komponen dengan versi tertentu untuk membuat penyebaran lokal denganGreengrass CLI.

    5. (Opsional) Mengubah konfigurasi build untuk komponen. Konfigurasi build mendefinisikan bagaimana GDK CLI membangun sumber komponen menjadi artefak. Pilih salah satu opsi berikutbuild_system:

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

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

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

        GDK CLI ritsleting folder komponen ke file zip dengan nama yang sama dengan folder komponen. Misalnya, jika nama folder komponenHelloWorld, GDK CLI membuat file zip bernamaHelloWorld.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 GDK CLI ritsleting folder komponen ke dalam file zip, itu melompat file berikut:

        • File gdk-config.json

        • File resep (recipe.jsonataurecipe.yaml)

        • Membangun folder, sepertigreengrass-build

      • maven— Jalankanmvn clean packageperintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang digunakanMaven, seperti komponen Java.

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

      • gradle— Jalankangradle buildperintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang digunakanGradle.

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

      • custom- Menjalankan perintah kustom untuk membangun sumber komponen menjadi resep dan artefak. Tentukan perintah kustom dicustom_build_commandparameter.

    6. Jika Anda menentukancustomuntukbuild_system, tambahkancustom_build_commandkebuildobjek. Masukcustom_build_command, tentukan string tunggal 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--bucketargumen untuk menentukan bucket S3 di mana GDK CLI mengunggah artefak komponen. Jika Anda tidak menentukan argumen ini, CLI GDK mengunggah ke bucket S3 yang namanyabucketPrefix-region-accountId, tempatBucketPrefixdandaerahadalah nilai yang Anda tentukangdk-config.json, danaccountIdadalahAkun AWSID CLI membuat bucket jika tidak ada.

      Mengubah konfigurasi untuk komponen. Lakukan hal berikut:

      1. Tentukan nama bucket S3 yang akan digunakan untuk menjadi host artefak.

      2. TentukanWilayah AWSdi mana GDK CLI menerbitkan komponen.

    Setelah selesai dengan langkah ini,gdk-config.jsonFile mungkin terlihat serupa 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, bernamarecipe.yamlataurecipe.json. Lakukan hal berikut:

    1. Jika Anda mengunduh templat atau komponen komunitas yang menggunakanzipsistem build, periksa apakah nama artefak sesuai dengan nama folder komponen. GDK CLI ritsleting 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. PerbaruiArtifactsdanLifecycledefinisi sehingga nama file sesuai dengan nama folder komponen. Contoh resep partial berikut menyoroti nama file zip diArtifactsdanLifecycledefinisi.

      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 Referensi resep komponen AWS IoT Greengrass.

      penting

      Bila Anda menggunakan CLI GDK, nama atribut resep sensitif huruf dan harus sesuai dengan kapitalisasi diReferensi resep.

    Setelah selesai dengan langkah ini, file resep mungkin terlihat serupa 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. Mengembangkan dan membangun komponen Greengrass. Parameterbuild komponenmenghasilkan resep dan artefak digreengrass-buildfolder dalam folder komponen. Jalankan perintah berikut.

    gdk component build

Ketika Anda siap untuk menguji komponen Anda, gunakan CLI GDK untuk mempublikasikannya keAWS IoT Greengrasslayanan. Kemudian, Anda dapat men-deploy komponen ke perangkat inti Greengrass. Untuk informasi selengkapnya, lihat Publikasi komponen yang akan di-deploy 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. Membuat 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~/greengrassv2atau%USERPROFILE%\ greengrassv2dengan 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 menentukan metadata komponen, 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.

    Sebagai contoh, 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 Referensi resep komponen AWS IoT Greengrass.

    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.