Successfully reported this slideshow.
Your SlideShare is downloading. ×

AWSCLI Lambda

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
AWSCLI AutoScaling
AWSCLI AutoScaling
Loading in …3
×

Check these out next

1 of 18 Ad
Advertisement

More Related Content

Slideshows for you (20)

Advertisement

Similar to AWSCLI Lambda (20)

Recently uploaded (20)

Advertisement

AWSCLI Lambda

  1. 1. Operation Lab 運用設計ラボ Lambda / AWSCLI 運用設計ラボ合同会社 シニアアーキテクト 波田野 裕一 2015-10-26 1.9.0
  2. 2. Operation Lab 運用設計ラボ 本資料について • AWS CLIからAWSのプロダクト理解するために自力で作成した資料で す。 • なるべく公式ドキュメントを確認していますが、間違いがあったらご めんなさい(>< • ご意見、コメントなどについては、JAWS-UG CLI専門支部まで是非。 • 本資料はJAWS-UG CLI専門支部 #31 Lambda入門での発表資料です。
  3. 3. Operation Lab 運用設計ラボ Lambdaとは
  4. 4. Operation Lab 運用設計ラボ What s Lambda • Amazonが提供するコンピューティングサービス • サーバレスであることが最大の特徴 • AWSのプロダクト間をつなぐ糊みたいなもの • 今のところAWS独自の機能 (らしい) • 課金 =リクエスト回数 + 100ms単位 + メモリ量
  5. 5. Operation Lab 運用設計ラボ Lambdaの要素
  6. 6. Operation Lab 運用設計ラボ Lambdaの要素 Lambda 関数 イベントソース Lambda 関数 イベントソース プッシュモデル プルモデル 非同期実行同期実行 PullPush EventRequestResponse 関数のレスポンス不要関数のレスポンス必要 Invocation Role Execution Role Execution Role Event Source Mapping alias version configuration
  7. 7. Operation Lab 運用設計ラボ LambdaとAWSプロダクト Lambda 関数 イベントソース Lambda 関数 イベントソース プッシュモデル プルモデル 非同期実行同期実行 PullPush EventRequestResponse 関数のレスポンス不要関数のレスポンス必要 DynamoDB Kinesis ユーザアプリ(SDK) S3 SNS SES Cognito CloudWatchLogs CloudFormation API Gateway Invocation Role Execution Role Execution Role Event Source Mapping DynamoDB Kinesis S3 SNS CloudFormation API Gateway ユーザアプリ(SDK)/SES/Cognito/CloudWatchLogユーザアプリ(SDK)/SES alias version configuration
  8. 8. Operation Lab 運用設計ラボ Lambdaの要素 (プルモデル) Lambda 関数 イベントソース プルモデル 非同期実行 Pull Event 関数のレスポンス不要 DynamoDB Kinesis Execution Role Execution Role Event Source Mapping • Lambdaがイベントソースをポーリングして、 イベントが発生した場合に関数を呼び出す。 • 関数には以下に対するアクセス権限が必要。 • イベントリソース • 関数が処理を実行する対象のリソース • 関数とイベントリソースを紐付けるために、 Event source Mappingの設定が必要になる。 • プルモデルの場合、呼び出しタイプはEvent(非 同期実行)のみになる。 Event Source Mapping Execution Role alias version configuration
  9. 9. Operation Lab 運用設計ラボ Lambdaの要素 (プッシュモデル) Lambda 関数 イベントソース プッシュモデル 非同期実行同期実行 Push EventRequestResponse 関数のレスポンス不要関数のレスポンス必要 ユーザアプリ S3 SNS SES Cognito CloudWatchLogs CloudFormation API Gateway SDK Invocation Role Execution Role alias version configuration ! S3 SNS CloudFormation API Gateway ユーザアプリ(SDK)/SES/Cognito/CloudWatchLogユーザアプリ(SDK)/SES • イベントソースがその内部イベントの発生に 従って関数を呼び出す。 • イベントソースにはLambda関数を発動する 権限が必要。 • 関数には処理を実行する対象のリソースに対 するアクセス権限が必要。 • 同期実行か非同期実行はイベントソースによっ て異なる。(どちらでも実行できるイベント ソースもある。) Invocation Role Execution Role
  10. 10. Operation Lab 運用設計ラボ Lambdaの要素 (ロール) 関数は処理を実行する対象のリソースに対する権限が必要。 Invocation Role Execution Role イベントソースがLambda関数を発動する権限が必要。 (プッシュモデルのみ) • Basic Execution Role • S3 Execution Role • Kinesis Execution Role • DynamoDB Basic Execution Role • DynamoDB Event Execution Role
  11. 11. Operation Lab 運用設計ラボ Lambdaの要素 (共通) Lambda 関数 configuration • 関数名 • 説明(ディスクリプション) • IAMロール • ハンドラ (Node.jsでは "モジュール名.export") • タイムアウト (デフォルト: 3秒) • メモリサイズ (デフォルト: 128MB, 64MB単位) Lambda関数の設定
  12. 12. Operation Lab 運用設計ラボ Lambdaの要素 (共通) Lambda 関数 alias version 特定のバージョンに対するポインタ • 特定のバージョンに対するポインタとなるARNを作成することができる。 • エイリアスの変更によって、特定のバージョンへの移行やロールバックが容 易になる。 • イベントリソースからの起動許可は、明記されたARNのみに許可されるので、 エイリアスに対する許可が推奨されている模様。 Lambda関数の特定のバージョン • 最初は、$LATESTのみ存在する。(関数作成時にもバージョン発行可) • 現在の関数のコードに対してバージョンを発行することができる。 • バージョン毎にARNが発行される。 • 非修飾ARN: arn:aws:lambda:aws-region:acct-id:function:helloworld • 修飾ARN: arn:aws:lambda:aws-region:acct-id:function:helloworld:$LATEST
  13. 13. Operation Lab 運用設計ラボ 関数の実行 (invoke) Lambda 関数 • 実行ログは、CloudWatchLogsに残る。 • CloudWatchにメトリックが生成される。 • Lambdaの実体はEC2上のコンテナ • Lambdaは関数を実行する。 • イベントはペイロードとして関数に渡される。 • Amazon Linuxの環境を利用できる。 • ファイルシステムは/tmpのみ利用できる。
  14. 14. Operation Lab 運用設計ラボ 関数実装のベストプラクティス Lambda 関数 http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/best-practices.html
  15. 15. Operation Lab 運用設計ラボ lambda / awscli 1.9.0
  16. 16. Operation Lab 運用設計ラボ lambdaコマンドの概要 (24コマンド) • 関数関連 (7コマンド) • 作成、削除 (create-function, delete-function) • 情報 (list-functions, get-function, • 更新 (update-function-code) • バージョン (publish-version, list-versions-by-function) • 関数設定関連 (2コマンド) • 情報 (get-function-configuration) • 更新 (update-function-configuration) • 権限設定関連 (3コマンド) • 追加、削除 (add-persmission, remove-permission) • 情報 (get-policy) 1.9.0
  17. 17. Operation Lab 運用設計ラボ lambdaコマンドの概要 (24コマンド) • 関数実行関連 (2コマンド) • 実行 (invoke, invoke-async) • イベントソースマッピング関連 (5コマンド) • 追加、削除 (create-event-source-mapping, delete-event-source-mapping) • 情報 (list-event-source-mappings, get-event-source-mapping) • 更新 (update-event-source-mapping) • 関数エイリアス設定関連 (5コマンド) • 追加、削除 (create-alias, delete-alias) • 情報 (list-aliases, get-alias) • 更新 (update-alias) 1.9.0
  18. 18. Operation Lab 運用設計ラボ http://www.operation-lab.co.jp/ OperationLab運用設計

×