AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

AWS::Lambda::Function

AWS::Lambda::Function リソースは、イベントに応答してコードを実行できる AWS Lambda (Lambda) 関数を作成します。関数を作成するには、デプロイパッケージ実行ロールが必要です。詳細については、AWS Lambda Developer Guide の「CreateFunction」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::Lambda::Function", "Properties" : { "Code" : Code, "DeadLetterConfig" : DeadLetterConfig, "Description" : String, "Environment" : Environment, "FunctionName" : String, "Handler" : String, "KmsKeyArn" : String, "Layers" : [ String, ... ], "MemorySize" : Integer, "ReservedConcurrentExecutions" : Integer, "Role" : String, "Runtime" : String, "Timeout" : Integer, "TracingConfig" : TracingConfig, "VpcConfig" : VPCConfig, "Tags" : [ Resource Tag, ... ] } }

YAML

Type: "AWS::Lambda::Function" Properties: Code: Code DeadLetterConfig: DeadLetterConfig Description: String Environment: Environment FunctionName: String Handler: String KmsKeyArn: String Layers: - 文字列 MemorySize: Integer ReservedConcurrentExecutions: Integer Role: String Runtime: String Timeout: Integer TracingConfig: TracingConfig VpcConfig: VPCConfig Tags: Resource Tag

プロパティ

各プロパティの詳細 (デフォルト、有効な値、制約を含む) については、AWS Lambda Developer Guide の「CreateFunction」を参照してください。

Code

関数のコード。

Required: Yes

タイプ: AWS Lambda 関数コード

更新に伴う要件: 中断はありません。

DeadLetterConfig

処理に失敗したときに Lambda が非同期イベントを送信するキューまたはトピックを指定するデッドレターキュー設定。詳細については、「デッドレターキュー」を参照してください。

Required: No

Type: AWS Lambda Function DeadLetterConfig

更新に伴う要件: 中断はありません。

Description

関数の説明。

Required: No

Type: String

更新に伴う要件: 中断はありません。

Environment

実行中に関数コードからアクセス可能な環境変数。

Required: No

Type: AWS Lambda 関数の環境

更新に伴う要件: 中断はありません。

FunctionName

Lambda 関数の名前。名前を指定しない場合、AWS CloudFormation により名前が生成されます。詳細については、「Name タイプ」を参照してください。

重要

名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える必要がある場合は、新しい名前を指定します。

必須: いいえ

Type: String

更新に伴う要件: 置換

Handler

関数を実行するために Lambda が呼び出すコード内のメソッドの名前。形式にはファイル名を含めます。また、ランタイムに応じて名前空間や他の修飾子を含めることもできます。詳細については、「プログラミングモデル」を参照してください。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

KmsKeyArn

関数の環境変数を暗号化するために使用する AWS Key Management Service キーの Amazon リソースネーム (ARN)。指定しない場合は、Lambda はデフォルトのサービスキーを使用します。

Type: String

必須: いいえ

更新に伴う要件: 中断はありません。

Layers

関数の実行環境に追加する関数レイヤーのリスト。ARN ごとに各レイヤーを指定します (バージョンも含めます)。

Required: No

Type: List of String values

更新に伴う要件: 中断はありません。

MemorySize

関数がアクセスできるメモリの量。関数のメモリを増やすと、関数の CPU 割り当ても増えます。デフォルト値は 128 MB です。値は 64 MB の倍数にする必要があります。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

ReservedConcurrentExecutions

イベントを同時に処理する関数のインスタンスの最大数。このオプションは、関数の最大の同時実行数を設定し、さらに同時実行数を予約して使用可能な状態にします。詳細については、AWS Lambda Developer Guide の「同時実行数の管理」を参照してください。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

Role

関数の実行ロールの ARN。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

Runtime

関数のランタイムの識別子。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

Timeout

Lambda が関数を終了するまでに、関数に許可する実行時間。デフォルト値は 3 秒です。最大許容値は 900 秒です。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

TracingConfig

ModeActive に設定し、AWS X-Ray で着信リクエストのサブセットをサンプリングおよびトレースします。

Required: No

Type: AWS Lambda 関数の TracingConfig

更新に伴う要件: 中断はありません。

VpcConfig

VPC 内の AWS リソースへのネットワーク接続の場合は、VPC のセキュリティグループとサブネットのリストを指定します。関数を VPC に接続する場合は、その VPC を介してのみリソースとインターネットにアクセスできます。詳細については、「VPC 設定」を参照してください。

注記

このプロパティを指定すると、テンプレート内の別のリソース (セキュリティグループなど) が削除前にアタッチされた ENI を削除することを要求する場合には、AWS CloudFormation でスタックを削除できないことがあります。ec2:DescribeNetworkInterfaces のアクセス権限で AWS CloudFormation を実行することをお勧めします。これにより、AWS CloudFormation が ENI の状態をモニタリングでき、Lambda が ENI を削除するまで待機します (最大 40 分)。

Required: No

Type: AWS Lambda 関数の VpcConfig

更新に伴う要件: 中断はありません。

Tags

関数に適用するタグのリスト。

Required: No

Type: リソースタグ

更新に伴う要件: 中断はありません。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref によりリソース名が返されます。

次のサンプルでは、Ref 関数は AMILookUp 関数の名前 (MyStack-AMILookUp-NT5EUXTNTXXD など) を返します。

{ "Ref": "AMILookUp" }

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

Arn

Lambda 関数の ARN (arn:aws:lambda:us-west-2:123456789012:MyStack-AMILookUp-NT5EUXTNTXXD など)。

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

次の例では、S3 バケットでパッケージ化されたファイルを使用して Lambda 関数を使用します。

JSON

"AMIIDLookup": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "index.handler", "Role": { "Fn::GetAtt" : ["LambdaExecutionRole", "Arn"] }, "Code": { "S3Bucket": "lambda-functions", "S3Key": "amilookup.zip" }, "Runtime": "nodejs8.10", "Timeout": 25, "TracingConfig": { "Mode": "Active" } } }

YAML

AMIIDLookup: Type: "AWS::Lambda::Function" Properties: Handler: "index.handler" Role: Fn::GetAtt: - "LambdaExecutionRole" - "Arn" Code: S3Bucket: "lambda-functions" S3Key: "amilookup.zip" Runtime: "nodejs8.10" Timeout: 25 TracingConfig: Mode: "Active"

関連リソース

Lambda 関数を AWS CloudFormation カスタムリソースと共に使用する方法の詳細については、「AWS Lambda-backed カスタムリソース」を参照してください。

サンプルテンプレートについては、「AWS Lambda テンプレート」を参照してください。