byClassmethod検索AWSAlexaモバイルビッグデータサーバーレスTableauAlteryxイベントLambda(Node.js)にFlowによる静的型チェックを導入してみる2016年09月19日t.honda(143)5この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめに動的型付けを行うJavaScriptにおいて型チェックを行うFlowというライブラリがあります。これをLambdaにも適用できるかを試してみました。Flowの基本的な使い方については以下の公式サイトのチュートリアルを行うと分かりやすいかと思います。Functionを作成してみます。公式サイトとは異なり、今回は全てのモジュールをプロジェクトのローカルフォルダにインストールすることにします。基本的な考え方としては型付きのソースを作成してFlowによってチェックする。このソースはsrcフォルダに作成する。babelによる(後述します)自動変換にて、型を取り除いたJavaScriptソースをbuildフォルダに作成する。Function上での実行は型を取り除いたJavaScriptソースで行う。今回の作業を行うフォルダで以下のコマンドを実行します。--out-dir=./build最初のコマンドでFlow自体を、2・3行目以降でbabelとその関連するものをインストールします。最後にbabelを実行して型付きソースの作成時に、自動的に型を取り除いたJavaScriptソースを出力するようにしています。babelについて知りたい場合は、以下のサイトを見て下さい。code別のターミナルを開き、Flowを初期化します。型付きのソースを作成し、実行してみます。型付きのソースはsrcフォルダ内に以下のように作成しました。context);詳細な解説は避けますが、メソッドの引数や変数に型情報が付与されていることが分かるかと思います。このファイルを保存すると、先に起動したbabelによってbuildフォルダ内に型を取り除いたJavaScriptソースが出来ている筈です。context);Flowによるチェックとindex.jsの実行をしてみます。2つのコマンドを連結して実行します。1つ目のコマンドがFlowによるチェック、2つ目のコマンドがindex.jsの実行です。実行するindex.jsはbuildフォルダ内のものであることに注意してください。errors!」がFlowによるチェック、それ以降がindex.jsの実行結果です。次に型のエラーを起こしてみましょう。fooメソッドの結果を格納する型を文字列型にしてみます。error」と出ています。実行しているのはbuildフォルダ内の型情報がないindex.jsのため、実行結果は出力されています。Functionとして設定してみます。このフォルダ毎、以下のコマンドで圧縮します。Funtionの作成と同じく、圧縮したファイルをアップロードします。注意点としてはLambdaのHandlerは型情報を取り除いたindex.js内にあるので、Handlerは「build/index.handler」とbuildフォルダ内のindex.jsを指定することです。Functionの作成時に型チェックを行うことができました。何かの役に立てば幸いです。1,436,115手を動かす(プログラムを組む)ことで技術を理解するプログラマです。ソースコードから理解する技術、について書いていきたいと思います。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。EC2)環境において、不要な踏み台サーバをなくすことができる便利なアップデートです。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介252SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。