투케이2K

8. (Aws/Amazon) [Aws Iot Core] Aws Iot Core 프로비저닝 템플릿 (Template) 설명 본문

Aws (Amazon)

8. (Aws/Amazon) [Aws Iot Core] Aws Iot Core 프로비저닝 템플릿 (Template) 설명

투케이2K 2024. 12. 18. 19:12

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[방법 설명]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services

- 기술 구분 : Aws Iot Core / Fleet 프로비저닝 / 템플릿 (Template)

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. 프로비저닝 템플릿 은 매개변수를 사용하여 기기가 상호 작용하는 데 사용해야 하는 리소스를 설명하는 JSON 문서입니다


2. AWS IoT 프로비저닝 템플릿에는 Parameters 와 Resources 2가지 섹션이 포함됩니다


3. Parameters 섹션 설명 : 

  >> Parameters 섹션은 Resources 섹션에서 사용할 파라미터를 선언합니다 (이름과 형식 그리고 기본 옵션 값을 선언)

  >> Parameters 는 앱 또는 디바이스에서 해당 정의 된 규격에 맞게 데이터 준비 후 템플릿 등록 요청을 수행해야합니다

  >> 샘플 데이터 예시 : 

    {
        "Parameters": {
            "ThingName": {
                "Type": "String"
            },
            "SerialNumber": {
                "Type": "String"
            },
            "Location": {
                "Type": "String",
                "Default": "WA"
            },
            "CSR": {
                "Type": "String"
            }
        }
    }


4. Resources 섹션 설명 : 

  >> Resources 섹션은 기기가 통신하는 데 필요한 리소스 (사물, 인증서, 하나 이상의 IoT 정책 등) 를 선언합니다

  >> Resources 에는 논리적 이름과 유형, 그리고 여러 가지 속성을 지정할 수 있습니다

  >> Resources 에서 지정 가능 한 유형 종류 : 

    - AWS::IoT::Thing (사물 리소스) : ThingName , Groups 등 을 지정할 수 있습니다

    - AWS::IoT::Certificate (인증서 리소스) : AWS IoT 에 등록한 CA 인증서로 생성된 디바이스 인증성 활성화 설정 유무 등 을 지정할 수 있습니다

    - AWS::IoT::Policy (정책 리소스) : Policy 정책 설정에 관한 항목을 지정할 수 있습니다

  >> 샘플 데이터 예시 : 

    {
        "Resources": {
            "thing": {
                "Type": "AWS::IoT::Thing",
                "Properties": {
                    "ThingName": {
                        "Ref": "ThingName"
                    },
                    "AttributePayload": {
                        "version": "v1",
                        "serialNumber": {
                            "Ref": "SerialNumber"
                        }
                    },
                    "ThingTypeName": "lightBulb-versionA",
                    "ThingGroups": [
                        "v1-lightbulbs",
                        {
                            "Ref": "Location"
                        }
                    ]
                },
                "OverrideSettings": {
                    "AttributePayload": "MERGE",
                    "ThingTypeName": "REPLACE",
                    "ThingGroups": "DO_NOTHING"
                }
            },
            "certificate": {
                "Type": "AWS::IoT::Certificate",
                "Properties": {
                    "CertificateSigningRequest": {
                        "Ref": "CSR"
                    },
                    "Status": "ACTIVE"
                }
            },
            "policy": {
                "Type": "AWS::IoT::Policy",
                "Properties": {
                    "PolicyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Allow\", \"Action\":[\"iot:Publish\"], \"Resource\": [\"arn:aws:iot:us-east-1:123456789012:topic/foo/bar\"] }] }"
                }
            }
        }
    }


5. 참고 : App 또는 Device 는 템플릿 등록 요청을 수행하기 위해서는 [특정 템플릿 명칭] 구독 후 , 생성 요청 publish 수행이 필요합니다

  >> App 또는 Device 가 publish 수행 시에는 상위 정의 된 파라미터 형식 대로 요청 필요

  >> App 또는 Device 샘플 구독 및 publish 토픽 주소 : 

    - request publish    : $aws/provisioning-templates/{AWS_TEMPLATE_NAME}/provision/json
    - accepted subscribe : $aws/provisioning-templates/{AWS_TEMPLATE_NAME}/provision/json/accepted
    - rejected subscribe : $aws/provisioning-templates/{AWS_TEMPLATE_NAME}/provision/json/rejected

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://ap-northeast-1.signin.aws.amazon.com/console/

https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/provision-template.html

// --------------------------------------------------------------------------------------
 
반응형
Comments