Bangun gambar kontainer AWS IoT Greengrass dari Dockerfile - AWS IoT Greengrass

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

Bangun gambar kontainer AWS IoT Greengrass dari Dockerfile

AWS menyediakan Dockerfile yang dapat Anda unduh dan gunakan untuk menjalankan perangkat lunak inti AWS IoT Greengrass dalam kontainer Docker. Dockerfile berisi kode sumber untuk membangun citra kontainer AWS IoT Greengrass kustom.

Sebelum Anda membangun sebuah citra kontainer AWS IoT Greengrass, Anda harus mengonfigurasi Dockerfile Anda untuk memilih versi perangkat lunak inti AWS IoT Greengrass yang ingin Anda instal. Anda juga dapat mengonfigurasi variabel lingkungan untuk memilih cara penyediaan sumber daya selama instalasi, dan menyesuaikan opsi instalasi lainnya. Bagian ini menjelaskan cara mengonfigurasi dan membangun gambar Docker AWS IoT Greengrass dari Dockerfile.

Unduh paket Dockerfile

Anda dapat mengunduh paket AWS IoT Greengrass Dockerfile dari: GitHub

AWS Greengrass Docker Repositori

Setelah Anda men-download paket tersebut, ekstraksi kontennya ke download-directory/aws-greengrass-docker-nucleus-version di komputer Anda. Dockerfile menggunakan versi Greengrass yang lebih lama. Anda harus memperbarui file untuk menggunakan versi Greengrass yang Anda inginkan.

Tentukan versi perangkat lunak inti AWS IoT Greengrass

Gunakan argumen bangun berikut di Dockerfile untuk menentukan versi perangkat lunak inti AWS IoT Greengrass yang ingin Anda gunakan di citra Docker AWS IoT Greengrass. Secara default, Dockerfile menggunakan versi terbaru dari perangkat lunak inti AWS IoT Greengrass.

GREENGRASS_RELEASE_VERSION

Versi perangkat lunak inti AWS IoT Greengrass. Secara default, Dockerfile mengunduh versi terbaru yang tersedia dari inti Greengrass. Tetapkan nilai ke versi nukleus yang ingin Anda unduh.

Tetapkan variabel lingkungan

Variabel lingkungan memungkinkan Anda untuk menyesuaikan bagaimana perangkat lunak inti AWS IoT Greengrass diinstal dalam kontainer Docker. Anda dapat mengatur variabel lingkungan untuk gambar Docker AWS IoT Greengrass dalam berbagai cara.

  • Untuk menggunakan variabel lingkungan yang sama untuk membuat beberapa gambar, atur variabel lingkungan langsung di Dockerfile.

  • Jika Anda menggunakan docker run untuk memulai kontainer Anda, lewati variabel lingkungan sebagai argumen dalam perintah, atau atur variabel lingkungan dalam file variabel lingkungan dan kemudian lewati file tersebut sebagai argumen. Untuk informasi selengkapnya tentang pengaturan variabel lingkungan di Docker, lihat variabel lingkungan dalam dokumentasi Docker.

  • Jika Anda menggunakan docker-compose up untuk memulai kontainer Anda, tetapkan file variabel lingkungan dan kemudian lewati file tersebut sebagai argumen. Untuk informasi selengkapnya tentang pengaturan variabel lingkungan di Compose, lihat Dokumentasi docker.

Anda dapat mengonfigurasi variabel lingkungan berikut untuk citra Docker AWS IoT Greengrass.

catatan

Jangan memodifikasi variabel TINI_KILL_PROCESS_GROUP dalam Dockerfile. Variabel ini memungkinkan penerusan SIGTERM ke semua PID dalam grup PID sehingga perangkat lunak AWS IoT Greengrass Core dapat dimatikan dengan benar ketika wadah Docker dihentikan.

GGC_ROOT_PATH

(Opsional) Path ke folder dalam kontainer yang akan digunakan sebagai akar untuk perangkat lunak inti AWS IoT Greengrass.

Default: /greengrass/v2

PROVISION

(Opsional) Menentukan apakah inti AWS IoT Greengrass menyediakan sumber daya AWS.

Default: false

AWS_REGION

(Opsional) Wilayah AWS yang digunakan oleh perangkat lunak inti AWS IoT Greengrass untuk mengambil atau membuat sumber daya AWS yang diperlukan.

Bawaan: us-east-1.

THING_NAME

(Opsional) Nama objek AWS IoT yang Anda daftarkan sebagai perangkat inti ini. Jika objek dengan nama ini tidak ada di Akun AWS Anda, perangkat lunak inti AWS IoT Greengrass akan membuatnya.

Anda harus menentukan PROVISION=true untuk menerapkan argumen ini.

Default: GreengrassV2IotThing_ ditambah UUID acak.

THING_GROUP_NAME

(Opsional) Nama grup objek AWS IoT di mana Anda menambahkan AWS IoT jika deployment menargetkan grup objek ini, hal ini dan perangkat inti lainnya dalam grup tersebut akan menerima deployment tersebut saat tersambung ke AWS IoT Greengrass. Jika grup objek dengan nama ini tidak ada di Akun AWS Anda, perangkat lunak inti AWS IoT Greengrass akan membuatnya.

Anda harus menentukan PROVISION=true untuk menerapkan argumen ini.

TES_ROLE_NAME

(Opsional) Nama IAM role yang akan digunakan untuk memperoleh kredensial AWS yang memungkinkan perangkat inti Greengrass berinteraksi dengan layanan AWS. Jika objek dengan nama itu tidak ada di Akun AWS Anda, perangkat lunak inti AWS IoT Greengrass akan membuatnya dengan kebijakan GreengrassV2TokenExchangeRoleAccess. Peran ini tidak memiliki akses ke bucket S3 tempat Anda meng-hosting artefak komponen. Jadi, Anda harus menambahkan izin pada bucket S3 dan objek artefak Anda ketika Anda membuat komponen. Untuk informasi selengkapnya, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan.

Default: GreengrassV2TokenExchangeRole

TES_ROLE_ALIAS_NAME

(Opsional) Nama alias peran AWS IoT yang menunjuk ke IAM role yang menyediakan kredensial AWS untuk perangkat lunak inti Greengrass tersebut. Jika alias peran dengan nama ini tidak ada di Akun AWS, perangkat lunak inti AWS IoT Greengrass akan membuatnya dan mengarahkannya ke IAM role yang Anda tentukan.

Default: GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(Opsional) Nama atau ID dari pengguna sistem dan grup yang digunakan oleh perangkat lunak inti AWS IoT Greengrass untuk menjalankan komponen. Tentukan pengguna dan grup, yang dipisahkan dengan titik dua. Grup ini opsional. Misalnya, Anda dapat menentukan ggc_user:ggc_group atau ggc_user.

  • Jika Anda berjalan sebagai root, hal ini akan menjadi default untuk pengguna dan grup yang ditentukan oleh file konfigurasi. Jika file konfigurasi tersebut tidak menentukan pengguna dan grup, default-nya menjadi ggc_user:ggc_group. Jika ggc_user atau ggc_group tidak ada, perangkat lunak akan membuatnya.

  • Jika Anda berjalan sebagai pengguna non-root, perangkat lunak inti AWS IoT Greengrass akan menggunakan pengguna tersebut untuk menjalankan komponen.

  • Jika Anda tidak menentukan grup, perangkat lunak inti AWS IoT Greengrass akan menggunakan grup utama dari pengguna sistem.

Untuk informasi selengkapnya, lihat Konfigurasikan pengguna yang menjalankan komponen.

DEPLOY_DEV_TOOLS

Mendefinisikan apakah akan mengunduh dan menyebarkan komponen CLI Greengrass dalam gambar kontainer. Anda dapat menggunakan Greengrass CLI untuk mengembangkan dan men-debug komponen lokal.

penting

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.

Default: false

INIT_CONFIG

(Opsional) Path ke file konfigurasi yang akan digunakan untuk menginstal perangkat lunak inti AWS IoT Greengrass. Anda dapat menggunakan opsi ini untuk mengatur perangkat inti Greengrass baru dengan konfigurasi inti tertentu, atau untuk menentukan sumber daya yang ditetapkan secara manual, misalnya. Anda harus memasang file konfigurasi Anda ke jalur yang Anda tentukan dalam argumen ini.

TRUSTED_PLUGIN

Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.

(Opsional) Jalur ke file JAR untuk dimuat sebagai plugin tepercaya. Gunakan opsi ini untuk menyediakan file JAR plugin penyediaan, seperti menginstal dengan penyediaan armada atau penyediaan khusus.

THING_POLICY_NAME

Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.

(Opsional) Nama AWS IoT kebijakan untuk dilampirkan ke sertifikat AWS IoT benda perangkat inti ini. Jika AWS IoT kebijakan dengan nama ini tidak ada di perangkat lunak AWS IoT Greengrass Core Anda Akun AWS membuatnya.

Anda harus menentukan PROVISION=true untuk menerapkan argumen ini.

catatan

Perangkat lunak AWS IoT Greengrass Core membuat AWS IoT kebijakan permisif secara default. Anda dapat menjelaskan kebijakan ini, atau membuat kebijakan khusus yang membatasi izin untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat Kebijakan AWS IoT minimal untuk perangkat inti AWS IoT Greengrass V2.

Tentukan dependensi yang akan dipasang

Instruksi RUN di Dockerfile AWS IoT Greengrass mempersiapkan lingkungan kontainer untuk menjalankan penginstal perangkat lunak inti AWS IoT Greengrass. Anda dapat menyesuaikan dependensi yang diinstal sebelum penginstal perangkat lunak inti AWS IoT Greengrass berjalan di kontainer Docker.

Bangun citra AWS IoT Greengrass

Gunakan Dockerfile AWS IoT Greengrass untuk membangun citra kontainer AWS IoT Greengrass. Anda dapat menggunakan CLI Docker atau Docker Compose CLI untuk membangun citra dan memulai kontainer tersebut. Anda juga dapat menggunakan CLI Docker untuk membangun citra dan kemudian menggunakan Docker Compose untuk memulai kontainer Anda dari citra tersebut.

Docker
  1. Pada mesin host, jalankan perintah berikut untuk beralih ke direktori yang berisi Dockerfile yang dikonfigurasi.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Jalankan perintah berikut untuk membangun gambar kontainer AWS IoT Greengrass dari Dockerfile.

    sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
Docker Compose
  1. Pada mesin host, jalankan perintah berikut untuk beralih ke direktori yang berisi Dockerfile dan file Compose.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Jalankan perintah berikut untuk menggunakan file Compose untuk membangun citra kontainer AWS IoT Greengrass.

    docker-compose -f docker-compose.yml build

Anda telah berhasil membuat citra kontainer AWS IoT Greengrass. Gambar Docker memiliki perangkat lunak inti AWS IoT Greengrass yang terinstal. Anda sekarang dapat menjalankan perangkat lunak inti AWS IoT Greengrass dalam kontainer Docker