

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

# IoT
<a name="iot-pattern-list"></a>

**Topics**
+ [Ekstrak dan kueri atribut AWS IoT SiteWise metadata di danau data](extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake.md)
+ [Mengatur dan memecahkan masalah AWS IoT Greengrass dengan perangkat klien](set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.md)
+ [Lebih banyak pola](iot-more-patterns-pattern-list.md)

# Ekstrak dan kueri atribut AWS IoT SiteWise metadata di danau data
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake"></a>

*Ambarish Dongaonkar, Amazon Web Services*

## Ringkasan
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-summary"></a>

AWS IoT SiteWise menggunakan model aset dan hierarki untuk mewakili peralatan, proses, dan fasilitas industri Anda. Setiap model atau aset dapat memiliki beberapa atribut yang spesifik untuk lingkungan Anda. Contoh atribut metadata mencakup lokasi atau lokasi fisik aset, detail pabrik, dan pengidentifikasi peralatan. Nilai atribut ini melengkapi data pengukuran aset untuk memaksimalkan nilai bisnis. Pembelajaran mesin (ML) dapat memberikan wawasan tambahan tentang metadata ini dan merampingkan tugas-tugas rekayasa.

Namun, atribut metadata tidak dapat ditanyakan langsung dari layanan. AWS IoT SiteWise Untuk membuat atribut dapat dikueri, Anda harus mengekstrak dan menelannya ke dalam danau data. Pola ini menggunakan skrip Python untuk mengekstrak atribut untuk semua AWS IoT SiteWise aset dan memasukkannya ke dalam data lake di bucket Amazon Simple Storage Service (Amazon S3). Setelah menyelesaikan proses ini, Anda dapat menggunakan kueri SQL di Amazon Athena untuk mengakses AWS IoT SiteWise atribut metadata dan kumpulan data lainnya, seperti kumpulan data pengukuran. Informasi atribut metadata juga berguna saat bekerja dengan AWS IoT SiteWise monitor atau dasbor. Anda juga dapat membuat [dasbor Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) dengan menggunakan atribut yang diekstrak di bucket Amazon S3.

Pola memiliki kode referensi, dan Anda dapat menerapkan kode dengan menggunakan layanan komputasi terbaik untuk kasus penggunaan Anda, seperti AWS Lambda atau AWS Glue.

## Prasyarat dan batasan
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ Izin untuk mengatur AWS Lambda fungsi atau AWS Glue pekerjaan.
+ Bucket Amazon S3.
+ Model aset dan hierarki diatur dalam AWS IoT SiteWise. Untuk informasi selengkapnya, lihat [Membuat model aset](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-asset-models.html) dalam AWS IoT SiteWise dokumentasi.

## Arsitektur
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-architecture"></a>

Anda dapat menggunakan fungsi Lambda atau AWS Glue pekerjaan untuk menyelesaikan proses ini. Kami merekomendasikan menggunakan Lambda jika Anda memiliki kurang dari 100 model dan setiap model memiliki rata-rata 15 atau lebih sedikit atribut. Untuk semua kasus penggunaan lainnya, kami sarankan untuk menggunakan AWS Glue.

Arsitektur solusi dan alur kerja ditunjukkan pada diagram berikut.

![\[Diagram arsitektur yang menunjukkan proses ekstraksi dan kueri yang dijelaskan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/22b59ff7-3df3-4a5b-9973-d43967bd58fd/images/fa3d80bf-df9a-49fe-971c-a055339b2cd2.png)


1.  AWS Glue Pekerjaan terjadwal atau fungsi Lambda berjalan. Ini mengekstrak atribut metadata aset dari AWS IoT SiteWise dan mencernanya ke dalam bucket Amazon S3.

1.  AWS Glue Crawler merayapi data yang diekstraksi di bucket Amazon S3 dan membuat tabel dalam file. AWS Glue Data Catalog

1. Menggunakan SQL standar, Amazon Athena menanyakan tabel di file. AWS Glue Data Catalog

**Otomatisasi dan skala**

Anda dapat menjadwalkan fungsi atau AWS Glue pekerjaan Lambda untuk dijalankan setiap hari atau mingguan, sesuai dengan frekuensi pembaruan konfigurasi AWS IoT SiteWise aset Anda.

Tidak ada batasan jumlah AWS IoT SiteWise aset yang dapat diproses oleh kode sampel, tetapi sejumlah besar aset dapat meningkatkan jumlah waktu yang dibutuhkan untuk menyelesaikan proses.

## Alat
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)membantu Anda mengumpulkan, memodelkan, menganalisis, dan memvisualisasikan data dari peralatan industri dalam skala besar.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)adalah kit pengembangan perangkat lunak yang membantu Anda mengintegrasikan aplikasi, perpustakaan, atau skrip Python Anda. Layanan AWS

## Epik
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-epics"></a>

### Mengatur pekerjaan atau fungsi
<a name="set-up-the-job-or-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan izin di IAM. | Di konsol IAM, berikan izin ke peran IAM yang diasumsikan oleh fungsi atau AWS Glue tugas Lambda untuk melakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake.html)Untuk informasi selengkapnya, lihat [Membuat peran Layanan AWS untuk](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) dokumentasi IAM. | AWS Umum | 
| Buat fungsi atau AWS Glue pekerjaan Lambda. | Jika Anda menggunakan Lambda, buat fungsi Lambda baru. Untuk **Runtime**, pilih **Python**. Untuk informasi selengkapnya, lihat [Membangun fungsi Lambda dengan Python di](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) dokumentasi Lambda.Jika Anda menggunakan AWS Glue, buat pekerjaan shell Python baru di konsol. AWS Glue Untuk informasi selengkapnya, lihat [Menambahkan pekerjaan shell Python](https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html#create-job-python-properties) di dokumentasi. AWS Glue   | AWS Umum | 
| Perbarui fungsi atau AWS Glue pekerjaan Lambda. | Ubah fungsi atau AWS Glue pekerjaan Lambda baru, dan masukkan contoh kode di bagian [Informasi tambahan](#extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-additional). Ubah kode sesuai kebutuhan untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Mengedit kode menggunakan editor konsol](https://docs.aws.amazon.com/lambda/latest/dg/foundation-console.html#code-editor) di dokumentasi Lambda dan lihat [Bekerja dengan skrip](https://docs.aws.amazon.com/glue/latest/dg/console-edit-script.html) dalam dokumentasi.AWS Glue  | AWS Umum | 

### Jalankan pekerjaan atau fungsi
<a name="run-the-job-or-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan fungsi atau AWS Glue pekerjaan Lambda. | Jalankan fungsi atau AWS Glue pekerjaan Lambda. Untuk informasi selengkapnya, lihat [Memanggil fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#get-started-invoke-manually) di dokumentasi Lambda atau [lihat Memulai pekerjaan menggunakan](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html) pemicu dalam dokumentasi. AWS Glue Ini mengekstrak atribut metadata untuk aset dan model dalam AWS IoT SiteWise hierarki dan menyimpannya di bucket Amazon S3 yang ditentukan. | AWS Umum | 
| Siapkan AWS Glue crawler. | Siapkan AWS Glue crawler dengan pengklasifikasi format yang diperlukan untuk file berformat CSV. Gunakan bucket Amazon S3 dan detail awalan yang digunakan dalam fungsi atau pekerjaan Lambda. AWS Glue Untuk informasi selengkapnya, lihat [Mendefinisikan crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) dalam dokumentasi. AWS Glue  | AWS Umum | 
| Jalankan AWS Glue crawler. | Jalankan crawler untuk memproses file data yang dibuat oleh fungsi AWS Glue atau pekerjaan Lambda. Crawler membuat tabel dalam yang ditentukan AWS Glue Data Catalog. Untuk informasi selengkapnya, lihat atau [Memulai crawler menggunakan pemicu](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html) dalam dokumentasi. AWS Glue  | AWS Umum | 
| Kueri atribut metadata. | Menggunakan Amazon Athena, gunakan SQL standar untuk menanyakan sesuai AWS Glue Data Catalog kebutuhan untuk kasus penggunaan Anda. Anda dapat bergabung dengan tabel atribut metadata dengan database dan tabel lainnya. Untuk informasi selengkapnya, lihat [Memulai](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html) di dokumentasi Amazon Athena. | AWS Umum | 

## Sumber daya terkait
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-resources"></a>
+ [Dokumentasi Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html)
+ [AWS Glue dokumentasi](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)
+ [AWS IoT SiteWise Referensi API](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotsitewise/index.html)
+ [AWS IoT SiteWise panduan pengguna](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)
  + [Mulai menggunakan](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/getting-started.html)
  + [Pemodelan aset industri](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/industrial-asset-models.html)
  + [Mendefinisikan hubungan antara model aset (hierarki)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html)
  + [Mengasosiasikan dan memisahkan aset](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/add-associated-assets.html)
  + [Membuat AWS IoT SiteWise demo](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/getting-started-demo.html#create-getting-started-demo)
+ [IOTSiteWise](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotsitewise.html) (SDK untuk dokumentasi Python)
+ [Dokumentasi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)

## Informasi tambahan
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-additional"></a>

**Kode**

Kode sampel yang disediakan adalah untuk referensi, dan Anda dapat menyesuaikan kode ini sesuai kebutuhan untuk kasus penggunaan Anda.

```
# Following code can be used in an AWS Lambda function or in an AWS Glue Python shell job. 
# IAM roles used for this job need read access to the AWS IoT SiteWise service and write access to the S3 bucket.
sw_client = boto3.client('iotsitewise')
s3_client = boto3.client('s3')
output = io.StringIO()
 
attribute_list=[]
bucket = '{3_bucket name}'
prefix = '{s3_bucket prefix}'
output.write("model_id,model_name,asset_id,asset_name,attribuet_id,attribute_name,attribute_value\n")
     
m_resp = sw_client.list_asset_models()
for m_rec in m_resp['assetModelSummaries']:
     model_id = m_rec['id']
     model_name = m_rec['name']
 
     attribute_list.clear()
     dam_response = sw_client.describe_asset_model(assetModelId=model_id)
     for rec in dam_response['assetModelProperties']:
         if 'attribute' in rec['type']:
            attribute_list.append(rec['name'])
     
     response = sw_client.list_assets(assetModelId=model_id, filter='ALL')
     for asset in response['assetSummaries']:
         asset_id = asset['id']
         asset_name = asset['name']
         resp = sw_client.describe_asset(assetId=asset_id)
         for rec in resp['assetProperties']:
            if rec['name'] in attribute_list:
                p_resp = sw_client.get_asset_property_value(assetId=asset_id, propertyId=rec['id'])
                if 'propertyValue' in p_resp:
                    if p_resp['propertyValue']['value']:
                        if 'stringValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['stringValue']) + "\n")                             
                        if 'doubleValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['doubleValue']) + "\n")
                        if 'integerValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['integerValue']) + "\n")
                         if 'booleanValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['booleanValue']) + "\n")
 
output.seek(0)
s3_client.put_object(Bucket=bucket, Key= prefix + '/data.csv', Body=output.getvalue())
output.close()
```

# Mengatur dan memecahkan masalah AWS IoT Greengrass dengan perangkat klien
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices"></a>

*Marouane Sefiani dan Akalanka De Silva, Amazon Web Services*

## Ringkasan
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-summary"></a>

AWS IoT Greengrass adalah runtime edge open-source dan layanan cloud untuk membangun, menerapkan, dan mengelola perangkat lunak Internet of Things (IoT) pada perangkat edge. Kasus penggunaan untuk AWS IoT Greengrass meliputi:
+ Rumah pintar tempat gateway AWS IoT Greengrass digunakan sebagai hub untuk otomatisasi rumah
+ Pabrik pintar tempat AWS IoT Greengrass dapat memfasilitasi konsumsi dan pemrosesan data lokal dari lantai toko

AWS IoT Greengrass dapat bertindak sebagai titik akhir koneksi MQTT yang aman dan terautentikasi untuk perangkat edge lainnya (*juga dikenal* sebagai perangkat klien), yang biasanya akan terhubung langsung ke AWS IoT Core. Kemampuan ini berguna ketika perangkat klien tidak memiliki akses jaringan langsung ke titik akhir AWS IoT Core.

Anda dapat mengatur AWS IoT Greengrass untuk digunakan dengan perangkat klien untuk kasus penggunaan berikut:
+ Untuk perangkat klien untuk mengirim data ke AWS IoT Greengrass
+ Untuk AWS IoT Greengrass untuk meneruskan data ke AWS IoT Core
+ Untuk memanfaatkan fitur engine aturan AWS IoT Core yang canggih

Kemampuan ini memerlukan penginstalan dan konfigurasi komponen berikut pada perangkat AWS IoT Greengrass:
+ Pialang MQTT
+ Jembatan MQTT
+ Otentikasi perangkat klien
+ Detektor IP

Selain itu, pesan yang dipublikasikan dari perangkat klien harus dalam format JSON atau format [Protocol Buffers (protobuf)](https://protobuf.dev/).

Pola ini menjelaskan cara menginstal dan mengkonfigurasi komponen yang diperlukan ini, dan memberikan tips pemecahan masalah dan praktik terbaik.

## Prasyarat dan batasan
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ [AWS Command Line Interface (AWS CLI) versi 2](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ Dua perangkat klien yang menjalankan Python 3.7 atau yang lebih baru
+ [Satu perangkat inti yang menjalankan Java Runtime Environment (JRE) versi 8 atau yang lebih baru, dan Amazon [Corretto](https://aws.amazon.com/corretto/) 11 atau OpenJDK 11](https://openjdk.java.net/)

**Batasan**
+ Anda harus memilih Wilayah AWS tempat AWS IoT Core tersedia. Untuk daftar Wilayah AWS IoT Core saat ini, lihat [AWS Services by](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) Region.
+ Perangkat inti harus memiliki setidaknya 172 MB RAM dan 512 MB ruang disk.

## Arsitektur
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-architecture"></a>

Diagram berikut menunjukkan arsitektur solusi untuk pola ini.

![\[Arsitektur solusi untuk menyiapkan AWS IoT Greengrass dengan perangkat klien\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/0656c5ae-d979-4cf7-be92-a46fa81cab0d.png)


Arsitekturnya meliputi:
+ Dua perangkat klien. Setiap perangkat berisi kunci pribadi, sertifikat perangkat, dan sertifikat otoritas sertifikat root (CA). AWS IoT Device SDK, yang berisi klien MQTT, juga diinstal pada setiap perangkat klien.
+ Perangkat inti yang memiliki AWS IoT Greengrass yang digunakan dengan komponen berikut:
  + Pialang MQTT
  + Jembatan MQTT
  + Otentikasi perangkat klien
  + Detektor IP

Arsitektur ini mendukung skenario berikut:
+ Perangkat klien dapat menggunakan klien MQTT mereka untuk berkomunikasi satu sama lain melalui broker MQTT perangkat inti.
+ Perangkat klien juga dapat berkomunikasi dengan AWS IoT Core di cloud melalui broker MQTT perangkat inti dan jembatan MQTT.
+ AWS IoT Core di cloud dapat mengirim pesan ke perangkat klien melalui klien pengujian MQTT dan jembatan MQTT perangkat inti dan broker MQTT.

Untuk informasi selengkapnya tentang komunikasi antara perangkat klien dan perangkat inti, lihat bagian [Informasi tambahan](#set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-additional).

## Alat
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-tools"></a>

**Layanan AWS**
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) adalah layanan runtime dan cloud edge Internet of Things (IoT) open source yang membantu Anda membangun, menerapkan, dan mengelola aplikasi IoT di perangkat Anda.
+ [AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) Core menyediakan komunikasi dua arah yang aman untuk perangkat yang terhubung ke internet agar tersambung ke AWS Cloud.
+ [AWS IoT Device SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) adalah kit pengembangan perangkat lunak yang mencakup pustaka sumber terbuka, panduan pengembang dengan sampel, dan panduan porting sehingga Anda dapat membuat produk atau solusi IoT inovatif pada platform perangkat keras pilihan Anda.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

## Praktik terbaik
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-best-practices"></a>
+ Muatan pesan dari perangkat klien harus dalam format JSON atau Protobuf untuk memanfaatkan fitur-fitur canggih dari mesin aturan AWS IoT Core, seperti transformasi dan tindakan bersyarat.
+ Konfigurasikan jembatan MQTT untuk memungkinkan komunikasi dua arah.
+ Konfigurasikan dan terapkan komponen detektor IP di AWS IoT Greengrass untuk memastikan bahwa alamat IP perangkat inti disertakan dalam bidang nama alternatif subjek (SAN) sertifikat broker MQTT.

## Epik
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-epics"></a>

### Siapkan perangkat inti
<a name="set-up-the-core-device"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS IoT Greengrass di perangkat inti Anda. | [Instal perangkat lunak AWS IoT Greengrass Core dengan mengikuti petunjuk di panduan pengembang.](https://docs.aws.amazon.com/greengrass/v2/developerguide/install-greengrass-core-v2.html) | AWS IoT Greengrass | 
| Periksa status instalasi Anda. | Gunakan perintah berikut untuk memeriksa status layanan AWS IoT Greengrass di perangkat inti Anda:<pre>sudo systemctl status greengrass.service</pre>Output yang diharapkan dari perintah ini adalah:<pre>Launched Nucleus successfully</pre> | AWS Umum | 
| Siapkan kebijakan IAM dan lampirkan ke peran layanan Greengrass. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | AWS Umum | 
| Konfigurasikan dan terapkan komponen yang diperlukan di perangkat inti AWS IoT Greengrass. | Konfigurasikan dan terapkan komponen-komponen berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | AWS IoT Greengrass | 
| Konfirmasikan bahwa jembatan MQTT memungkinkan komunikasi dua arah. | Untuk menyampaikan pesan MQTT antara perangkat klien dan AWS IoT Core, konfigurasikan dan terapkan komponen jembatan MQTT dan tentukan topik yang akan disampaikan. Berikut ini contohnya:<pre>{<br />  "mqttTopicMapping": {<br />    "ClientDevicesToCloud": {<br />      "topic": "dt/#",<br />      "source": "LocalMqtt",<br />      "target": "IotCore"<br />    },<br />    "CloudToClientDevices": {<br />      "topic": "cmd/#",<br />      "source": "IotCore",<br />      "target": "LocalMqtt"<br />    }<br />  }<br />}</pre> | AWS IoT Greengrass | 
| Konfirmasikan bahwa komponen autentikasi memungkinkan perangkat klien untuk terhubung dan menerbitkan atau berlangganan topik.  | `aws.greengrass.clientdevices.Auth`Konfigurasi berikut memungkinkan semua perangkat klien untuk terhubung, mempublikasikan pesan, dan berlangganan semua topik.<pre>{<br />  "deviceGroups": {<br />    "formatVersion": "2021-03-05",<br />    "definitions": {<br />      "MyPermissiveDeviceGroup": {<br />        "selectionRule": "thingName: *",<br />        "policyName": "MyPermissivePolicy"<br />      }<br />    },<br />    "policies": {<br />      "MyPermissivePolicy": {<br />        "AllowAll": {<br />          "statementDescription": "Allow client devices to perform all actions.",<br />          "operations": [<br />            "*"<br />          ],<br />          "resources": [<br />            "*"<br />          ]<br />        }<br />      }<br />    }<br />  }<br />}</pre> | AWS IoT Greengrass | 

### Siapkan perangkat klien
<a name="set-up-client-devices"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS IoT Device SDK. | Instal AWS IoT Device SDK pada perangkat klien. Untuk daftar lengkap bahasa yang didukung dan yang terkait SDKs, lihat dokumentasi [AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html).[Misalnya, AWS IoT Device SDK untuk Python SDK terletak di. GitHub](https://github.com/aws/aws-iot-device-sdk-python-v2) Untuk menginstal SDK ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html)Atau, Anda dapat menginstal SDK dari repositori sumber:<pre># Create a workspace directory to hold all the SDK files<br />mkdir sdk-workspace<br />cd sdk-workspace<br /># Clone the repository<br />git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git<br /># Install using Pip (use 'python' instead of 'python3' on Windows)<br />python3 -m pip install ./aws-iot-device-sdk-python-v2</pre> | AWS IoT Umum | 
| Ciptakan sesuatu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | AWS IoT Core | 
| Unduh sertifikat CA dari perangkat inti Greengrass. | Jika Anda mengharapkan perangkat inti Greengrass berfungsi di lingkungan offline, Anda harus membuat sertifikat CA inti Greengrass tersedia untuk perangkat klien sehingga dapat memverifikasi sertifikat broker MQTT (yang dikeluarkan oleh CA inti Greengrass). Karena itu, penting untuk mendapatkan salinan sertifikat ini. Gunakan salah satu pendekatan berikut untuk mengunduh sertifikat CA:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | AWS Umum | 
| Salin kredensi di perangkat klien. | Salin sertifikat CA inti Greengrass, sertifikat perangkat, dan kunci pribadi di perangkat klien. | AWS Umum | 
| Kaitkan perangkat klien dengan perangkat inti. | Mengaitkan perangkat klien dengan perangkat inti sehingga mereka dapat menemukan perangkat inti. Perangkat klien kemudian dapat menggunakan [Greengrass discovery](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-discover-api.html) API untuk mengambil informasi konektivitas dan sertifikat untuk perangkat inti terkait mereka. Untuk informasi selengkapnya, lihat [Mengaitkan perangkat klien](https://docs.aws.amazon.com/greengrass/v2/developerguide/associate-client-devices.html) dalam dokumentasi AWS IoT Greengrass.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html)Perangkat klien yang telah Anda kaitkan sekarang dapat menggunakan Greengrass penemuan API untuk menemukan perangkat inti ini. | AWS IoT Greengrass | 

### Mengirim dan menerima data
<a name="send-and-receive-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kirim data dari satu perangkat klien ke perangkat klien lain. | Gunakan klien MQTT di perangkat Anda untuk mempublikasikan pesan tentang topik tersebut. `dt/client1/sensor` | AWS Umum | 
| Kirim data dari perangkat klien ke AWS IoT Core. | Gunakan klien MQTT di perangkat Anda untuk mempublikasikan pesan tentang topik tersebut. `dt/client1/sensor`[Di klien pengujian MQTT, berlangganan topik tempat perangkat mengirim pesan, atau berlangganan **\$1** untuk semua topik (lihat detail).](https://docs.aws.amazon.com/iot/latest/developerguide/view-mqtt-messages.html) | AWS Umum | 
| Kirim pesan dari AWS IoT Core ke perangkat klien. | Pada halaman klien pengujian MQTT, di tab **Publikasikan ke topik**, di bidang **Nama topik**, masukkan nama topik pesan Anda. Dalam contoh ini, gunakan `cmd/client1` untuk topik. | AWS Umum | 

## Pemecahan masalah
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| **Tidak dapat memverifikasi kesalahan sertifikat server** | Kesalahan ini terjadi ketika klien MQTT tidak dapat memverifikasi sertifikat yang disajikan oleh broker MQTT selama jabat tangan TLS. Alasan paling umum adalah bahwa klien MQTT tidak memiliki sertifikat CA. Ikuti langkah-langkah ini untuk memastikan bahwa sertifikat CA diberikan kepada klien MQTT.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | 
| **Tidak dapat memverifikasi kesalahan nama server** | Kesalahan ini terjadi ketika klien MQTT tidak dapat memverifikasi bahwa itu terhubung ke server yang benar. Alasan paling umum adalah bahwa alamat IP perangkat Greengrass tidak terdaftar di bidang SAN sertifikat.[Ikuti petunjuk di solusi sebelumnya untuk mendapatkan sertifikat broker MQTT dan verifikasi bahwa bidang SAN berisi alamat IP perangkat AWS IoT Greengrass, seperti yang dijelaskan di bagian Informasi tambahan.](#set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-additional) Jika tidak, konfirmasikan bahwa komponen detektor IP diinstal dengan benar dan restart perangkat inti. | 
| **Tidak dapat memverifikasi nama server hanya saat menghubungkan dari perangkat klien yang disematkan** | Mbed TLS, yang merupakan pustaka TLS populer yang digunakan dalam perangkat tertanam, saat ini mendukung verifikasi nama DNS hanya di bidang SAN sertifikat, seperti yang ditunjukkan dalam kode perpustakaan Mbed TLS. Karena perangkat inti tidak memiliki nama domain sendiri dan bergantung pada alamat IP, klien TLS yang menggunakan Mbed TLS akan gagal verifikasi nama server selama jabat tangan TLS, menyebabkan kegagalan koneksi. Kami menyarankan Anda menambahkan verifikasi alamat IP SAN ke pustaka Mbed TLS Anda di fungsi [x509\$1crt\$1check\$1san](https://github.com/Mbed-TLS/mbedtls/blob/6a327a5fdc2786cb50b4dbe5e3a75884a1f8435a/library/x509_crt.c#L2548). | 

## Sumber daya terkait
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-resources"></a>
+ [Dokumentasi AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html)
+ [Dokumentasi AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html)
+ [Komponen broker MQTT](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)
+ [Komponen jembatan MQTT](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-bridge-component.html)
+ [Komponen autentikasi perangkat klien](https://docs.aws.amazon.com/greengrass/v2/developerguide/client-device-auth-component.html)
+ [Komponen detektor IP](https://docs.aws.amazon.com/greengrass/v2/developerguide/ip-detector-component.html)
+ SDK [Perangkat AWS IoT s](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html)
+ [Menerapkan Perangkat Klien Lokal dengan AWS IoT Greengrass](https://aws.amazon.com/blogs/iot/implementing-local-client-devices-with-aws-iot-greengrass/) (postingan blog AWS)
+ [RFC 5280 - Profil Sertifikat Infrastruktur Kunci Publik Internet X.509 dan Daftar Pencabutan Sertifikat (CRL)](https://www.rfc-editor.org/rfc/rfc5280)

## Informasi tambahan
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-additional"></a>

Bagian ini memberikan informasi tambahan tentang komunikasi antara perangkat klien dan perangkat inti.

Broker MQTT mendengarkan port 8883 di perangkat inti untuk upaya koneksi klien TLS. Ilustrasi berikut menunjukkan contoh sertifikat server broker MQTT.

![\[Contoh sertifikat server broker MQTT\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/b2c324a1-60cd-4194-80e7-e5184662146a.png)


Sertifikat contoh menampilkan rincian berikut:
+ Sertifikat ini dikeluarkan oleh AWS IoT Greengrass Core CA, yang bersifat lokal dan khusus untuk perangkat inti; artinya, ia bertindak sebagai CA lokal.
+ Sertifikat ini secara otomatis diputar setiap minggu oleh komponen autentikasi klien seperti yang ditunjukkan pada ilustrasi berikut. Anda dapat mengatur interval ini dalam konfigurasi komponen autentikasi klien.

![\[Memutar sertifikat server broker MQTT\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/65bcdc5c-a71c-4f52-adcd-21910fabfc2a.png)

+ Nama alternatif subjek (SAN) memainkan peran penting dalam verifikasi nama server di ujung klien TLS. Ini membantu klien TLS memastikan bahwa itu terhubung ke server yang benar dan membantu menghindari man-in-the-middle serangan selama pengaturan sesi TLS. Dalam contoh sertifikat, bidang SAN menunjukkan bahwa server ini mendengarkan di localhost (soket domain Unix lokal), dan antarmuka jaringan memiliki alamat IP 192.168.1.12.

Klien TLS menggunakan bidang SAN dalam sertifikat untuk memverifikasi bahwa itu terhubung ke server yang sah selama verifikasi server. Sebaliknya, selama jabat tangan TLS khas antara server HTTP dan browser, nama domain di bidang common name (CN) atau bidang SAN digunakan untuk memeriksa silang domain yang sebenarnya terhubung ke browser selama proses verifikasi server. Jika perangkat inti tidak memiliki nama domain, alamat IP yang disertakan dalam bidang SAN memiliki tujuan yang sama. Untuk informasi selengkapnya, lihat [bagian Nama Alternatif Subjek](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.6) dari Profil *RFC 5280 - Internet X.509 Sertifikat Infrastruktur Kunci Publik dan Daftar Pencabutan Sertifikat (CRL*).

Komponen detektor IP di AWS IoT Greengrass memastikan bahwa alamat IP yang benar disertakan dalam bidang SAN sertifikat.

Sertifikat dalam contoh ditandatangani oleh perangkat AWS IoT Greengrass yang bertindak sebagai CA lokal. Klien TLS (klien MQTT) tidak mengetahui CA ini, jadi kami harus memberikan sertifikat CA yang terlihat seperti berikut ini.

![\[Contoh sertifikat CA\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/b08b3bcb-9e12-4f5a-9204-cf65ea32902f.png)


# Lebih banyak pola
<a name="iot-more-patterns-pattern-list"></a>

**Topics**
+ [Mengkonsumsi data IoT secara hemat biaya langsung ke Amazon S3 menggunakan AWS IoT Greengrass](cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.md)
+ [Terapkan sistem agen di Amazon Bedrock dengan framework CreWai dengan menggunakan Terraform](deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.md)
+ [Menerapkan aplikasi kontainer saat AWS IoT Greengrass V2 berjalan sebagai wadah Docker](deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.md)