投稿日: Nov 29, 2018

AWS Lambda の 2 つの新機能、Lambda Runtime API および Lambda Layers を発表します。新機能により、開発者はカスタムランタイムの構築、関数間における共通コードの共有および管理が可能になりました。 

Lambda を使用すれば、開発者にとって事実上すべての種類のアプリケーションまたはバックエンドサービスのコードの実行が容易になります。しかも管理は不要です。AWS Lambda の Runtime API は、標準化された HTTP ベースの仕様を定義し、Lambda と関数のランタイムがどう通信するかを成文化します。Runtime API により、Lambda と統合するカスタムランタイムを構築し、イベントに応じて関数を実行することができます。Runtime API を利用すれば、バイナリまたはシェルスクリプト、およびお好きなプログラミング言語および言語のバージョンを使用できます。Runtime API の開始方法はシンプルです。Lambda マネジメントコンソールまたは CLI を使用して関数をデプロイするときに、自ら用意したランタイムを提供することを指定できます。呼び出し中に、Lambda はランタイムコードをブートストラップし、Runtime API を通じて通信して、関数コードを実行します。今回のリリースでは、C++ および Rust ランタイムのリファレンス実装も公開します。Runtime API の詳細は、Lambda ドキュメントをご覧ください。

Lambda Layers は新しいタイプのアーティファクトで、任意のコードおよびデータを含有でき、参照されなかったり、1 つ以上の関数で同時に参照されたりします。サーバーレスアプリケーションの Lambda 関数は一般的に共通の依存関係を共有しますが、それには SDK、フレームワーク、そして今やランタイムが含まれます。レイヤーを使用すれば、複数の関数にわたって共通のコンポーネントを集中的に管理でき、コードの再利用の改善を実現できます。レイヤーの使用を開始するには、まずは共通コードを zip ファイルに収め、レイヤーとして Lambda にアップロードすればいいだけです。それから、共通コードを参照する関数を設定します。関数が呼び出されたら、レイヤーの内容が関数コードで利用可能になります。当社は今回、Python 向けのポピュラーな NumPy および SciPy 科学計算ライブラリを含むレイヤーも提供します。これらのライブラリは Lambda の実行環境での使用向けに予め構築済みかつ最適化済みです。Python 関数を備えたこのレイヤーを使用することで、複雑なデータ処理をするアプリケーションおよび機械学習アプリケーションの構築を迅速に開始できます。Lambda Layers の詳細は AWS Lambda ドキュメントをご覧ください。

Runtime API と Layers は別々に使用可能です。組み合わせて使用することでカスタムランタイムを発行して、その後レイヤーとして共有することもできます。AWS サーバーレスアプリケーションモデル (SAM) および SAM CLI を使用しての、Runtime API および Layers を利用するサーバーレスアプリケーションのテスト、デプロイ、管理も可能です。 

今回のリリースでは、Runtime API および Layers に精通した数社のテクノロジーパートナーもそれぞれランタイムレイヤー等をローンチしてくれています。アプリケーション管理、モニタリング、セキュリティといった追加の機能をサポートしたりする新たなランタイムおよびレイヤーで関数を作成できます。詳細は AWS Lambda パートナーページをご覧ください。

Runtime API および Layers は Lambda が利用可能なすべてのリージョンで使用できます。AWS Lambda を使用できるリージョンの詳細については、AWS リージョン表をご覧ください。AWS Lambda に関する詳細については、製品ページをご覧ください。また、使用を開始するには AWS Lambda コンソールにログインしてください。