0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Lambda】Lambda関数①

Posted at

基本設定

  • メモリは最小128MBから最大3,008MBまで64MB単位で選択可能

    → 最適なメモリサイズを指定することでコスト最適化が可能
  • タイムアウト時間は最長15分まで指定可能

    → タイムアウト時間を超えるLambda関数の実行は全て失敗となる
  • メモリに比例するCPUが割り当てられる(メモリと独立しての設定は不可)
  • Lambda関数の設定情報として環境変数を定義しコード内から参照することで、処理に応じて関数内の変数の値を変更可能

Lambdaレイヤー

複数のLambda関数でコードを共有するための機能

  • 複数のLambda関数で用いられる共通機能をレイヤーとして登録すれば、それをLambda関数で利用するレイヤーとして指定するだけで複数のLambda関数を利用出来る
  • 1つのLambda関数につきレイヤーを5つまで指定可能

バージョン / エイリアス

バージョン

Lambda関数のバージョンを発行する機能

  • 全てのLambda関数には $LATEST という特別なバージョン(常に最新のバージョン)が存在する
  • バージョンを発行すると、1から順に付与されたバージョン番号を持つ$LATESTのスナップショットが発行される
  • $LATEST以外のバージョンのコードや設定は編集不可
  • Lambda関数はバージョンごとにAWSのリソースを一意に特定するためのARNを持つ

    → 例:バージョン2の関数のARN

     arn:aws:lambda:aws-region:account-id:function:test:2

エイリアス

Lambda関数の各バージョンに別名を付与する機能

例:開発環境用にDEV、本番環境用にPRODというエイリアスを作成する
arn:aws:lambda:aws-region:account-id:function:test:DEV
arn:aws:lambda:aws-region:account-id:function:test:PROD

DEVにバージョン3、PRODにバージョン2を関連付け、DEVでの動作確認が完了したらDEVエイリアスをバージョン4、PRODエイリアスをバージョンを3に関連付けることで、呼び出す側のコードを変更することなくLambda関数のバージョンをあげることが可能

ポリシー・実行ロール

Lambda関数には以下2つのアクセス権限定義がある

1. Lambda関数ポリシー:Lambda関数へのアクセス権限を定義するもの(リソースベースのポリシー)
2. 実行ロール:Lambda関数からのアクセス権限を定義するもの(Lambda関数に割り当てるIAMロール)

VPCアクセス

Lambda関数からVPC内のEC2インスタンスやRDSインスタンスにアクセスするためには、VPCアクセス設定を行う必要がある

  • Lambda関数からアクセスするVPC・サブネット、Lambda関数に割り当てるセキュリティグループを選択
  • Lambdaは、Lambda関数の実行時にVPCアクセス設定をもとにENIを作成し、VPC内のリソースへのアクセスを可能にする

    → Lambda関数には、ENIの作成・削除などの権限を持つポリシーを付与したIAMロールを割り当てる必要がある
  • AWSLambdaVPCAccessExecutionRoleは、VPCアクセスを行うLambda関数に最低限必要なアクセス権限を定義しているIAMポリシー
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?