BT

Kappa: AWS Lambdaへのデプロイを容易化する

| 作者: Daniel Bryant フォローする 363 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2015年1月19日. 推定読書時間: 4 分 |

あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。

原文(投稿日:2015/01/15)へのリンク

Mitch Garnaat氏は、‘ラムダ関数’を、イベントに応答してコードを実行し、自動的に関連するコンピューティングリソースを管理するコンピューティングサービスであるAWS Lambdaへのデプロイを容易にする、Kappaという名前のコマンドラインツールを作成した。

Amazon Web Service (AWS) Lambdaサービスは、AWSクラウドコンピューティングプラットフォームにコードをデプロイして、Webサイトのクリック、新しいファイルがAWS S3オブジェクトストレージバケツに登場した、新しいデータがAWS Kinesisリアルタイムストリーム処理インスタンスに書き込まれたなどのイベントと関連づけることができる。

AWS Lambdaは通常、イベントが発生してから数ミリ秒以内にコードを実行し、サービスが自動的に計算能力を管理し、必要なインフラを起動し、各イベントのコードを実行することができる。現在、AWS LambdaはChromeのJavaScriptランタイム上に構築されたプラットフォームであるNode.jsで書かれたコードをサポートしている。

AWSへのインターフェイスbotoの作成者であるGarnaat氏は、ローカル開発環境からAWS Lambdaへのコードのデプロイで、それぞれ異なるAWSサービスを利用している時の複数の手動ステップがあることを発見し、Kappaを作成した。 Garnaat氏は、Amazon Kinesisインスタンスにレコードが書き込まれるたびに呼び出される、小さなJavaScript関数をAWS Lambdaにデプロイするのに必要な手順のを示した:

  • Javascript関数を書く (AWS Lambdaは、現時点ではJavaScriptのみをサポートしている)
  • 実行時に必要なAWSリソースにアクセスできるようにするために、ラムダ関数を利用することができるIAMロールを作成する
  • Javascript関数と依存関係をZipでまとめる
  • AWS Lambdaサービスへzipファイルのアップロード
  • ラムダ関数へテストデータの送信
  • ラムダ関数を呼び出すサービスによって使われるIAMロールを作成
  • Amazon CloudWatchログからラムダ関数の出力を取得
  • ラムダ関数にイベントソースを追加
  • ライブ関数の出力を監視

Garnaat氏によると、Kappaのゴールはデプロイプロセスを簡素化することでラムダ関数を容易にデプロイすることができるようにすることであり、“[Kappa]は多くの手間のかかる詳細を処理して、ラムダ関数が実際になにをするかにより注力することができるようにしようとしている。”と言う

Kappaはコマンドラインから実行し、AWS LambdaサービスはローカルファイルシステムのYAMLファイルで指定されている。 この構成ファイルには、AWS Lambdaと対話するときにKappaが利用する必要なクレデンシャルが含まれるAWSプロファイル、コードがデプロイされるAWSリージョン、ラムダ関数をドライブするイベントを参照するイベントソース属性といった特定情報を指定する。

Kappaは、関数の実行と呼び出しのためのAWS Identity Access Management (IAM)ロールを管理するためにCloudFormationテンプレートを利用することでラムダ関数と関連づけられたセキュリティ要件の処理を自動化する。 Garnaat氏は、IAM機能を処理するためにCloudFormationを使って、ロールとポリシーを作成と更新するトランザクションのアプローチを提供し、gitのようなSCMツールを使ってバージョン管理することができるようになると述べている。

Kappaはコードのデプロイと実行を編成するコマンドを提供する。‘deploy’コマンドは必要なインフラストラクチャスタックの作成をトリガーし、ローカルに作成されたラムダ関数をzipして、AWS Lambdaにアップロードする。‘add-event-source’コマンドは、CloudFormationテンプレートで指定された呼び出しロールを使用して、特定のイベントにアップロードされたラムダ関数を関連づけするために使用することができる。

Kappaは、ロググループ名と関数出力を含むCloudWatchログサービス内のストリームを探し、直近のログイベントをストリームからコンソールにプリントする’tail’コマンドも提供する。

ロールやポリシー、ラムダ関数を変更が必要な場合、必要に応じてKappa ‘deploy’コマンドを呼び出すことができ、KappaはCloudFormationスタックにアップロードし、新しいバージョンの関数をAWS Lambdaにアップロードする。

Kappaは、Python package index (PyPI)を使ってのインストールと、プロジェクトのGithubリポジトリーをクローンして、AWS Advent blogの手順に従って手動でインストールすることができる。AWS Lambdaの詳細情報はLambda製品ページを見て欲しい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

冗長コードの検知と解析

Zebedee Mason 2017年11月16日 午前12時43分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT