komponen - AWS IoT Greengrass

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

komponen

Menggunakancomponentperintah diAWS IoT GreengrassDevelopment Kit Command-Line Interface (GDK CLI) untuk membuat, membangun, dan mempublikasikan komponen Greengrass kustom.

init

Menginisialisasi folder komponen Greengrass dari template komponen atau komponen komunitas.

CLI GDK mengambil komponen komunitas dariKatalog Perangkat Lunak Greengrassdan komponen template dariAWS IoT GreengrassKomponen Template repositori di GitHub.

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.

Jika komponen menggunakansistem zip, GDK CLI ritsleting file tertentu dalam folder komponen ke dalam file zip dengan nama yang sama dengan folder komponen. Misalnya, jika nama folder komponenHelloWorld, GDK CLI membuat file zip bernamaHelloWorld.zip. Dalam resep komponen, nama artefak zip harus sesuai dengan nama folder komponen. Jika Anda menggunakan GDK CLI versi 1.0.0 pada perangkat Windows, folder komponen dan nama file zip harus berisi hanya huruf kecil.

Jika Anda menginisialisasi template atau komponen komunitas yang menggunakan sistem pembuatan zip ke folder dengan nama berbeda dari template atau komponen, Anda harus mengubah nama artefak zip dalam resep komponen. PerbaruiArtifactsdanLifecycledefinisi sehingga nama file zip cocok dengan nama folder komponen. Contoh berikut menyoroti nama file zip diArtifactsdanLifecycledefinisi.

JSON
{ ... "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}" } } ] }
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}"
Ringkasan
$ gdk component init [--language] [--template] [--repository] [--name]
Argumen (menginisialisasi dari template komponen)
  • -l,--language— Bahasa pemrograman yang digunakan untuk template yang Anda tentukan.

    Anda harus menentukan--repositoryatau--languagedan--template.

  • -t,--template- Komponen template yang digunakan untuk proyek komponen lokal. Untuk melihat template yang tersedia, gunakandaftarperintah.

    Anda harus menentukan--repositoryatau--languagedan--template.

  • -n,--name— (Opsional) Nama folder lokal tempat GDK CLI menginisialisasi komponen. Tentukan folder yang tidak ada. GDK CLI membuat folder untuk Anda.

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

Argumen (menginisialisasi dari komponen komunitas)
  • -r,--repository— Komponen komunitas untuk memeriksa ke dalam folder lokal. Untuk melihat komponen komunitas yang tersedia, gunakandaftarperintah.

    Anda harus menentukan--repositoryatau--languagedan--template.

  • -n,--name— (Opsional) Nama folder lokal tempat GDK CLI menginisialisasi komponen. Tentukan folder yang tidak ada. GDK CLI membuat folder untuk Anda.

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

Output

Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini untuk menginisialisasi folder komponen dari templat Python Hello World.

$ gdk component init -l python -t HelloWorld [2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'. [2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.

Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini untuk menginisialisasi folder komponen dari komponen komunitas.

$ gdk component init -r aws-greengrass-labs-database-influxdb [2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'. [2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.

build

Bangun sumber komponen menjadi resep dan artefak yang dapat Anda publikasikan keAWS IoT Greengrasslayanan. CLI GDK menjalankan sistem build yang Anda tentukan diFile konfigurasi CLI,gdk-config.json. Anda harus menjalankan perintah ini di folder yang sama di managdk-config.jsonfile ada.

Ketika Anda menjalankan perintah ini, GDK CLI membuat resep dan artefak digreengrass-buildfolder dalam folder komponen. CLI GDK menyimpan resep digreengrass-build/recipesfolder dan menyimpan artefak digreengrass-build/artifacts/componentName/componentVersionfolder.

Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, resep komponen dapat menentukan artefak yang ada dalam bucket S3 tetapi tidak di folder build komponen lokal. Anda dapat menggunakan fitur ini untuk mengurangi penggunaan bandwidth saat mengembangkan komponen dengan artefak besar, seperti model pembelajaran mesin.

Setelah membuat komponen, Anda dapat melakukan salah satu hal berikut untuk mengujinya pada perangkat inti Greengrass:

  • Jika Anda mengembangkan pada perangkat yang berbeda dari tempat Anda menjalankanAWS IoT GreengrassPerangkat lunak inti, Anda harus mempublikasikan komponen untuk menyebarkan ke perangkat inti Greengrass. Publikasikan komponen keAWS IoT Greengrasslayanan, dan menyebarkan ke perangkat inti Greengrass. Untuk informasi lebih lanjut, lihatmenerbitkanperintah danBuat deployment.

  • Jika Anda mengembangkan pada perangkat yang sama di mana Anda menjalankanAWS IoT GreengrassPerangkat lunak inti, Anda dapat mempublikasikan komponen keAWS IoT Greengrasslayanan untuk menyebarkan, atau Anda dapat membuat penyebaran lokal untuk menginstal dan menjalankan komponen. Untuk membuat penyebaran lokal, gunakan Greengrass CLI. Untuk informasi selengkapnya, lihat Antarmuka Baris Perintah Greengrass dan pengujianAWS IoT Greengrasskomponen dengan penerapan lokal. Saat Anda membuat penyebaran lokal, tentukangreengrass-build/recipessebagai folder resep dangreengrass-build/artifactssebagai folder artefak.

Ringkasan
$ gdk component build
Pendapat

Tidak ada

Output

Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.

$ gdk component build [2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component. [2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2021-11-29 13:18:49] INFO - Zipping source code files of the component. [2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe. [2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.

publish

Publikasikan komponen ini keAWS IoT Greengrasslayanan. Perintah ini upload build artefak ke bucket S3, memperbarui URI artefak dalam resep, dan menciptakan versi baru komponen dari resep. CLI GDK menggunakan bucket S3 danAWSWilayah yang Anda tentukan diFile konfigurasi CLI,gdk-config.json. Anda harus menjalankan perintah ini di folder yang sama di managdk-config.jsonfile ada.

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, GDK CLI mengunggah ke bucket S3 yang namanyabucketPrefix-region-accountId, tempatBucketPrefixdandaerahadalah nilai yang Anda tentukangdk-config.json, danaccountIdadalahAkun AWSID. CLI GDK membuat bucket jika tidak ada.

Ketika Anda menjalankan perintah ini, GDK CLI menerbitkan komponen dengan versi yang Anda tentukan dalam resep. Jika Anda menentukanNEXT_PATCH, GDK CLI menggunakan versi patch berikutnya yang belum ada. Versi semantik menggunakanutama.minor.tambalansistem penomoran. Untuk informasi lebih lanjut, lihat spesifikasi versi semantik.

catatan

Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, ketika Anda menjalankan perintah ini, GDK CLI memeriksa apakah komponen dibangun. Jika komponen tidak dibangun, GDK CLImembangun komponensebelum menerbitkan komponen.

Ringkasan
$ gdk component publish [--bucket]
Pendapat
  • -b,--bucket— (Opsional) Tentukan nama bucket S3 tempat GDK CLI menerbitkan artefak komponen.

    Jika Anda tidak menentukan argumen ini, GDK CLI mengunggah ke bucket S3 yang namanyabucketPrefix-region-accountId, tempatBucketPrefixdandaerahadalah nilai yang Anda tentukangdk-config.json, danaccountIdadalahAkun AWSID.

    CLI GDK membuat bucket jika tidak ada.

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

Output

Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.

$ gdk component publish [2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket. [2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists. [2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0. [2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0 [2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.

Daftar

Ambil daftar templat komponen dan komponen komunitas yang tersedia.

CLI GDK mengambil komponen komunitas dariKatalog Perangkat Lunak Greengrassdan komponen template dariAWS IoT GreengrassKomponen Template repositori di GitHub.

Anda dapat melewati output dari perintah ini keinitperintah untuk menginisialisasi repositori komponen dari template dan komponen komunitas.

Ringkasan
$ gdk component list [--template] [--repository]
Pendapat
  • -t,--template— (Opsional) Tentukan argumen ini untuk mencantumkan templat komponen yang tersedia. Perintah ini menampilkan nama dan bahasa setiap template dalam formatname-language. Misalnya, diHelloWorld-python, nama templatHelloWorlddan bahasanyapython.

  • -r,--repository— (Opsional) Tentukan argumen ini untuk mencantumkan repositori komponen komunitas yang tersedia.

Output

Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.

$ gdk component list --template [2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog. [2021-11-29 12:29:04] INFO - Found '2' component templates to display. 1. HelloWorld-python 2. HelloWorld-java