Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah 5: Buat komponen Anda dalam AWS IoT Greengrass layanan
Ketika Anda selesai mengembangkan komponen pada perangkat inti Anda, Anda dapat mengunggahnya ke AWS IoT Greengrass
layanan di AWS Cloud. Anda juga dapat langsung membuat komponen di AWS IoT Greengrass konsol
-
Unggah artefak komponen ke bucket S3.
-
Tambahkan Amazon Simple Storage Service (Amazon S3) URI setiap artefak ke resep komponen.
-
Buat komponen AWS IoT Greengrass dari resep komponen.
Di bagian ini, Anda menyelesaikan langkah-langkah ini pada perangkat inti Greengrass Anda untuk mengunggah komponen Hello World Anda ke layanan. AWS IoT Greengrass
-
Gunakan bucket S3 di AWS akun Anda untuk meng-host artefak AWS IoT Greengrass komponen. Saat Anda men-deploy komponen ke perangkat inti, perangkat akan mengunduh artefak komponen dari bucket.
Anda dapat menggunakan bucket S3 yang sudah ada, atau Anda dapat membuat bucket baru.
-
Di konsol Amazon S3
, di bawah Bucket, pilih Buat ember. -
Untuk nama Bucket, masukkan nama bucket yang unik. Misalnya, Anda dapat menggunakan
greengrass-component-artifacts-
. Gantiregion
-123456789012
123456789012
dengan ID AWS akun Anda danregion
dengan Wilayah AWS yang Anda gunakan untuk tutorial ini. -
Untuk AWS wilayah, pilih AWS Wilayah yang Anda gunakan untuk tutorial ini.
-
Pilih Buat bucket.
-
Di bawah Bucket, pilih bucket yang Anda buat, unggah
hello_world.py
skrip keartifacts/com.example.HelloWorld/1.0.0
folder di bucket. Untuk informasi tentang mengunggah objek ke bucket S3, lihat Mengunggah objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. -
Salin S3 URI
hello_world.py
objek di ember S3. Ini URI akan terlihat mirip dengan contoh berikut. Ganti amzn-s3-demo-bucket dengan nama bucket S3.s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
-
-
Izinkan perangkat inti mengakses artefak komponen dalam bucket S3.
Setiap perangkat inti memiliki IAMperan perangkat inti yang memungkinkannya berinteraksi AWS IoT dan mengirim log ke AWS Cloud. Peran perangkat ini tidak mengizinkan akses ke bucket S3 secara default, sehingga Anda harus membuat dan melampirkan kebijakan yang memungkinkan perangkat inti mengambil artefak komponen dari bucket S3.
Jika peran perangkat Anda sudah memungkinkan akses ke bucket S3, Anda dapat melewati langkah ini. Jika tidak, buat IAM kebijakan yang memungkinkan akses dan lampirkan ke peran, sebagai berikut:
-
Di menu navigasi IAMkonsol
, pilih Kebijakan, lalu pilih Buat kebijakan. -
Pada JSONtab, ganti konten placeholder dengan kebijakan berikut. Ganti amzn-s3-demo-bucket dengan nama bucket S3 yang berisi artefak komponen untuk diunduh perangkat inti.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Pilih Berikutnya.
-
Di bagian Detail kebijakan, untuk Nama, masukkan
MyGreengrassV2ComponentArtifactPolicy
. -
Pilih Buat kebijakan.
-
Di menu navigasi IAMkonsol
, pilih Peran, lalu pilih nama peran untuk perangkat inti. Anda menentukan nama peran ini saat menginstal perangkat lunak AWS IoT Greengrass Inti. Jika Anda tidak menentukan nama, defaultnya adalah GreengrassV2TokenExchangeRole
. -
Di bawah Izin, pilih Tambahkan izin, lalu pilih Lampirkan kebijakan.
-
Pada halaman Tambahkan izin, pilih kotak centang di samping
MyGreengrassV2ComponentArtifactPolicy
kebijakan yang Anda buat, lalu pilih Tambahkan izin.
-
-
Gunakan resep komponen untuk membuat komponen di AWS IoT Greengrass konsol
. -
Di menu navigasi AWS IoT Greengrass konsol
, pilih Komponen, lalu pilih Buat komponen. -
Di bawah Informasi komponen, pilih Masukkan resep sebagai JSON. Resep placeholder akan terlihat mirip dengan contoh berikut.
{ "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}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] } ] }
-
Ganti placeholder URI di setiap
Artifacts
bagian dengan S3 objek AndaURI.hello_world.py
-
Pilih Buat komponen.
-
Di com.example. HelloWorldhalaman komponen, verifikasi bahwa Status komponen adalah Deployable.
-
Untuk mengunggah komponen Hello World anda
-
Gunakan bucket S3 di artefak AWS IoT Greengrass komponen Anda Akun AWS untuk meng-host. Saat Anda men-deploy komponen ke perangkat inti, perangkat akan mengunduh artefak komponen dari bucket.
Anda dapat menggunakan bucket S3 yang ada, atau menjalankan perintah berikut untuk membuat bucket. Perintah ini membuat bucket dengan Akun AWS ID Anda dan Wilayah AWS untuk membentuk nama bucket yang unik. Ganti
123456789012
dengan Akun AWS ID Anda danregion
dengan Wilayah AWS yang Anda gunakan untuk tutorial ini.aws s3 mb s3://greengrass-component-artifacts-
123456789012
-region
Perintah ini mengeluarkan informasi berikut jika permintaan berhasil.
make_bucket: greengrass-component-artifacts-
123456789012
-region
-
Izinkan perangkat inti mengakses artefak komponen dalam bucket S3.
Setiap perangkat inti memiliki IAMperan perangkat inti yang memungkinkannya berinteraksi dengan AWS IoT dan mengirim log ke file AWS Cloud. Peran perangkat ini tidak mengizinkan akses ke bucket S3 secara default, sehingga Anda harus membuat dan melampirkan kebijakan yang memungkinkan perangkat inti mengambil artefak komponen dari bucket S3.
Jika peran perangkat inti sudah memungkinkan akses ke bucket S3, Anda dapat melewati langkah ini. Jika tidak, buat IAM kebijakan yang memungkinkan akses dan lampirkan ke peran, sebagai berikut:
-
Buat file bernama
component-artifact-policy.json
dan salin berikut ini JSON ke dalam file. Kebijakan ini memungkinkan akses ke semua file dalam bucket S3. Ganti amzn-s3-demo-bucket dengan nama bucket S3.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Jalankan perintah berikut untuk membuat kebijakan dari dokumen kebijakan di
component-artifact-policy.json
.Salin kebijakan Amazon Resource Name (ARN) dari metadata kebijakan di output. Anda menggunakan ini ARN untuk melampirkan kebijakan ini ke peran perangkat inti di langkah berikutnya.
-
Jalankan perintah berikut untuk melampirkan kebijakan tersebut pada peran perangkat inti. Ganti
GreengrassV2TokenExchangeRole
dengan nama peran untuk perangkat inti. Anda menentukan nama peran ini saat menginstal perangkat lunak AWS IoT Greengrass Inti. Ganti kebijakan ARN dengan ARN dari langkah sebelumnya.Jika perintah tidak memiliki output, itu berhasil. Perangkat inti sekarang dapat mengakses artefak yang Anda unggah ke bucket S3 ini.
-
-
Unggah artefak skrip Python Hello World ke bucket S3.
Jalankan perintah berikut untuk mengunggah skrip ke jalur yang sama di bucket tempat skrip ada di AWS IoT Greengrass inti Anda. Ganti amzn-s3-demo-bucket dengan nama bucket S3.
Perintah itu mengeluarkan baris yang dimulai dengan
upload:
jika permintaan berhasil. -
Tambahkan Amazon URI S3 artefak ke resep komponen.
Amazon S3 URI terdiri dari nama bucket dan path ke objek artefak di bucket. Amazon URI S3 artefak skrip Anda adalah URI tempat Anda mengunggah artefak pada langkah sebelumnya. Ini URI akan terlihat mirip dengan contoh berikut. Ganti amzn-s3-demo-bucket dengan nama bucket S3.
s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
Untuk menambahkan artefak ke resep, tambahkan daftar
Artifacts
yang berisi struktur dengan Amazon URI S3. -
Buat sumber daya komponen AWS IoT Greengrass dari resep. Jalankan perintah berikut untuk membuat komponen dari resep, yang Anda sediakan sebagai file biner.
Responsnya terlihat seperti contoh berikut jika permintaan berhasil.
{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "Mon Nov 30 09:04:05 UTC 2020", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }Salin
arn
dari output untuk memeriksa keadaan komponen pada langkah berikutnya.catatan
Anda juga dapat melihat komponen Hello World di Konsol AWS IoT Greengrass
pada halaman Komponen. -
Verifikasi bahwa komponen tersebut terbuat dan siap untuk di-deploy. Ketika Anda membuat komponen, keadaannya adalah
REQUESTED
. Kemudian, AWS IoT Greengrass memvalidasi bahwa komponen tersebut dapat di-deploy. Anda dapat menjalankan perintah berikut untuk melakukan kueri atas status komponen dan memverifikasi bahwa komponen Anda dapat di-deploy. Gantiarn
dengan ARN dari langkah sebelumnya.aws greengrassv2 describe-component --arn "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0"Jika komponen tervalidasi, respons akan menunjukkan bahwa keadaan komponen adalah
DEPLOYABLE
.{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2020-11-30T18:04:05.823Z", "publisher": "Amazon", "description": "My first Greengrass component.", "status": { "componentState": "DEPLOYABLE", "message": "NONE", "errors": {} }, "platforms": [ { "os": "linux", "architecture": "all" } ] }
Komponen Hello World Anda sekarang tersedia di AWS IoT Greengrass. Anda dapat men-deploy-nya kembali ke perangkat inti Greengrass ini atau ke perangkat inti lainnya.