AWS::Lambda::Functionのプロパティ

AWS::Lambda::Functionのプロパティ:


概要

前回の記事を書いた時,必要最低限のものしか設定していなかったので,

それぞれのプロパティがどんなものなのかメモ残しておく


参考資料

AWS::Lambda::Function

公式ドキュメントを参考にしています。


AWS::Lambda::Function


テンプレートファイル(sample)

コメント書けるのでyaml形式で記述していきます。

Type: "AWS::Lambda::Function" 
Properties:  
  Code: 
    Code 
  DeadLetterConfig: 
    DeadLetterConfig 
  Description: String 
  Environment: 
    Environment 
  FunctionName: String 
  Handler: String 
  KmsKeyArn: String 
  MemorySize: Integer 
  ReservedConcurrentExecutions: Integer 
  Role: String 
  Runtime: String 
  Timeout: Integer 
  TracingConfig: 
    TracingConfig 
  VpcConfig: 
    VPCConfig 
  Tags:  
    Resource Tag 
それぞれのプロパティに関して説明していきます。


Code

Lambda関数のソースコード

ここはインラインで直接テンプレートファイルに書くこともできますし,S3に配置したzipファイルを指定することもできます。


インラインで書く場合

  • ポイント1: インラインで書く場合はZipFileというプロパティを指定する
  • ポイント2: インラインでコードを書く場合には|をまず記述して次の行からか
#必須 
Code: 
  #必須 
  ZipFile: | 
    # coding: utf-8 
 
    def handler(event, context): 
      print "Hello World" 


S3のzipファイルを使用する場合

  • ポイント1: zipファイルが存在するS3のバケットの名前を指定する。

    • ※S3のzipファイルを使用する場合は必須
  • ポイント2: S3内のzipファイルが存在する場所(パス)と名前(拡張子まで)を指定する

    • ※S3のzipファイルを使用する場合は必須
  • ポイント3: バージョニングが有効なS3を使用する時に,zipファイルのバージョンIDを指定することができる

    • ※この値は任意
#必須 
Code: 
  #必須 
  S3Bucket: "S3_Bucket_Name" 
  #必須 
  S3Key: "lambda/hoge.zip" 
  #任意 
  S3ObjectVersion: "xxxxxxxxxxx" 


DeadLetterConfig

  • ポイント: Lambdaがイベントを処理できないときに送信するデッドレターキューのARNを指定する。

    AmazonSNSトピックまたはAmazonSQSキュー
  • ポイント1: TargetArnというオプションに
#任意 
DeadLetterConfig: 
  TargetArn: "arn:aws:sns:xxxxxxxxxxxxxx" 
DeadLetterConfigについて詳しくはこれとかを見てもらえると


Description

関数の説明を記述する項目

#任意 
Description: "説明" 


Environment

  • ポイント: Lambdaが使用できる環境変数のキーと値のペアを指定する
#任意 
Environment: 
  Env: "dev" 
  S3_ACCESS_KEY: "xxxxxxxxxx" 


FunctionName

  • ポイント: 関数の名前

    • ※指定しない場合は一意の物理IDを生成し、そのIDを関数名として設定される
必須ではないですが,設定しておいた方がいいでしょう

ただし,名前を指定すると、このリソースの置換が必要な更新はできない

#任意 
FunctionName: "example-lambda-function" 


Handler

Lambdaがコードの実行を開始するために呼び出す(ソースコード内の)関数の名前。

※前述したfunctionNameとは別物


インラインでコードを記述した場合

  • ポイント: インラインでコードを書いた場合は,index.をつける
#必須 
## index.{関数名} 
Handler: "index.handler" 


S3のzipファイルを使用する場合

  • ポイント: S3のzipファイルを使用する場合は実行したい関数があるファイル名と関数名を記述する
#必須 
## {ファイル名}.{関数名} 
Handler: "main.handler" 


KmsKeyArn

  • ポイント: Lambdaが環境変数値を暗号化および復号化するために使用するKMSのARNを指定する
#任意 
KmsKeyArn: "arn:aws:kms:***********" 
KMSについて詳しくはこれとかを見てもらえると


MemorySize

  • ポイント: Lambda関数に割り当てるメモリ量(MB)を指定する
#任意 
MemorySize: 1024 


ReservedConcurrentExecutions

  • ポイント: 関数用に予約する最大同時実行数を指定する

    • ※デフォルトは1000
#任意 
ReservedConcurrentExecutions: 1000 


Role

  • ポイント: AWSサービスにアクセスするコードを実行するときにLambdaが引き受けるIAM実行ロールのARN
#必須 
Role: "arn:aws:iam::***********" 


Runtime

  • ポイント: Lambda関数のランタイム環境を指定する。

    • 有効な値

      • nodejs
      • nodejs4.3
      • nodejs6.10
      • nodejs8.10
      • java8
      • python2.7
      • python3.6
      • dotnetcore1.0
      • dotnetcore2.0
      • dotnetcore2.1
      • nodejs4.3-edge
      • go1.x
#必須 
Runtime: "python2.7" 


Timeout

  • ポイント: Lambda関数が実行されてからタイムアウトにする時間を指定する

    • ※最大300秒
#任意 
Timeout: 300 


TracingConfig

  • ポイント: AWS X-Rayを使用してLambda関数の追跡とモニタリングをする場合は設定する

    • ※デフォルトはPassThrough
    • 有効な値

      • PassThrough
      • Active
TracingConfigに関して詳しくはこれを見ていただけると

#任意 
TracingConfig: "Active" 


VpcConfig

Lambda関数がVPCのリソースにアクセスする必要がある場合に指定する

  • ポイント: VpcConfigを設定する場合は以下の2つが必須項目となる

    • SecurityGroupIds

      • Lambda関数がアクセスを必要とするリソースが含まれるVPC内の1つ以上のセキュリティグループのID
    • SubnetIds

      • Lambda関数がアクセスを必要とするリソースが含まれるVPC内の1つ以上のサブネットのID
#任意 
VpcConfig: 
  #必須 
  SecurityGroupIds: 
    - "***********" 
    - "***********" 
  #必須 
  SubnetIds: 
    - "***********" 
    - "***********" 


Tags

  • ポイント: Lambdaに関するタグのキーをセットする

    • ※タグを使用して関数をグループ化し、フィルタリングできる
#任意 
Tags: 
  "キー名1": "値1" 
  "キー名2": "値2" 

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)