C2C(Cloud-to-Cloud) 커넥터 사용 - 에 대한 관리형 통합 AWS IoT Device Management

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

C2C(Cloud-to-Cloud) 커넥터 사용

C2C 커넥터는 요청 및 응답 메시지의 번역을 관리하고 관리형 통합과 타사 공급업체 클라우드 간의 통신을 활성화합니다. 다양한 디바이스 유형, 플랫폼 및 프로토콜에서 통합 제어를 용이하게 하여 타사 디바이스를 온보딩하고 관리할 수 있습니다.

다음 절차에서는 C2C 커넥터를 사용하는 단계를 나열합니다.

C2C 커넥터를 사용하는 단계:
  1. CreateCloudConnector

    관리형 통합과 타사 공급업체 클라우드 간의 양방향 통신을 활성화하도록 커넥터를 구성합니다.

    커넥터를 설정할 때 다음 세부 정보를 제공합니다.

    • 이름: 커넥터에 대한 설명이 포함된 이름을 선택합니다.

    • 설명: 커넥터의 용도와 기능에 대한 간략한 요약을 제공합니다.

    • AWS Lambda ARN: 커넥터에 전원을 공급할 AWS Lambda 함수의 Amazon 리소스 이름(ARN)을 지정합니다.

    타사 공급업체 APIs와 통신하는 AWS Lambda 함수를 빌드하고 배포하여 커넥터를 생성합니다. 그런 다음 관리형 통합 내에서 CreateCloudConnector API를 호출하고 등록할 AWS Lambda 함수 ARN을 제공합니다. 관리형 통합에서 커넥터를 생성하는 동일한 AWS 계정에 AWS Lambda 함수가 배포되었는지 확인합니다. 통합을 식별하기 위해 고유한 커넥터 ID가 할당됩니다.

    샘플 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" }

    생성 흐름:

    클라우드 커넥터 생성 단계
    참고

    이 절차의 필요에 따라 GetCloudConnector, UpdateCloudConnector, DeleteCloudConnectorListCloudConnectors APIs를 사용합니다.

  2. CreateConnectorDestination

    커넥터가 타사 공급업체 클라우드와 보안 연결을 설정하는 데 필요한 설정 및 인증 자격 증명을 제공하도록 대상을 구성합니다. 대상을 사용하여 권한 부여 URL, 인증 체계 및 자격 증명 위치를 포함한 OAuth 2.0 권한 부여 세부 정보와 같은 관리형 통합에 타사 인증 자격 증명을 등록합니다 AWS Secrets Manager.

    사전 조건

    ConnectorDestination을 생성하기 전에 다음을 수행해야 합니다.

    • CreateCloudConnector API를 호출하여 커넥터를 생성합니다. 함수가 반환하는 ID는 CreateConnectorDestination API 호출에 사용됩니다.

    • 커넥터의 3P 플랫폼에 tokenUrl 대한를 검색합니다. (authCodeaccessToken으로 교환할 수 있습니다.)

    • 커넥터의 3P 플랫폼에 대한 authUrl을 검색합니다. (최종 사용자는 사용자 이름과 암호를 사용하여 인증할 수 있습니다).

    • 계정의 보안 암호 관리자에서 clientIdclientSecret (3P 플랫폼에서)를 사용합니다.

    샘플 CreateConnectorDestination API 요청 및 응답:

    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>", // The connectorID instance from response of Step 1. "SecretsManager": { "arn": "arn:aws:secretsmanager:*****:secret:*******", "versionId": "********" }, "ClientToken": "***" } Response: { "Id":"string" }

    클라우드 대상 생성 흐름:

    CreateConnectorDestination API 호출 단계
    참고

    이 절차의 필요에 따라 GetCloudConnector, UpdateCloudConnector, DeleteCloudConnectorListCloudConnectors APIs를 사용합니다.

  3. CreateAccountAssociation

    연결은 최종 사용자의 타사 클라우드 계정과 커넥터 대상 간의 관계를 나타냅니다. 연결을 생성하고 최종 사용자를 관리형 통합에 연결하면 고유한 연결 ID를 통해 디바이스에 액세스할 수 있습니다. 이 통합을 통해 디바이스 검색, 명령 전송, 이벤트 수신이라는 세 가지 주요 기능을 사용할 수 있습니다.

    사전 조건

    AccountAssociation을 생성하기 전에 다음을 완료해야 합니다.

    샘플 CreateAccountAssociation API 요청 및 응답:

    Request: { "Name": "CreateAccountAssociation", "Description": "CreateAccountAssociation", "ConnectorDestinationId": "<destinationId>", //The destinationID from destination creation. "ClientToken": "***" } Response: { "Id":"string" }
    참고

    이 절차의 필요에 따라 GetCloudConnector, UpdateCloudConnector, DeleteCloudConnectorListCloudConnectors APIs를 사용합니다.

    AccountAssociation에는 GetAccountAssociationListAccountAssociations APIs. 이러한 APIs 연결의 상태를 보여줍니다. StartAccountAssociationRefresh API를 사용하면 새로 고침 토큰이 만료될 때 AccountAssociation 상태를 새로 고칠 수 있습니다.

  4. 디바이스 검색

    각 관리형 사물은 일련 번호 및 데이터 모델과 같은 디바이스별 세부 정보에 연결됩니다. 데이터 모델은 디바이스의 기능을 설명하여 전구, 스위치, 온도 조절기 또는 다른 유형의 디바이스인지 여부를 나타냅니다. 3P 디바이스를 검색하고 3P 디바이스에 대한 managedThing을 생성하려면 아래 단계를 순서대로 따라야 합니다.

    1. StartDeviceDiscovery API를 호출하여 디바이스 검색 프로세스를 시작합니다.

      샘플 StartDeviceDiscovery API 요청 및 응답:

      Request: { "DiscoveryType": "CLOUD", "AccountAssociationId": "*****", "ClientToken": "abc" } Response: { "Id": "string", "StartedAt": number }
    2. GetDeviceDiscovery API를 호출하여 검색 프로세스의 상태를 확인합니다.

    3. ListDiscoveredDevices API를 호출하여 검색된 디바이스를 나열합니다.

      샘플 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" }
    4. CreateManagedThing API를 호출하여 검색 목록에서 관리형 통합으로 가져올 디바이스를 선택합니다.

      샘플 CreateManagedThing API 요청 및 응답:

      Request: { "Role": "DEVICE", "AuthenticationMaterial": "CLOUD:XXXX:<connectorDeviceId1>", "AuthenticationMaterialType": "DISCOVERED_DEVICE", "Name": "sample-device-name" "ClientToken": "xxx" } Response: { "Arn": "string", // This is the ARN of the managedThing "CreatedAt": number, "Id": "string" }
    5. GetManagedThing API를 호출하여 새로 생성된를 확인합니다managedThing. 상태는 입니다UNASSOCIATED.

    6. RegisterAccountAssociation API를 호출하여 이를 특정 managedThing에 연결합니다accountAssociation. 성공적인 RegisterAccountAssociation API가 끝나면 상태가 managedThing 변경됩니다ASSOCIATED.

      샘플 RegisterAccountAssociation API 요청 및 응답:

      Request: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" } Response: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" }
  5. 3P 디바이스로 명령 전송

    새로 온보딩된 디바이스를 제어하려면 이전에 생성한 연결 ID와 함께 SendManagedThingCommand API를 사용하고 디바이스에서 지원하는 기능을 기반으로 하는 제어 작업을 사용합니다. 커넥터는 계정 연결 프로세스의 저장된 자격 증명을 사용하여 타사 클라우드로 인증하고 작업에 대한 관련 API 호출을 호출합니다.

    샘플 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" }

    명령을 3P 디바이스 흐름으로 전송합니다.

    3P 디바이스로 명령 전송
  6. 커넥터가 관리형 통합으로 이벤트 전송

    SendConnectorEvent API는 커넥터에서 관리형 통합에 이르는 네 가지 유형의 이벤트를 캡처합니다.이 이벤트는 작업 유형 파라미터에 대한 다음 열거형 값으로 표시됩니다.

    • DEVICE_COMMAND_RESPONSE: 커넥터가 명령에 대한 응답으로 보내는 비동기 응답입니다.

    • DEVICE_DISCOVERY: 커넥터는 디바이스 검색 프로세스에 대한 응답으로 검색된 디바이스 목록을 관리형 통합으로 전송하고 SendConnectorEvent API를 사용합니다.

    • DEVICE_EVENT: 수신된 디바이스 이벤트를 전송합니다.

    • DEVICE_COMMAND_REQUEST: 디바이스에서 시작된 명령 요청입니다. WebRTC 워크플로를 예로 들 수 있습니다.

    커넥터는 선택적 userId 파라미터와 함께 SendConnectorEvent API를 사용하여 디바이스 이벤트를 전달할 수도 있습니다.

    • 를 사용하는 디바이스 이벤트의 경우userId:

      샘플 SendConnectorEvent API 요청 및 응답:

      Request: { "UserId": "*****", "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "****", "ConnectorDeviceId": "***", "TraceId": "***", "MatterEndpoint": { "id": "**", "clusters": [{ ..... } }] } } Response: { "ConnectorId": "string" }
    • 이 없는 디바이스 이벤트의 경우userId:

      샘플 SendConnectorEvent API 요청 및 응답:

      Request: { "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "*****", "ConnectorDeviceId": "****", "TraceId": "****", "MatterEndpoint": { "id": "**", "clusters": [{ .... }] } } Response: { "ConnectorId": "string" }

    특정 연결managedThing과 계정 연결 간의 링크를 제거하려면 등록 취소 메커니즘을 사용합니다.

    샘플 DeregisterAccountAssociation API 요청 및 응답:

    Request: { "AccountAssociationId": "****", "ManagedThingId": "****" } Response: HTTP/1.1 200 // Empty body

    이벤트 흐름 전송:

    이벤트 전송 흐름
  7. 커넥터 상태를 "Listed"로 업데이트하여 다른 관리형 통합 고객에게 표시

    기본적으로 커넥터는 프라이빗이며 커넥터를 생성한 AWS 계정에만 표시됩니다. 커넥터를 다른 관리형 통합 고객에게 표시하도록 선택할 수 있습니다.

    커넥터를 다른 사용자와 공유하려면 커넥터 세부 정보 페이지의 AWS Management Console 에서 표시 옵션을 사용하여 검토를 AWS 위해 커넥터 ID를에 제출합니다. 승인되면 동일한의 모든 관리형 통합 사용자가 커넥터를 사용할 수 있습니다 AWS 리전. 또한 커넥터의 연결된 AWS Lambda 함수에서 액세스 정책을 수정하여 특정 AWS 계정 IDs에 대한 액세스를 제한할 수 있습니다. 다른 고객이 커넥터를 사용할 수 있도록 하려면 다른 AWS 계정에서 표시되는 커넥터로 Lambda 함수에 대한 IAM 액세스 권한을 관리합니다.

    커넥터를 다른 관리형 통합 고객에게 표시하기 전에 커넥터 공유 및 액세스 권한을 관리하는 AWS 서비스 용어와 조직의 정책을 검토하세요.