初心者のための完全なAWSラムダハンドブック(第1部)
Serverless世界へようこそ.あなたが聞く最初のことの一つは、AWSラムダです-あなたはそれについて聞いて続けていきます!一方、アーキテクチャには冗長性がないことがないが、Serverlessなアプリケーションでは重要なコンポーネントである.この3つの部分AWSラムダハンドブックシリーズの最初のポストでは、AWSラムダとは何かを実行し、様々な用語、基本的にラムダ関数を作成する方法とそれを実行する方法に戻る.畝
AWSラムダは何ですか?
AWSラムダはイベントによってServerlessな計算プラットホームであり、イベントに応じてサービスを回転させるpart 1 and part 2 ラムダトリガシリーズへの完全なガイドの.AWSが設定したトリガーイベントを監視している間、あなたのコードは単にファイルとしてそこにあります.そのイベントが発生すると、コードが実行され、必要な操作が実行されます.ユーザーがそれを探すために外に出るまで、サーバーが存在しないので、それは『Serverlessな』とみなされますFunction-as-a-Service (FaaS) .
ラムダへのもう一つのボーナスはそれがAWSによって管理される自動スケーラビリティであるということです.サービスは自動的に成長ニーズに対応し、同様にリソースを節約するために縮小されます.これらのすべては、AWSラムダを資源と予算の浪費を減らす大きな解決になります.畝
定義定義
どのように設定し、ラムダを設定するに入る前に、以下の定義と用語一般的に使用され、話されている.
ラムダ関数:アプリケーション内の特定のタスクを実行する関連ステートメントのグループです.これは、コードとそれに関連付けられているすべての依存関係で構成されます.各ラムダ関数には、関連する構成情報(名前、説明、エントリポイント、およびリソース要件)があります.
関数自体は以下のような重要な側面を持っています:
トリガは左側に表示され、この場合、APIゲートウェイトリガーはアクティブです.リソースは右側に表示されます.この場合、CloudWatchログとDynamoDBです.
イベントソース:イベントを発行するエンティティ.イベントソースは、実行する関数をトリガーするイベントを生成するAWSサービスまたは開発者アプリケーションを作成できます.
呼び出し:特定のラムダ関数を実行するための呼び出しが呼び出されます.これらは、起動する関数のコードのトリガです.呼び出しはどちらでもよいsynchronous or asynchronous .
イベントソースマッピング:イベントソースが特定のラムダ関数に関連付けられているAWSサービスの構成.特定のイベントが発生すると、ラムダ関数の自動呼び出しが可能になります.
ラムダの実行モデル:ラムダ関数を作成するとき、あなたの関数を許容するメモリ量と最大実行時間などの構成情報を指定できます.その関数が呼び出されると、Execution Context あなたが提供している設定の設定に基づきます.
コールドスタート:コールドスタートは、ラムダ関数が長期間にわたって使用されていない後に呼び出されたときに発生します.
構成要素
ラムダ関数は、コードと関連する依存関係から構成され、その中に構成情報があります.APIは、構成データの一部を更新できるようにも提供されます.ラムダ関数の設定情報には、これらの重要な要素があります.
単純なAWSラムダ関数の作成
API呼び出しによって呼び出される単純なラムダ関数を作成しましょう.すなわち、URLを生成します.これは、ブラウザで入力されたときに関数を呼び出します.我々の入力はこのURLを通して機能に渡されます、そして、出力は返されて、ブラウザで示されます.
ステップ1 :関数の作成
ラムダコンソールパネルで、Create関数をクリックします.あなたの関数の名前を与え、私たちの場合は、それはdemofunctionです.また、この例では特定の言語を使用するので、実行時にpython 3を選択します.最後に、あなたの関数の役割を名前、およびポリシーテンプレートから簡単なMicroService Permissionsを選択します.
を作成する機能をクリックすると、次の画面では、実際のコードを提供することができます.我々は、ゼロからこのAPIをオーサリングしていますが、アマゾンのリポジトリから探索することができるテンプレートのトンがあります.
次のページにはインラインテキストエディタがあります.以下の内容に置き換えます:
import json
print('Loading function')
def lambda_handler(event, context):
firstName = event['first']
lastName = event['last']
return 'Greetings, ' + firstName + ' ' + lastName +'!'
最初の行はJSONライブラリをPythonで使用してJSONを解析するための行です.ラムダ演算子関数は、そのパラメータの一つとしてイベントを取得しますこのイベントは、一連のデータをもたらします.関数内の第1行目と第2行目は、データを第1および第2にラベル付けして、それぞれの変数に格納する.最後の行はメッセージを返します、そして、それは我々が我々のブラウザーで見るものです.
ここではAPIゲートウェイトリガーを追加することができますが、明快のために別々に行いましょう.今のところ、保存をクリックし、テスト段階に移動できます.
ステップ2 :機能のテスト
あなたの機能をテストするには、それが' testevent 'と言う右上隅をクリックし、[構成]テストイベントをクリックします.
ここでは、JSONペイロードとの最初の出会いがあります.テンプレートtesteventで.
ファイルの内容を次の行に置き換えます.
{
"first": "Jane",
"last": "Doe"
}
`テストイベントを保存しました.前のメニューのテストをクリックします.実行が成功すると、次のようになります.
ステップ3:トリガーを設定する
前に述べたように、我々のユーザーはinvoke the function あるURLにアクセスします.AWSサービスの下でAPIゲートウェイコンソールに移動し、Get Startまたは新しいAPIオプションをクリックします.
ゼロから1つを作りましょう:
私たちのAPIはDashbird APIという名前です.作成APIをクリックした後.APIがアクセスできるリソースを取得します(次のメニューに記載されています).
リソースがないので、我々はちょうど前方スラッシュを得る.ただし、アクションのドロップダウンとCreateリソースを使用して新しいリソースを作成できます.
リソースリストで、この新しいリソース(名前付きの挨拶)を選択することができます.私たちのHTTPリクエストメソッドは、関数を呼び出すことから適切な応答を得ることです.
このメソッドはラムダ統合オプションを選択し、選択した関数名を入力します.また、ステップ2のスクリーンショットからARN (右上角)、それがある領域を示しているストリングEu - central - 1を持ちます.上記のように、ラムダ領域に対して同じ領域が選択されることを確認してください.その後、関数を呼び出す許可を求めます現在、我々は最終的な変更の準備ができている.
このメソッドのGETメソッドの実行について説明します.
まだ入力パラメータが正しく渡されるようにする必要があります.そのためには、上記からの統合要求ステージを変更する必要がある.変更を加えるには、以下をクリックします.
すべてのままにするには、メニューの非常に下部を除いて、ここでは、我々の入力テンプレートを記述するために取得するボディマッピングのテンプレートを見つけるメニューを残します.テンプレートはアプリケーション/JSON型になります.
`{
"first": "$input.params('first')",
"last": "$input.params('last')"
}
`
The dollar sign and the input.params() part act as a placeholder and helps us define the structure of a proper request. Now we can save our changes, and click on Actions and select Deploy API option. It will ask for a stage name; give it a suitable name (in our case it is called prod). All is set! We can now run this function in real-time.
関数を実行する
The function can be invoked using a unique URL associated with it. In the API console, where we first selected Resources, select Stage submenu instead. Then drop down to greetings and then to the GET option.
It will give you an invoke URL, which you can click on for the function to run. However, on the first try you might get an error message if you didn't give any input. You can rectify this by modifying the URL like this:
https://.........amazonaws.com/prod/greetings?first=John&last=Doe
Adding the last part to the URL would result in successful execution of the function:
ラムダを作成するオプション
Of course, the above is just one example using one method, so when creating Lambda for your own application it's important to remember the other options available.
Writing Code: the supported languages are Node.js, Java, C#, Python and Go. These languages use specific tools for authoring code. Some of them are AWS Lambda console, Eclipse IDE, etc.
Deployment Packages: Deploying code and creating a Lambda function requires you to first package your code and dependencies in a deployment package in order to develop a Lambda function. Once done, you need to upload the deployment package to AWS Lambda, so it will allow you to create a Lambda function. Organizing your code and dependencies in specific ways is the first step towards building the deployment package. Deployment package instructions may vary depending on the language you have chosen to author the code.
Creating Lambda: You can choose between AWS Lambda console, AWS CLI, and AWS SDKs to create a Lambda function.
In the next part of our AWS Lambda Handbook for Beginners series, we'll be explaining AWS Lambda pricing, sharing some facts that you may not have known about, and great use cases. Stay tuned!
Reference
この問題について(初心者のための完全なAWSラムダハンドブック(第1部)), 我々は、より多くの情報をここで見つけました https://dev.to/dashbird/the-complete-aws-lambda-handbook-for-beginners-part-1-3bmbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol