mockmock에서 SORACOM Funk를 불러보십시오.

이것은



요전날 발표된 mockmock 의 SORACOM 제휴 기능에, 대망의 SORACOM Funk가 대응했으므로 조속히 시험해 보았습니다.

다음 기사도 참고하십시오.
  • mockmock을 사용하여 SORACOM Beam에서 협력하는 시스템 개발 효율성
  • SORACOM Funk에서 AWS Lambda를 불러 보았습니다.

  • Lambda 함수 준비



    우선 Lambda 함수를 준비합니다. SORACOM 고유 정보(context.client_context.custom)와 전달된 JSON 데이터를 그대로 덤프하는 Python3 함수입니다.
    import json
    
    def hello(event, context):
        body = {
            "input": event,
            "context": context.client_context.custom
        }
    
        return body
    

    Funk 설정에 사용하므로이 함수의 arn을 저장합니다. 또한 이 함수를 호출할 수 있는 권한을 부여한 IAM 사용자를 만들고 accessKeyId와 secretAccessKey를 저장합니다.

    mockmock에 SORACOM Funk 설정



    Beam을 움직일 때 기사와 같은 순서로 mock 그룹을 만들면 아래의 json을 흘려서 Funk를 설정합니다.
    [
        {
        "key":"enabled",
        "value": true
        },
        {
        "key":"contentType",
        "value":"application/json"
        },
        {
        "key":"credentialsId",
        "value": {
            "accessKeyId": "*****************",
            "secretAccessKey": "**********************"
        }
        },
        {
        "key":"destination",
        "value": {
            "provider":"aws",
            "resourceUrl": "arn:aws:lambda:********************",
            "service":"lambda"
        }
        }
    
    ]
    

    흘려 넣을 때의 cli와 결과는 이런 느낌입니다. 네임스페이스는 "SoracomFunk"입니다.
    %soracom --profile mockmock groups --group-id "************" --namespace "SoracomFunk"\
     put-config --body @mockmock-funk-setup.json
    
    {
            "configuration": {
                    "SoracomFunk": {
                            "contentType": "application/json",
                            "credentialsId": {
                                    "accessKeyId": "**********",
                                    "secretAccessKey": "**********************"
                            },
                            "destination": {
                                    "provider": "aws",
                                    "resourceUrl": "arn:aws:lambda:*******:******:function:****************",
                                    "service": "lambda"
                            },
                            "enabled": true
                    }
            },
            "createdAt": **************,
            "createdTime": *************,
            "groupId": "**********************",
            "lastModifiedAt": **************,
            "lastModifiedTime": ***********,
            "operatorId": "OP*********",
            "tags": {
                    "name": "**************"
            }
    }
    
    

    움직여 보자



    아래의 JSON을 전달하여 mockmock 테스트 전송을 수행해 봅시다.
    {
      "hello":"world"
    }
    



    잘 작동했습니다!

    덧붙여 Beam과 Funk를 동시에 설정하면, unified endpoint에 던졌을 때와 같이 각각의 반환값을 정리한 JSON이 돌아옵니다.

    요약



    이제 SORACOM Air가 손에 닿지 않더라도 mockmock만 있으면 Funk를 통해 AWS Lambda와 같은 FaaS를 직접 실행할 수 있습니다.
    디바이스에서는 Funk에서 클라우드의 기능을 호출하는 개발을 할 때, 디바이스가 없어도 클라우드측의 개발이 되겠네요!

    좋은 웹페이지 즐겨찾기