기술 정보

Google 클라우드 플랫폼과 무료 슬롯 콜백 통합

2019.05.15

최근 Google I/O 2019에서 GCP 커뮤니티는 Google Cloud Platform과 무료 슬롯 IoT Network 간의 협업을 공개했습니다. 이 링크를 사용하면 무료 슬롯 장치에서 다시 호출되는 데이터는 GCP 서비스와 함께 사용하기 위해 Cloud Pub/Sub를 통해 사용할 수 있습니다.

img-20190515-technical-01.png

준비

Google Cloud 플랫폼 계정과 무료 슬롯 백엔드 계정을 사전에 얻으십시오. 무료 슬롯 백엔드 클라우드에 대한 계정이 없으면 클릭하십시오.Arduino 용 온라인 슬롯 사이트 ShieldSIGFOX BREAKOUT 무료구매하십시오무료 슬롯 Buy에서 계정을 받으십시오.

Google 무료 슬롯 플랫폼 프로젝트 만들기

다음 단계를 사용하여 GCP 프로젝트 생성

  1. GCP 콘솔10449_10452
  2. 화면 왼쪽 상단에서 프로젝트를 선택한 후 [새 프로젝트]를 선택하십시오.
  3. 프로젝트 이름을 입력하고 [Create] 버튼을 클릭합니다 (이번에는 프로젝트 이름 "무료 슬롯-GCT")
    img-20190515-technical-02.png
  4. 방금 만든 새 프로젝트를 선택하려면 다시 클릭하십시오
    img-20190515-technical-03.png
  5. 왼쪽 탐색 메뉴에서 "API 및 서비스" "라이브러리"열기
  6. 다음 API가 활성화되어 있는지 확인하고 활성화되지 않은 경우 활성화하십시오
    • 무료 슬롯 기능 API
    • Cloud Pub/Sub API
    • 무료 슬롯 데이터 스토어 API

무료 슬롯 콜백 용 클라우드 기능 배포

  1. 지역 개발 환경Google Cloud SDK(gcloud 명령 줄 도구), git, python, pip, virtualenv, curl을 설치하십시오.
  2. 방금 만든 GCP 프로젝트를 초기화하려면 아래 명령을 사용하여
    $ gcloud init
  3. 무료 슬롯 장치에서 데이터를 수신하려면 펍/하위 주제 만들기
    $ gcloud pubsub 주제 생성 무료 슬롯-data
  4. 위의 주제에서 메시지를 모니터링하기 위해 술집/서브 구독 생성
    $ gcloud pubsub 구독 구독 무료 슬롯-DATA-SUB 생성-주제 무료 슬롯-DATA
  5. GCP 커뮤니티에서 게시 한 Github 저장소 복제
    $ git 클론 https://github.com/googlecloudplatform/community.git
  6. 무료 슬롯-GW 디렉토리로 이동
    $ CD 커뮤니티/튜토리얼/무료 슬롯-GW
  7. 새 파이썬 가상 환경 생성
    $ virtualenv venv
  8. 생성 한 가상 환경에서 bin/activate에 소스 명령을 사용하여 피스톤 가상 환경을 시작합니다
    $ source venv/bin/activate
  9. 필요한 파이썬 모듈을 설치하십시오.
    (VENV) $ pip install -r 요구 사항 .txt
  10. CF디렉토리로 이동
    (venv) $ cd cf
  11. 클라우드 함수에는 CF 디렉토리 (무료 슬롯-GW/CF)에 ".env.yaml"이라는 구성 파일이 있습니다. 이 구성 파일은 클라우드 함수가 배포 될 때로드되므로 구성 파일을 업데이트하면 아래 설명대로 다시 배포해야합니다.
  12. .env.yaml파일 편집.
    (venv) $ vi .env.yaml

    env.yaml
    pubsub_topic_data : 무료 슬롯-datahttp_user : ****

    .env.yaml 파일http_userhttp_password이 항목은 HTTPS와 통신 할 때 무료 슬롯 백엔드 클라우드에서 GCP로 돌아올 때 무료 슬롯 백엔드를 인증하기 위해 Cloud Functions에서 사용하는 기본 인증 정보입니다.
    나중에 설정에 사용하겠습니다. http_user 및 http_password를 기록하십시오.

  13. 아래 명령을 사용하여 두 개의 무료 슬롯 함수를 배포하십시오. ( -지역 값의 경우, 축적하고 데이터를 처리하려는 무료 슬롯 기능 영역을 설정하십시오.)
    무료 슬롯 데이터 콜백 용
    (VENV) $ gcloud 베타 함수 배포-region asia-northeast1-untime python37-env-vars-file .env.yaml --trigger-http callback_data
    무료 슬롯 서비스 콜백 용
    (VENV) $ gcloud 베타 함수 배포-region asia-northeast1-untime python37-env-vars-file .env.yaml --trigger-http call_service

    Callback_Data는 무료 슬롯 장치의 메시지 페이로드를 받기위한 것이며 무료 슬롯 백엔드에서 Uplink, Bidir 및 Data_advanced Callbacks를 지원합니다.
    Callback_Service는 무료 슬롯 네트워크의 이벤트 정보, 오류 정보 등을 수신하고 무료 슬롯 백엔드의 상태, 승인 및 오류 콜백을 지원합니다.

    이 명령을 실행하면 아래 예제와 같이 명령이 https 트리거 URL을 출력합니다.

    httpstrigger :  URL : https://asia-northeast1-무료 슬롯-gcp.cloudfunctions.net/callback_data

    이 URL은 무료 슬롯 기능 영역 및 GCP 프로젝트 이름에 따라 다음 형식으로 출력됩니다.
    https : // [region]-[프로젝트 이름] .cloudfunctions.net/callback_data
    https : // [region]-[프로젝트 이름] .cloudfunctions.net/callback_service

    • 나중에이 두 URL을 사용하겠습니다.
  14. 배포가 완료되면무료 슬롯 기능14313_14367
    img-20190515-technical-04.png

무료 슬롯 Callback 만들기

무료 슬롯 Cloud API V2를 사용하면 무료 슬롯 콜백을 자동으로 생성 할 수 있습니다.

무료 슬롯 Cloud API 활성화

여기(무료 슬롯 백엔드 클라우드 API 사용 방법)를 사용하여 무료 슬롯 API 자격 증명을 만듭니다.API 사용자 로그인API 사용자 비밀번호.

SEG 무료 슬롯 CALLBACK

무료 슬롯 API V2 Python Client 소개

Paython 클라이언트 라이브러리를 사용하여 무료 슬롯 콜백을 쉽게 구성 할 수 있습니다.

  1. 개발 환경이 CF 디렉토리에 있으면 기본 디렉토리 (무료 슬롯-GW 디렉토리)로 이동하십시오.
    (Venv) $ cd ..
  2. 무료 슬롯 API V2 정의에서 Python Client Library 생성.
    curl -x post -h "content-type : application/json"-d ' "swaggerurl": "https://support.무료 슬롯.com/api/apidocs"'https : //generator.swagger .io/api/gen/clients/python
  3. 위의 명령을 누르면 명령이 URL을 출력하여 생성 된 Python 클라이언트 라이브러리를 다운로드합니다. 출력 코드를 복사하고 다음 명령을 입력하십시오
    (venv) $ curl -o python_client.zip https://generator.wagger.io/api/gen/download/]
    [Your_unique_string] 섹션에서 앞서 나온 코드를 입력하십시오.

    출력 코드는 아래와 같은 임의의 문자열 코드입니다 (일부로 대체?)
    "코드": "6559A581-C317-4E8A-BD34- ????????","link ":"https : //generator.wagger.io/api/gen/download/6559a581-c317-4e8a-bd34- ??????? "

  4. 다운로드 된 python_client.zip을 압축 해제합니다.
    (venv) $ unzip python_client.zip
  5. Swagger_Client 폴더를 작업 디렉토리로 복사하십시오.
    (Venv) $ cp -r Python -client/swagger_client.

무료 슬롯 구성 스크립트 편집

무료 슬롯-api.ini 파일을 편집하고 무료 슬롯 콜백을 자동으로 구성하는 데 필요한 정보를 입력하십시오.

무료 슬롯-api.ini
[기본값]호스트 = https://api.무료 슬롯.com/v2

무료 슬롯 함수 트리거 URL은 위에서 언급 한 설정에 따라 다르지만 샘플 URL은 다음과 같습니다.
cf_data = https://asia-northeast1-무료 슬롯-gct.cloudfunctions.net/callback_data
cf_service = https://asia-northeast1-무료 슬롯-gct.cloudfunctions.net/callback_service

무료 슬롯 콜백 목록

무료 슬롯-api.py를 사용하면 이미 구성된 무료 슬롯 콜백 목록을 볼 수 있습니다.

  1. 무료 슬롯-API 사용 가능한 옵션을 확인하는 데 도움이됩니다.
    (Venv) $ Python 무료 슬롯 -Api.py -h

    그러나 내 환경에서는 무료 슬롯-api.py를 실행했을 때 두 개의 구문 원자를 얻었습니다.
    해당 파일

    Swagger_Client/Models/bulk_device_asynchronous_request.py

    Swagger_Client/Models/Asynchronous_device_creation_job.py

    모든 파일의 경우 Device_type_id = 'Device's "의 경우"장치 이름 Prefix '가 "Device"로 설정되었습니다.

  2. 장치 유형의 무료 슬롯 목록을 표시하려면 다음 명령을 실행하십시오.
    (Venv) $ Python 무료 슬롯-Api.py-Callbacks List

    무료 슬롯이 없으면 결과는 다음과 같습니다.
    0 장치 유형에 대해 구성된 무료 슬롯 : 장치 유형 이름

무료 슬롯 Callback 만들기

  1. 아래 명령은 GCP와 함께 사용할 5 가지 유형의 무료 슬롯을 생성합니다.
    (venv) $ Python 무료 슬롯-Api.py-Callbacks Create
    무료 슬롯이 성공적으로 생성되면 명령 출력은 다음과 같습니다.

    5 개의 무료 슬롯 생성.장치 유형에 대한 5 개의 무료 슬롯 생성 :

    내 환경에서, 무료 슬롯-api.py의 202 행 아래의 코드와 함께

    (발췌) 무료 슬롯-api.py
    무료 슬롯 = swagger_client.callbackcreation (... 약칭 ...)
    

    CallbackCreation이 없다는 오류가 발생했습니다.

    응급 처치의 경우 아래 코드에 표시된 것처럼 연관 배열을 그대로 작성하고 통과했습니다.

    (추가) 무료 슬롯-api.py
    무료 슬롯 =     '채널': D [ '채널']. Encode ( 'UTF-8'),
    
  2. 무료 슬롯 확인
    (Venv) $ Python 무료 슬롯-Api.py-Callbacks List
  3. (옵션) 무료 슬롯 API 자격 증명, DeviceType ID 또는 GCP 기본 자격 증명을 잘못 만드는 경우 아래 명령을 사용하여 모든 콜백이 삭제됩니다.
    (venv) $ Python 무료 슬롯-api.py-Callbacks delete-all
    삭제 후 무료 슬롯-api.ini 파일을 수정하고 Python 무료 슬롯-api.py를 사용하여 다시 콜백을 만듭니다.

생성 된 무료 슬롯 콜백 확인

무료 슬롯 백엔드 장치 유형 [장치 유형] 콜백 메뉴는 아래 다이어그램과 같이 5 가지 유형의 콜백이 생성되었는지 확인합니다.

img-20190515-technical-05.png

장치 제어 관리를위한 데이터 저장소 작성

Cloud Datastore 데이터베이스 서비스를 사용하여 무료 슬롯 다운 링크 메시지를 정의하고 장치 제어를 관리하는 데 사용할 수 있습니다.
이 방법은 문제의 장치 유형에 속하는 모든 장치에 대해 동일합니다.

  1. Google Cloud Datastore Console10449_10452
    img-20190515-technical-06.png
  2. Datastore 모드를 선택하고 GCP 지역에 가까운 위치 (이번에는 Asia-Northeast1 (Tokyo)) 및 [데이터베이스 작성]을 선택하십시오.
    img-20190515-technical-07.png
  3. "엔티티 생성"을 클릭하고 아래 화면에서
    img-20190515-technical-08.png

    아래와 같이 설정하고 작성 버튼을 클릭하십시오.
    항목값 설정
    타입 DeviceType
    키 식별자 사용자 정의 이름
    사용자 정의 이름 장치 유형 이름
    속성
    이름 config
    타입 String
    16 자 (0-9, A-F)

작동 확인

이제 Google 클라우드 기능을 무료 슬롯 백엔드와 연결할 수 있습니다. 실제로 무료 슬롯 장치에서 메시지를 보내고 작업을 확인하십시오.

무료 슬롯 장치에서 메시지 보내기 및 확인

아래 단계를 따라 Callback_Data 무료 슬롯 기능을 확인하십시오.

  1. 개발 환경의 콘솔에는 무료 슬롯 기능에서 사용하는 PUB/하위 주제에 가입 한 무료 슬롯 펍/서브 가입이 있는지 확인하십시오. 다음 명령을 실행하십시오.
    Gcloud Pubsub 구독 목록
    아래 명령의 출력을 확인할 수 있습니다.

    ...이름 : Projects/[귀하의 프로젝트]/구독/무료 슬롯-Data-Sub
  2. 무료 슬롯 백엔드 열기 및 Google Cloud Functions Web Console
  3. 무료 슬롯 장치에서 메시지 보내기
  4. 장치에서 전송 된 메시지로 무료 슬롯 성공을 시연합니다. 메시지보기img-20190515-technical-09.pngMark가 표시되었는지 확인할 수 있습니다.
  5. 메시지 페이로드가 Pub/Sub Topic으로 전달되었는지 확인하려면 다음 명령을 실행하십시오.
    (Venv) $ gcloud pubsub 구독은 무료 슬롯-data-sub를 끌어 당깁니다-limit 100 --auto-ack
    이 명령의 결과가 아래 예제와 같이 PUB/Sub Topic으로 전달되었는지 확인할 수 있습니다.

    "DeviceType": "", "Device": "", "Time": "1557499555","data": "000102030405060708090B", "seqnumber": "1234", "ACK": "false"
  6. 무료 슬롯 _datacloud 함수 선택에 추가하고 "로그보기"를 클릭하십시오.
    img-20190515-technical-10.png

    아래 다이어그램과 같이 StackDriver 로깅에서 수신 된 무료 슬롯 메시지를 확인할 수 있습니다.
    img-20190515-technical-11.png

    GCP 커뮤니티 튜토리얼또한 데이터 고급 무료 슬롯 및 다운 링크 메시지 처리와 같은 예제가 설명되어 있으므로 살펴보십시오.

저자 정보

제품 및 마케팅 부서 Hibi Gaku

전자 ​​자체 선언 된 무료 슬롯 전도자는 Kyocera Communication Systems Co., Ltd. (KCCS)의 무료 슬롯 (프랑스)로 이어졌습니다.

  • 나는 KCCS에서 쫓겨 났고 외딴 프랑스 시골에서 내 남은 인생을 보냈다
트위터 :https://twitter.com/ghibi
무료 슬롯