Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan AWS IoT Greengrass dalam wadah Docker dengan penyediaan sumber daya otomatis
Tutorial ini menunjukkan cara menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker dengan AWS sumber daya yang disediakan secara otomatis dan alat pengembangan lokal. Anda dapat menggunakan lingkungan pengembangan ini untuk menjelajahi AWS IoT Greengrass fitur dalam wadah Docker. Perangkat lunak ini membutuhkan AWS kredensyal untuk menyediakan sumber daya ini dan menyebarkan alat pengembangan lokal.
Jika Anda tidak dapat memberikan AWS kredensi ke penampung, Anda dapat menyediakan AWS sumber daya yang dibutuhkan perangkat inti untuk beroperasi. Anda juga dapat men-deploy alat pengembangan ke perangkat inti untuk digunakan sebagai perangkat pengembangan. Ini memungkinkan Anda memberikan lebih sedikit izin ke perangkat saat Anda menjalankan penampung. Untuk informasi selengkapnya, lihat Jalankan AWS IoT Greengrass dalam kontainer Docker dengan penyediaan sumber daya manual.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut ini:
-
Sebuah Akun AWS. Jika Anda tidak memilikinya, lihat Menyiapkan sebuah Akun AWS.
-
AWS IAMPengguna dengan izin untuk menyediakan AWS IoT dan IAM sumber daya untuk perangkat inti Greengrass. Penginstal perangkat lunak AWS IoT Greengrass Core menggunakan AWS kredensyal Anda untuk secara otomatis menyediakan sumber daya ini. Untuk informasi tentang IAM kebijakan minimal untuk menyediakan sumber daya secara otomatis, lihatKebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya.
-
Sebuah gambar AWS IoT Greengrass Docker. Anda dapat membuat gambar dari AWS IoT Greengrass Dockerfile.
-
Komputer host tempat Anda menjalankan wadah Docker harus memenuhi persyaratan berikut:
-
Sistem operasi berbasis Linux dengan koneksi internet.
-
Mesin Docker
versi 18.09 atau yang lebih baru. -
(Opsional) Docker Compose
versi 1.22 atau yang lebih baru. Docker Compose hanya diperlukan jika Anda ingin menggunakan Docker Compose CLI untuk menjalankan image Docker Anda.
-
Konfigurasikan kredensial AWS Anda
Pada langkah ini, Anda membuat file kredensial pada komputer host yang berisi kredensial keamanan AWS
. Saat Anda menjalankan image AWS IoT Greengrass Docker, Anda harus me-mount folder yang berisi file kredensi ini ke /root/.aws/
dalam wadah Docker. AWS IoT Greengrass Pemasang menggunakan kredensyal ini untuk menyediakan sumber daya di Anda. Akun AWS Untuk informasi tentang IAM kebijakan minimal yang diperlukan penginstal untuk menyediakan sumber daya secara otomatis, lihatKebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya.
-
Ambil salah satu dari yang berikut ini.
-
Kredensyal jangka panjang untuk pengguna. IAM Untuk informasi tentang cara mengambil kredensi jangka panjang, lihat Mengelola kunci akses untuk IAM pengguna di Panduan Pengguna. IAM
-
(Direkomendasikan) Kredensyal sementara untuk suatu IAM peran. Untuk informasi tentang cara mengambil kredenal sementara, lihat Menggunakan kredenal keamanan sementara dengan di AWS CLI Panduan Pengguna. IAM
-
-
Buat folder tempat Anda menempatkan file kredensial Anda.
mkdir ./greengrass-v2-credentials
-
Gunakan editor teks untuk membuat file konfigurasi bernama
credentials
di folder./greengrass-v2-credentials
.Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat
credentials
file.nano ./greengrass-v2-credentials/credentials
-
Tambahkan AWS kredensyal Anda ke
credentials
file dalam format berikut.[default] aws_access_key_id =
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key =wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token =AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
Sertakan
aws_session_token
untuk kredensial sementara saja.
penting
Hapus file kredensyal dari komputer host setelah Anda memulai AWS IoT Greengrass wadah. Jika Anda tidak menghapus file kredensialnya, AWS kredensyal Anda akan tetap terpasang di dalam wadah. Untuk informasi selengkapnya, lihat Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah.
Buat sebuah file lingkungan.
Tutorial ini menggunakan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke installer perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Anda juga dapat menggunakan argumen -e
atau --env
docker run
Anda untuk mengatur variabel lingkungan dalam kontainer Docker atau Anda dapat mengatur variabel dalam sebuah blok environment
docker-compose.yml
.
-
Gunakan editor teks untuk membuat file lingkungan bernama
.env
.Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat
.env
di direktori saat ini.nano .env
-
Salin konten berikut ke dalam file tersebut.
GGC_ROOT_PATH=
AWS_REGION=/greengrass/v2
region
PROVISION=true THING_NAME=MyGreengrassCore
THING_GROUP_NAME=MyGreengrassCoreGroup
TES_ROLE_NAME=GreengrassV2TokenExchangeRole
TES_ROLE_ALIAS_NAME=GreengrassCoreTokenExchangeRoleAlias
COMPONENT_DEFAULT_USER=ggc_user:ggc_groupAnda harus mengganti nilai berikut.
-
. Folder root Greengrass yang ingin Anda gunakan untuk instalasi. Anda dapat menggunakan variabel lingkungan/greengrass/v2
GGC_ROOT
untuk menetapkan nilai ini. -
region
. Di Wilayah AWS mana Anda menciptakan sumber daya. -
MyGreengrassCore
. Nama AWS IoT benda itu. Jika objek tidak ada, installer akan membuatnya. Pemasang mengunduh sertifikat untuk diautentikasi sebagai masalahnya. AWS IoT -
MyGreengrassCoreGroup
. Nama kelompok AWS IoT benda. Jika grup objek tidak ada, installer akan membuatnya dan menambahkan objek padanya. Jika grup objek ada dan memiliki deployment yang aktif, perangkat inti akan men-download dan menjalankan perangkat lunak yang ditetapkan oleh deployment. -
GreengrassV2TokenExchangeRole
. Ganti dengan nama peran pertukaran IAM token yang memungkinkan perangkat inti Greengrass mendapatkan kredensi sementara. AWS Jika peran tidak ada, penginstal akan membuatnya dan membuat serta melampirkan kebijakan bernamaGreengrassV2TokenExchangeRole
Access. Untuk informasi selengkapnya, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan. -
GreengrassCoreTokenExchangeRoleAlias
. Alias peran pertukaran token. Jika alias peran tidak ada, penginstal membuatnya dan mengarahkannya ke peran pertukaran IAM token yang Anda tentukan. Untuk informasi selengkapnya, silakan lihat
catatan
Anda dapat mengatur variabel
DEPLOY_DEV_TOOLS
lingkungantrue
untuk menyebarkan komponen CLIGreengrass, yang memungkinkan Anda mengembangkan komponen khusus di dalam wadah Docker. Kami menyarankan Anda menggunakan komponen ini hanya di lingkungan pengembangan, bukan lingkungan produksi. Komponen ini menyediakan akses ke informasi dan operasi yang biasanya tidak Anda perlukan di lingkungan produksi. Ikuti prinsip hak istimewa paling sedikit dengan menerapkan komponen ini hanya ke perangkat inti di mana Anda membutuhkannya. -
Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah
Tutorial ini menunjukkan cara memulai gambar Docker yang Anda buat di wadah Docker. Anda dapat menggunakan Docker CLI atau Docker Compose CLI untuk menjalankan image perangkat lunak AWS IoT Greengrass Core dalam wadah Docker.
Langkah selanjutnya
AWS IoT Greengrass Perangkat lunak inti sekarang berjalan dalam wadah Docker. Jalankan perintah berikut untuk mengambil ID kontainer untuk kontainer yang sedang berjalan.
docker ps
Anda kemudian dapat menjalankan perintah berikut untuk mengakses wadah dan menjelajahi perangkat lunak AWS IoT Greengrass Core yang berjalan di dalam wadah.
docker exec -it
container-id
/bin/bash
Untuk informasi tentang membuat komponen sederhana, lihat Langkah 4: Kembangkan dan uji komponen di perangkat Anda di Tutorial: Memulai dengan AWS IoT Greengrass V2
catatan
Saat Anda menggunakan docker exec
untuk menjalankan perintah di dalam kontainer Docker, perintah tersebut tidak tercatat di log Docker. Untuk mencatat perintah Anda di log Docker, lampirkan shell interaktif ke kontainer Docker. Untuk informasi selengkapnya, lihat Lampirkan shell interaktif ke kontainer Docker.
File log AWS IoT Greengrass Core dipanggil greengrass.log
dan terletak di
. File log komponen juga terletak di direktori yang sama. Untuk menyalin log Greengrass ke direktori sementara pada host, jalankan perintah berikut:
/logs/greengrass/v2
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
Jika Anda ingin mempertahankan log setelah keluar kontainer atau telah dihapus, kami sarankan Anda hanya melakukan bind-mount pada direktori
ke direktori log sementara pada host dan bukan memasang seluruh direktori Greengrass. Untuk informasi selengkapnya, lihat Pertahankan log Greengrass di luar kontainer Docker.
/logs/greengrass/v2
Untuk menghentikan kontainer AWS IoT Greengrass Docker yang sedang berjalan, jalankan docker
stop
ataudocker-compose -f docker-compose.yml stop
. Tindakan ini akan mengirimkan SIGTERM
ke proses Greengrass dan menutup semua proses terkait yang dimulai dalam kontainer tersebut. Wadah Docker diinisialisasi dengan docker-init
executable sebagai process PID 1, yang membantu menghapus proses zombie yang tersisa. Untuk informasi selengkapnya, lihat Menentukan proses init
Untuk informasi tentang pemecahan masalah dengan menjalankan AWS IoT Greengrass dalam kontainer Docker, lihat Pemecahan masalah AWS IoT Greengrass dalam wadah Docker.