2018年5月11日金曜日

【AWS Lambda】関数作成1

株式会社ジェニシス 技術開発事業部の遠藤 太志郎(Tacy)です。

最近、AWSをフル活用して社内システムを作ったので、そのノウハウのご紹介を行っています。

今回はAWS Lambdaで関数を作成するところまで行ってみましょう。

ログイン

ログインするためにはもちろんID登録をする必要があり、ID登録だけにも権限とか注意点があるのですが、そこは割愛。

ログインした所からスタートします。

以下が私のLambdaのコンソール画面です。

https://ap-northeast-1.console.aws.amazon.com/lambda/home?region=ap-northeast-1#/functions


既に関数を作って稼働させているのでメニューに一つ関数があります。

ブログのストーリー進行の都合上、もう一個関数を作りたいと思います。

関数作成

右上にあるオレンジ色のボタン「関数の作成」をクリックします。

すると以下の画面に遷移します。



メニューが三つあります。

一から作成

説明文にあるように「Hello World」を出力するという、最小空っぽ構成でスタートするというものです。
一から全部自分で構築します。

設計図

メニューから選択し、最初からある程度構成された状態でスタートするものです。

初心者の自分としては「ゼロから構築するのは難しいし、最初からそこそこ動くなら便利そうだな」と思って私はこれを選択しました。

が、ハッキリ言って動かねえ!!

これね、確かに最初から多少なりともセットアップされた状態でスタート出来るのですけど、恐らくセキュリティとかの都合だと思うんですけど、とにかく疎通しない状態からスタートしやがるんですよ。

いや、とりあえず「テスト」とかやれば動くんですけど、「HTTPリクエストの受付」とか肝心なところになると全然ダメ。

初心者の自分には動かない原因なんて分からないですからね。
結局、一個一個理解してようやく動かすに至りました。

まあ、どんなもんかと思ってとりあえず設計図を選ぶと分かることもありますが、結局は一から作成するのと同じくらい理解に時間を費やす覚悟が必要です。

サーバレスアプリケーションのリポジトリ

これは私も未調査ですが、どうやら世界中のエンジニアが「私もAWSの関数を作ってみました。ぜひ使ってください」というのを公開しているようですね。


Yuji Nishimura.
西村 祐司さん? 日本人の方もいらっしゃるようです。

コメントを見る限り「挙動確認の為に試しに公開してみた」という物に見えます。結構フリーに公開出来る環境なようです。

探せば何か面白い関数が眠っているかもしれませんね。


さて、今回は「一から作成」で進んでいきたいと思います。

ランタイム

関数名は適当に「TacyBlogSample」として、次にランタイム。
実行言語を選択します。


2018年現在だと以下のラインナップです。

  • C# (.NET Core 1.0)
  • C# (.NET Core 2.0)
  • Go 1.x
  • Java 8
  • Node.js 4.3
  • Node.js 6.10
  • Node.js 8.10
  • Python 2.7
  • Python 3.6

え? 「PHPとかRubyとか無いんだけど? 俺こんな言語知らないよ?」って?
あなた、時代に乗り遅れてますよ!!

と言うのも、Lambdaのようなサーバレス環境は言語が固定されており、メニューの中に入っている言語しか使用出来ません。

どの言語をサポートするかはクラウド業者が決めますから、クラウド業者から見て評価の高い言語しか使用出来ないということです。

つまり、AWS様は「PHPとRubyなんでどうてもええわ」と思っているってことなわけですよ。見放されています。

今後クラウドを使っていきたい人はクラウド界で人気のある言語を習得するというスキルセット戦略を持つ必要があります。

私のオススメは断然「Python」です。
いくつかクラウドサービスを見てみましたが、Pythonは必ず優先的にサポートされています。

皆さんもぜひPythonを習得して下さい。

と言うわけで、とりあえずPython3.6を選択。

ロール

ロールというのは、権限設定です。

「この関数はファイルサーバに書き込みが出来る」
「この関数はログ出力が出来る」

とかそういうのです。

私は一人で小規模なアプリを開発しただけなので余り権限を意識していませんが、複数人で大規模なアプリを開発するとなると、権限を適切に割り振る設計も重要になってくるのでしょう。

余り気にしていないと言っても、

  • 「あれ? 動かないぞ?」 ⇒ 権限が無かった。

というのは都度都度発生しますので、重要です。

ともかく、今は適当に新規で作って先に進みます。



出来上がりました。

続く

今日のところはここまで。

次回から関数コンソールの中身を見ていきましょう。

0 件のコメント:

コメントを投稿