追è¨
å ·ä½çãªåãåããããã§ã¯ãªãã®ã§ããã®æ¹æ³ã ã¨ãã¾ããããªããã¨ãããã£ãã詳ãã調ã¹ã¦ããã
æ¬ç·¨
ãããã£ã¦(ããã¯å¾ã§è©±ã)ã以ä¸ã®ãããªJSONã«å¯¾å¿ããåã¨ã¤ãªã¢ã¹ãå®ç¾©ããªããã°ãªããªããªã£ãã
{ "deviceEvent": { "buttonClicked": { "clickType": "SINGLE", "reportedTime": "2018-05-04T23:26:33.747Z" } } }
以ä¸ã®ããã«æ¸ããã¨ãã§ãããããã«ã¯ãªã¼ããå¥ããã¦ã¤ãã´ã®ãããã³ã°ãã¤ããã宿ã¨ããæãã§ãããªã楽ã
type OneClickEvent = { val deviceEvent: { val buttonClicked: { val clickType: String val reportedTime: DateTime } } }
type
å®ç¾©ã®å³è¾ºã§ãã{}
ã使ã£ã¦é¨åçæ§é åã®ãªãã©ã«ãç´æ¥è¨è¿°ã§ããã®ã§ãããªãå
ã®JSONã¨å¯¾å¿ããè¨è¿°ãã§ããã
å½åèªåã¯åãã£ã¼ã«ããã¨ã®åã¨ã¤ãªã¢ã¹ãåãã¦æ¸ããªããã°ãªããªãã¨æã£ã¦ãããããã¯åãæ¸ãã¨ããã«{}
ãæ¸ããã¨ã¯ç¥ããªãã£ããããå
¨ã¦type
ã§åãåºããã¨ãã¦ããããã ã
// ããæ¸ããªããã¤ã«ã³! ã¨æã£ã¦ãã: type ButtonClicked = { val clickType: String val reportedTime: DateTime } type DeviceEvent = { val buttonClicked: ButtonClicked } type OneClickEvent = { val deviceEvent: DeviceEvent }
ãã®æ¸ãæ¹ã ã¨ã©ããã¦ãåé·ã§ã¯ã±ãããããªããªã£ã¦ãã¾ãã®ã§ã䏿°åµæã«æ¸ããã®ã¯å©ããã
è´
æ²¢ãè¨ãã¨ãval
ãçç¥ã§ããã°ãããããããScalaã¯ä»ã®ã¨ããããããè¨èªã§ã¯ãªãã®ã§val
ã¯æ¸ããªããã°ãªããªããOderskyå
çã«ãé¡ããããä½ã£ã¦ããããããããªãã
ã¾ããæ§é çé¨ååãªã®ã§ãªãã¬ã¯ã·ã§ã³çä»çµã¿ã使ããªããã°ãã£ã¼ã«ãã«ã¯ã¢ã¯ã»ã¹ã§ããªãããã§ãScala 3ã§ã¯import reflect.Selectable.reflectiveSelectable
ãå¿
è¦ã§ãã£ãã
import reflect.Selectable.reflectiveSelectable val event: OneClickEvent = ... val clickType = event.deviceEvent.buttonClicked.clickType
èæ¯
ã©ããã¦ãããããã¨ãããããã£ããã¨ããã¨ãAWS Lambdaã§IoT 1-clickã®ã¤ãã³ããåä¿¡ãããã£ãããã§ãããå æ¥ã®è¨äºã§Lambdaä¸ã§Scalaãèµ°ããããã¨ãã§ããã®ã§ãä»åº¦ã¯å ·ä½çãªã¤ãã³ããåä¿¡ãããã£ãã®ã ã
ã¨ããã§ãAWS Lambdaã®Javaçã©ã¤ãã©ãªã¯ã"com.amazonaws" % "aws-lambda-java-events" % "3.11.0"
ã§åç
§ãããããã±ã¼ã¸ã«å種ã¤ãã³ããåãæãã¦ãã¦ããã³ãã©ã®å¼æ°ã«ãã®åãæå®ãã¦ããã¨åæã«å夿ããã£ã¦ãããã¨ããå¬ãã仿§ã«ãªã£ã¦ããã
ãã®ããã±ã¼ã¸ã«IoTButtonEvent
ã¨ããããã«ãIoT 1-Clickã§ä½¿ããããªåãããã®ã ãããªãã¨ããã¯ä½¿ããªã(1-Clickã§ã¯ãªãä»ã®IoTã®ãã¿ã³ã¯ãªãã¯ã¤ãã³ãã«å²å½ã¦ããã¦ãã¦ãæ§é ãéã)!!
IoT 1-Clickãè¿ãJSONã¯ä»¥ä¸ã«å®ç¾©ããã¦ããã®ã§ããã®ãã¼ã¸ãèªã¿ã¤ã¤ã使ããããªå ´æã ãã¤ã¾ã¿é£ãããåã¨ã¤ãªã¢ã¹ãä½ãå¿ è¦ãçºçãã¦ãã¾ã£ãã
ãããã¡ããã¡ãæéãããã£ãããæªæ ãã¤ãã¦ããããã¨æã£ã¦ããã®ã ããç°¡åã«ã§ãã¦ããã£ããScalaãããã¨ãã