Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan konektor C2C () Cloud-to-Cloud
Konektor C2C mengelola terjemahan pesan permintaan dan respons, dan memungkinkan komunikasi antara integrasi terkelola dan cloud vendor pihak ketiga. Ini memfasilitasi kontrol terpadu di berbagai jenis perangkat, platform, dan protokol yang memungkinkan perangkat pihak ketiga untuk di-onboard dan dikelola.
Prosedur berikut mencantumkan langkah-langkah untuk menggunakan konektor C2C.
Langkah-langkah untuk menggunakan konektor C2C:
-
CreateCloudConnector
Konfigurasikan konektor untuk mengaktifkan komunikasi dua arah antara integrasi terkelola Anda dan cloud vendor pihak ketiga.
Saat mengatur konektor, berikan detail berikut:
-
Nama: Pilih nama deskriptif untuk konektor.
-
Deskripsi: Berikan ringkasan singkat tentang tujuan dan kemampuan konektor.
-
AWS Lambda ARN: Tentukan Nama Sumber Daya Amazon (ARN) dari AWS Lambda fungsi yang akan memberi daya pada konektor.
Buat dan terapkan AWS Lambda fungsi yang berkomunikasi dengan API vendor pihak ketiga untuk membuat konektor. Selanjutnya, panggil CreateCloudConnectorAPI dalam integrasi terkelola, dan berikan AWS Lambda fungsi ARN untuk pendaftaran. Pastikan bahwa AWS Lambda fungsi tersebut diterapkan di AWS akun yang sama tempat Anda memasang konektor dalam integrasi terkelola. Anda akan diberi ID Konektor unik untuk mengidentifikasi integrasi.
Contoh Permintaan dan Respons CreateCloudConnector API:
Request: { "Name": "CreateCloudConnector", "Description": "Testing for C2C", "EndpointType": "LAMBDA", "EndpointConfig": { "lambda": { "arn": "arn:aws:lambda:us-east-1:xxxxxx:function:TestingConnector" } }, "ClientToken": "abc" } Response: { "Id": "string" }Aliran penciptaan:
catatan
Gunakan GetCloudConnector,, UpdateCloudConnectorDeleteCloudConnector, dan ListCloudConnectorsAPI sesuai kebutuhan untuk prosedur ini.
-
-
CreateConnectorDestination
Konfigurasikan Destinasi untuk menyediakan pengaturan dan kredensional otorisasi yang diperlukan konektor untuk membuat koneksi aman dengan cloud vendor pihak ketiga. Gunakan Destinasi untuk mendaftarkan kredensil otorisasi pihak ketiga Anda dengan integrasi terkelola.
Dua jenis otorisasi sekarang didukung:
-
OAuth 2.0 - Untuk platform yang menggunakan otorisasi OAuth (URL otorisasi, URL token, kredensi klien)
-
GeneralAuthorization- Untuk platform yang menggunakan kunci API, token pembawa, atau mekanisme otorisasi non-OAuth
Prasyarat
Sebelum membuat ConnectorDestination, Anda harus:
Panggil CreateCloudConnectorAPI untuk membuat konektor. ID yang dikembalikan fungsi digunakan dalam panggilan CreateConnectorDestinationAPI API.
-
Untuk otorisasi OAuth:
Ambil platform pihak ketiga (
tokenUrluntuk menukar AuthCode dengan AccessToken)Ambil
authUrluntuk platform pihak ketiga (untuk otorisasi pengguna akhir)Simpan
clientIddanclientSecretdi AWS Secrets Manager
-
Untuk GeneralAuthorization:
Simpan materi otorisasi Anda (kunci API, token pembawa, dll.) AWS Secrets Manager
Setiap materi otorisasi membutuhkan nama dan referensi Secrets Manager
Contoh Permintaan CreateConnectorDestination API (OAuth):
Request: { "Name": "CreateConnectorDestination", "Description": "CreateConnectorDestination", "AuthType": "OAUTH", "AuthConfig": { "oAuth": { "authUrl": "https://xxxx.com/oauth2/authorize", "tokenUrl": "https://xxxx/oauth2/token", "scope": "testScope", "tokenEndpointAuthenticationScheme": "HTTP_BASIC", "oAuthCompleteRedirectUrl": "about:blank", "proactiveRefreshTokenRenewal": { "enabled": false, "DaysBeforeRenewal": 30 } } }, "CloudConnectorId": "<connectorId>", "SecretsManager": { "arn": "arn:aws:secretsmanager:*****:secret:*******", "versionId": "********" }, "ClientToken": "***" } Response: { "Id":"string" }Contoh Permintaan CreateConnectorDestination API (GeneralAuthorization):
Request: { "Name": "CreateConnectorDestination", "Description": "GeneralAuthorization test destination", "AuthConfig": { "GeneralAuthorization": { "AuthMaterials": [ { "AuthMaterialName": "AuthKey1", "SecretsManager": { "arn": "arn:aws:secretsmanager:*****:secret:*******", "versionId": "********" } } ] } }, "CloudConnectorId": "<connectorId>", "ClientToken": "***" } Response: { "Id": "string" }Perbedaan utama untuk GeneralAuthorization:
Tidak ada
AuthTypebidang yang diperlukanTidak diperlukan
SecretsManagerbidang tingkat atasMenggunakan
AuthConfig.GeneralAuthorization.AuthMaterialsarraySetiap materi autentikasi memiliki nama dan referensi Secrets Manager sendiri
Mendukung beberapa materi otentikasi untuk kasus penggunaan di masa mendatang
Saat ini, ConnectorDestination juga mendukung OAuth dan GeneralAuthorization bersama-sama di kami. ConnectorDestination
Alur pembuatan tujuan cloud:
catatan
Gunakan GetConnectorDestination,, UpdateConnectorDestinationDeleteConnectorDestination, dan ListConnectorDestinationsAPI sesuai kebutuhan untuk prosedur ini.
-
-
CreateAccountAssociation
Asosiasi mewakili hubungan antara akun cloud pihak ketiga pengguna akhir dan tujuan konektor. Setelah membuat Asosiasi dan menautkan pengguna akhir ke integrasi terkelola, perangkat mereka dapat diakses melalui ID Asosiasi yang unik. Integrasi ini memungkinkan tiga fungsi utama: menemukan perangkat, mengirim perintah, dan menerima acara.
Prasyarat
Sebelum membuat, AccountAssociationAnda harus menyelesaikan yang berikut:
Panggil CreateConnectorDestinationAPI untuk membuat tujuan. ID yang dikembalikan fungsi digunakan dalam panggilan CreateAccountAssociationAPI.
Memanggil CreateAccountAssociationAPI.
Contoh Permintaan CreateAccountAssociation API (OAuth):
Request: { "Name": "CreateAccountAssociation", "Description": "CreateAccountAssociation", "ConnectorDestinationId": "<destinationId>", "ClientToken": "***" } Response: { "Id":"string" }Contoh Permintaan CreateAccountAssociation API (GeneralAuthorization):
Request: { "Name": "CreateAccountAssociation", "Description": "GeneralAuthorization test account association", "GeneralAuthorization": { "AuthMaterialName": "AuthKey1" }, "ConnectorDestinationId": "<destinationId>", "ClientToken": "***" } Response: { "AccountAssociationId": "string", "Arn": "string", "AssociationState": "ASSOCIATION_SUCCEEDED" }Perbedaan utama untuk GeneralAuthorization:
Termasuk
GeneralAuthorization.AuthMaterialNamebidangReferensi salah satu bahan autentikasi yang didefinisikan dalam ConnectorDestination
Tidak ada URL otorisasi OAuth dalam tanggapan
catatan
Gunakan GetAccountAssociation,, UpdateAccountAssociationDeleteAccountAssociation, dan ListAccountAssociationsAPI sesuai kebutuhan untuk prosedur ini.
An AccountAssociationmemiliki status yang ditanyakan dari GetAccountAssociationdan ListAccountAssociationsAPI. API ini menunjukkan status Asosiasi. StartAccountAssociationRefreshAPI memungkinkan penyegaran AccountAssociationstatus saat token penyegarannya kedaluwarsa.
-
Penemuan perangkat
Setiap hal yang dikelola terkait dengan detail khusus perangkat, seperti nomor seri dan model data. Model data menjelaskan fungsionalitas perangkat, menunjukkan apakah itu bola lampu, sakelar, termostat, atau jenis perangkat lain. Ada dua alur kerja untuk menemukan perangkat pihak ketiga dan membuat ManagedThings: alur penemuan tradisional dan alur penemuan pra-onboard.
-
Opsi 1: Aliran Penemuan Perangkat Tradisional
Gunakan alur kerja ini jika Anda tidak mengetahui ID perangkat konektor sebelumnya. Alur ini menemukan semua perangkat yang terkait dengan akun dan memungkinkan Anda memilih perangkat mana yang akan dionboard.
-
Panggil StartDeviceDiscoveryAPI untuk memulai proses penemuan perangkat.
Contoh Permintaan dan Respons StartDeviceDiscovery API:
Request: { "DiscoveryType": "CLOUD", "AccountAssociationId": "*****", "ClientToken": "abc" } Response: { "Id": "string", "StartedAt": number } -
Memanggil GetDeviceDiscoveryAPI untuk memeriksa status proses penemuan.
-
Panggil ListDiscoveredDevicesAPI untuk membuat daftar perangkat yang ditemukan.
Contoh Permintaan dan Respons ListDiscoveredDevices API:
Request: //Empty body Response: { "Items": [ { "Brand": "string", "ConnectorDeviceId": "string", "ConnectorDeviceName": "string", "DeviceTypes": [ "string" ], "DiscoveredAt": number, "ManagedThingId": "string", "Model": "string", "Modification": "string" } ], "NextToken": "string" } -
Memanggil CreateManagedThingAPI untuk memilih perangkat dari daftar penemuan yang akan diimpor ke integrasi terkelola.
Contoh Permintaan dan Respons CreateManagedThing API:
Request: { "Role": "DEVICE", "AuthenticationMaterial": "CLOUD:<deviceDiscoveryId>:<connectorDeviceId>", "AuthenticationMaterialType": "DISCOVERED_DEVICE", "Name": "sample-device-name", "ClientToken": "xxx" } Response: { "Arn": "string", // This is the ARN of the managedThing "CreatedAt": number, "Id": "string" } -
Panggil GetManagedThingAPI untuk melihat ini yang baru dibuat
managedThing. Statusnya akanUNASSOCIATED. -
Panggil RegisterAccountAssociationAPI untuk mengaitkan ini
managedThingdengan yang spesifikaccountAssociation. Di akhir RegisterAccountAssociationAPI yang berhasil,managedThingperubahanACTIVATEDstatus.Contoh Permintaan dan Respons RegisterAccountAssociation API:
Request: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" } Response: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" }
-
-
Opsi 2: Aliran Penemuan Pre-onboarded Perangkat
Gunakan alur kerja ini saat Anda sudah mengetahui ID perangkat konektor sebelum melakukan onboarding. Alur ini berguna untuk perangkat yang telah disediakan sebelumnya atau saat Anda ingin secara selektif melakukan onboard perangkat tertentu dari set yang lebih besar. Pendekatan ini mengurangi jumlah panggilan API yang diperlukan untuk sepenuhnya mendaftar dan mengaktifkan perangkat.
penting
Untuk menggunakan alur penemuan cloud pra-onboard, Anda harus mengetahui
connectorDeviceId(pengenal perangkat konektor) sebelum memulai proses orientasi perangkat. Pengenal ini diperoleh dari platform vendor pihak ketiga atau selama penyediaan perangkat.-
Memanggil CreateManagedThingAPI dengan jenis bahan
PRE_ONBOARDED_CLOUDotentikasi. Ini membuat ManagedThing dalamPRE_ASSOCIATEDkeadaan dengan beberapa asosiasi akun.Contoh Permintaan dan Respons CreateManagedThing API (Pre-onboarded):
Request: { "Role": "DEVICE", "AuthenticationMaterial": "CLOUD:<connectorDeviceId>:<accountAssociationId1>:<accountAssociationId2>", "AuthenticationMaterialType": "PRE_ONBOARDED_CLOUD", "Name": "pre-onboarded-device-name", "ClientToken": "xxx" } Response: { "Arn": "string", // This is the ARN of the managedThing "CreatedAt": number, "Id": "string" }catatan
AuthenticationMaterialFormat untuk perangkat pra-onboard adalahCLOUD:<connectorDeviceId>:<accountAssociationId1>:<accountAssociationId2>:...tempat Anda dapat menentukan satu atau beberapa ID asosiasi akun. -
(Opsional) Panggil GetManagedThingAPI untuk memverifikasi ManagedThing dalam status.
PRE_ASSOCIATED -
Panggil StartDeviceDiscoveryAPI dengan
connectorDeviceIdListparameter untuk menemukan hanya perangkat pra-onboard.Contoh Permintaan StartDeviceDiscovery API dengan konektorDeviceIdList:
Request: { "DiscoveryType": "CLOUD", "AccountAssociationId": "*****", "ConnectorDeviceIdList": [ "connector-device-id-1", "connector-device-id-2", "connector-device-id-3" ], "ClientToken": "abc" } Response: { "Id": "string", "StartedAt": number }Saat menggunakan
connectorDeviceIdList, proses penemuan hanya mengembalikan perangkat yang cocok dengan ID perangkat konektor yang ditentukan. Konektor akan mengirimDEVICE_DISCOVERYacara melalui SendConnectorEventinformasi perangkat yang ditemukan. -
Setelah penemuan berhasil diselesaikan, integrasi terkelola secara otomatis mendaftarkan ManagedThings yang telah di-onboard ke asosiasi akun terkait mereka. Transisi ManagedThing dari
PRE_ASSOCIATEDke negara bagian.ACTIVATEDcatatan
Jika registrasi otomatis gagal dan ManagedThing tetap dalam
DISCOVEREDstatus, Anda dapat memanggil RegisterAccountAssociationAPI secara manual sebagai fallback untuk menyelesaikan proses pendaftaran. -
(Opsional) Panggil GetManagedThingAPI untuk memverifikasi ManagedThing sekarang dalam status.
ACTIVATED
-
-
-
Kirim perintah ke perangkat pihak ketiga
Untuk mengontrol perangkat yang baru di-onboard, gunakan SendManagedThingCommandAPI, dengan ID Asosiasi yang dibuat sebelumnya dan tindakan kontrol berdasarkan kemampuan yang didukung oleh perangkat. Konektor menggunakan kredensil tersimpan dari proses penautan akun untuk mengautentikasi dengan cloud pihak ketiga dan memanggil panggilan API yang relevan untuk operasi tersebut.
catatan
Untuk GeneralAuthorization, konektor mengambil materi otorisasi (kunci API, token pembawa, dll.) dari Secrets Manager menggunakan nama materi otorisasi yang ditentukan dalam file. AccountAssociation
Contoh Permintaan dan Respons SendManagedThingCommand API:
Request: { "AccountAssociationId": "string", "ConnectorAssociationId": "string", "Endpoints": [ { "capabilities": [ { "actions": [ { "actionTraceId": "string", "name": "string", "parameters": JSON value, "ref": "string" } ], "id": "string", "name": "string", "version": "string" } ], "endpointId": "string" } ] } Response: { "TraceId": "string" }Kirim perintah ke aliran perangkat pihak ketiga:
-
Konektor mengirimkan acara ke integrasi terkelola
SendConnectorEventAPI menangkap empat jenis peristiwa dari konektor ke integrasi terkelola, yang diwakili oleh nilai enum berikut untuk parameter Jenis Operasi:
-
DEVICE_COMMAND_RESPONSE: Respons asinkron yang dikirim konektor sebagai respons terhadap perintah.
-
DEVICE_DISCOVERY: Menanggapi proses penemuan perangkat, konektor mengirimkan daftar perangkat yang ditemukan ke integrasi terkelola, ia menggunakan API. SendConnectorEvent
-
DEVICE_EVENT: Mengirim peristiwa perangkat yang diterima.
-
DEVICE_COMMAND_REQUEST: Permintaan perintah dimulai dari perangkat. Misalnya, alur kerja WebRTC.
Konektor juga dapat meneruskan peristiwa perangkat menggunakan SendConnectorEventAPI, dengan
userIdparameter opsional.catatan
Untuk GeneralAuthorization: Saat menggunakan GeneralAuthorization, untuk setiap Rahasia ARN dan versi, userID harus unik.
-
Untuk acara perangkat dengan
userId:Contoh Permintaan dan Respons SendConnectorEvent API:
Request: { "UserId": "*****", "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "****", "ConnectorDeviceId": "***", "TraceId": "***", "MatterEndpoint": { "id": "**", "clusters": [{ ..... } }] } } Response: { "ConnectorId": "string" } -
Untuk acara perangkat tanpa
userId:Contoh Permintaan dan Respons SendConnectorEvent API:
Request: { "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "*****", "ConnectorDeviceId": "****", "TraceId": "****", "MatterEndpoint": { "id": "**", "clusters": [{ .... }] } } Response: { "ConnectorId": "string" }
Untuk menghapus tautan antara asosiasi tertentu
managedThingdan akun, gunakan mekanisme deregister:Contoh Permintaan dan Respons DeregisterAccountAssociation API:
Request: { "AccountAssociationId": "****", "ManagedThingId": "****" } Response: HTTP/1.1 200 // Empty bodyKirim alur acara:
-
-
Perbarui status konektor ke “Terdaftar” agar terlihat oleh pelanggan integrasi terkelola lainnya
Secara default, konektor bersifat pribadi dan hanya terlihat oleh AWS akun yang membuatnya. Anda dapat memilih untuk membuat konektor terlihat oleh pelanggan integrasi terkelola lainnya.
Untuk membagikan konektor Anda dengan pengguna lain, gunakan opsi Buat terlihat Konsol Manajemen AWS di halaman detail konektor untuk mengirimkan ID konektor Anda AWS untuk ditinjau. Setelah disetujui, konektor tersedia untuk semua pengguna integrasi terkelola dalam hal yang sama Wilayah AWS. Selain itu, Anda dapat membatasi akses ke ID AWS akun tertentu dengan mengubah kebijakan akses pada fungsi terkait AWS Lambda konektor. Untuk memastikan konektor Anda dapat digunakan oleh pelanggan lain, kelola izin akses IAM pada fungsi Lambda Anda dari AWS akun lain ke konektor yang terlihat.
Tinjau Layanan AWS persyaratan dan kebijakan organisasi Anda yang mengatur berbagi konektor dan izin akses sebelum membuat konektor terlihat oleh pelanggan integrasi terkelola lainnya.