AWS::Serverless::Function - AWS Serverless Application Model

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

AWS::Serverless::Function

AWS Lambda 関数、 AWS Identity and Access Management (IAM) 実行ロール、および関数をトリガーするイベントソースマッピングを作成します。

AWS::Serverless::Function リソースは Metadata リソース属性もサポートするため、アプリケーションに必要なカスタムランタイムを構築するAWS SAMように に指示できます。カスタムランタイムのビルドの詳細については、「」カスタムランタイムのビルドを参照してください。

構文

でこのエンティティを宣言するには AWS サーバーレスアプリケーションモデル (AWS SAM) テンプレート。次の構文を使用します。

プロパティ

AssumeRolePolicyDocument

この関数用にデフォルトで作成された Role の AssumeRolePolicyDocument を追加します。このプロパティが指定されていない場合、 はこの関数にデフォルトの継承ロールAWS SAMを追加します。

タイプ: JSON

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 AssumeRolePolicyDocument リソースの AWS::IAM::Role プロパティに似ています。 は、この関数の生成されたAWS SAMロールにこのプロパティIAMを追加します。ロールの Amazon リソースネーム (ARN) がこの関数に指定されている場合、このプロパティは何も実行しません。

AutoPublishAlias

Lambda エイリアスの名前。Lambda エイリアスの詳細については、の「Lambda関数エイリアス」を参照してくださいAWS Lambda Developer Guide。このプロパティを使用する例については、「サーバレス・アプリケーションを徐々に導入する」を参照してください。

AWS SAM は、このプロパティを設定すると、AWS::Lambda::Version および https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html AWS::Lambda::Alias リソースを生成します。このシナリオの詳細については、「」AutoPublishAlias プロパティが指定されていますを参照してください。生成されたAWS CloudFormationリソースに関する一般的な情報については、「」作成済み AWS CloudFormation リソースを参照してください。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは に固有AWS SAMでありAWS CloudFormation、同等のものはありません。

AutoPublishCodeSha256

CodeUri 新しいバージョンを発行するかどうかを判断するLambdaために、 の値とともに使用される文字列値。

このプロパティは、 AWS SAM テンプレートに次の特性がある場合に発生する問題に対処します。 DeploymentPreference オブジェクトは段階的なデプロイ用に設定されている (「」を参照サーバレス・アプリケーションを徐々に導入する)、 AutoPublishAlias プロパティが設定され、デプロイ間で変更されない、 CodeUri プロパティは設定され、デプロイ間で変更されない。

このシナリオは、 Amazon Simple Storage Service (Amazon S3) の場所に保存されているデプロイパッケージが、更新された Lambda 関数コードを含む新しいデプロイパッケージに置き換えられているが、 CodeUri プロパティは変更されないままである場合に発生します (新しいデプロイパッケージが新しいAmazon S3場所にアップロードされ、 が新しい場所に変更CodeUriされるのとは対照的です)。

このシナリオでは、段階的なデプロイを正常にトリガーするには、 に一意の値を指定する必要がありますAutoPublishCodeSha256

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは に固有AWS SAMでありAWS CloudFormation、同等のものはありません。

CodeSigningConfigArn

AWS::Lambda::CodeSigningConfig リソースの ARN。この関数のコード署名を有効にするために使用されます。コード署名の詳細については、「」AWS SAM アプリケーションのコード署名の設定を参照してください。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 CodeSigningConfigArn リソースの AWS::Lambda::Function プロパティに直接渡されます。

CodeUri

関数コードの Amazon S3 URI、ローカルファイルパス、またはFunctionCodeオブジェクト。このプロパティは、 PackageType プロパティが に設定されている場合にのみ適用されますZip。それ以外の場合は無視されます。

メモ:

1. PackageType プロパティが Zip (デフォルト) に設定されている場合CodeUriは、 InlineCode または のいずれかが必要です。

2. Amazon S3 URI またはFunctionCodeオブジェクトが指定されている場合、参照されるAmazon S3オブジェクトは有効なLambdaデプロイパッケージである必要があります。

3. ローカルファイルパスが指定されている場合、コードを適切に変換するには、 sam deploy または sam package コマンドを含むワークフローをテンプレートが通過する必要があります。

タイプ: 文字列 | FunctionCode

必須: 条件付き

AWS CloudFormation compatibility: このプロパティは、 Code リソースの AWS::Lambda::Function プロパティに似ています。ネストされた Amazon S3 プロパティの名前は異なります。

DeadLetterQueue

が処理できないイベントAmazon Simple Notification Serviceを送信する Amazon SNS (Amazon Simple Queue Service) トピックまたは Amazon SQS (Lambda) キューを設定します。デッドレターキューの機能の詳細については、の「 AWS Lambda 関数のデッドレターキュー」を参照してくださいAWS Lambda Developer Guide

タイプ: マップ | DeadLetterQueue

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 DeadLetterConfig リソースの AWS::Lambda::Function プロパティに似ています。では AWS CloudFormation 型は から派生しますがTargetArn、 では とともに型を渡すAWS SAM必要がありますTargetArn

DeploymentPreference

段階的なLambdaデプロイを有効にする設定。

DeploymentPreference オブジェクトを指定すると、 は AWS SAMAWS::CodeDeploy (スタックごとに 1 つ)、AWS::CodeDeploy::DeploymentGroupServerlessDeploymentApplication ()、AWS::IAM::Role <function-logical-id>DeploymentGroup () を作成しますCodeDeployServiceRole

タイプ: DeploymentPreference

必須: いいえ

AWS CloudFormation compatibility: このプロパティは に固有AWS SAMでありAWS CloudFormation、同等のものはありません。

関連項目: このプロパティの詳細についてはサーバレス・アプリケーションを徐々に導入する、「」を参照してください。

Description

関数の説明。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Description リソースの AWS::Lambda::Function プロパティに直接渡されます。

Environment

ランタイム環境の設定。

タイプ: 環境

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Environment リソースの AWS::Lambda::Function プロパティに直接渡されます。

EventInvokeConfig

Lambda 関数のイベント呼び出し設定を記述する オブジェクト。

タイプ: EventInvokeConfiguration

必須: いいえ

AWS CloudFormation compatibility: このプロパティは に固有AWS SAMでありAWS CloudFormation、同等のものはありません。

Events

この関数をトリガーするイベントを指定します。イベントは、1 つのタイプと、そのタイプに依存する一連のプロパティで構成されます。

タイプ: EventSource

必須: いいえ

AWS CloudFormation compatibility: このプロパティは に固有AWS SAMでありAWS CloudFormation、同等のものはありません。

FileSystemConfigs

() ファイルシステムの接続設定を指定する Amazon Elastic File SystemFileSystemConfigAmazon EFS オブジェクトのリスト。

テンプレートに AWS::EFS::MountTarget リソースが含まれている場合はDependsOn、リソース属性も指定して、関数の前にマウントターゲットが作成または更新されるようにする必要があります。

タイプ: リスト

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 FileSystemConfigs リソースの AWS::Lambda::Function プロパティに直接渡されます。

FunctionName

関数の名前。名前を指定しない場合、一意の名前が生成されます。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 FunctionName リソースの AWS::Lambda::Function プロパティに直接渡されます。

Handler

実行を開始するために呼び出されるコード内の関数。このプロパティは、 PackageType プロパティが に設定されている場合にのみ必要ですZip

タイプ: 文字列

必須: 条件付き

AWS CloudFormation compatibility: このプロパティは、 Handler リソースの AWS::Lambda::Function プロパティに直接渡されます。

ImageConfig

Lambda コンテナイメージの設定に使用される オブジェクト。詳細については、の「 でコンテナイメージを使用する」を参照してくださいLambdaAWS Lambda Developer Guide

タイプ: ImageConfig

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 ImageConfig リソースの AWS::Lambda::Function プロパティに直接渡されます。

ImageUri

Amazon Elastic Container Registry 関数のコンテナイメージの Amazon ECR (Lambda) リポジトリの URI。このプロパティは、 PackageType プロパティが に設定されている場合にのみ適用されますImage。それ以外の場合は無視されます。詳細については、の「 でコンテナイメージを使用する」を参照してくださいLambdaAWS Lambda Developer Guide

注意: PackageType プロパティが に設定されている場合ImageImageUri、 または のどちらかが必要です。または、 Metadata テンプレートファイルに必要なAWS SAMエントリを使用してアプリケーションを構築する必要があります。詳細については、「 」を参照してくださいアプリケーションの構築

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 ImageUri AWS::Lambda::Function データ型の Code プロパティに直接渡されます。

InlineCode

テンプレートに直接書き込まれるLambda関数コード。このプロパティは、 PackageType プロパティが に設定されている場合にのみ適用されますZip。それ以外の場合は無視されます。

注意: PackageType プロパティが Zip (デフォルト) に設定されている場合CodeUriは、 InlineCode または のいずれかが必要です。

タイプ: 文字列

必須: 条件付き

AWS CloudFormation compatibility: このプロパティは、 ZipFile AWS::Lambda::Function データ型の Code プロパティに直接渡されます。

KmsKeyArn

関数の環境変数を暗号化および復号するために AWS Key Management Service が使用する AWS KMS (Lambda) キーの ARN。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 KmsKeyArn リソースの AWS::Lambda::Function プロパティに直接渡されます。

Layers

この関数で使用する LayerVersion ARNsのリスト。ここで指定された順序は、 Lambda 関数の実行時にインポートされる順序です。

タイプ: リスト

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Layers リソースの AWS::Lambda::Function プロパティに直接渡されます。

MemorySize

関数の呼び出しごとに割り当てられるメモリのサイズ (MB)。

タイプ: 整数

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 MemorySize リソースの AWS::Lambda::Function プロパティに直接渡されます。

PackageType

Lambda 関数のデプロイパッケージのタイプ。詳細については、の「Lambdaデプロイパッケージ」を参照してくださいAWS Lambda Developer Guide

メモ:

1. このプロパティが Zip (デフォルト) に設定されている場合、 CodeUri または InlineCode のいずれかが適用され、 ImageUri は無視されます。

2. このプロパティが に設定されている場合ImageImageUri のみが適用され、 CodeUriInlineCode の両方は無視されます。

有効な値: Zip または Image

タイプ: 文字列

必須: いいえ

デフォルト: Zip

AWS CloudFormation compatibility: このプロパティは、 PackageType リソースの AWS::Lambda::Function プロパティに直接渡されます。

PermissionsBoundary

この関数の実行ロールに使用するアクセス許可の境界の ARN。このプロパティは、ロールが生成される場合にのみ機能します。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 PermissionsBoundary リソースの AWS::IAM::Role プロパティに直接渡されます。

Policies

この関数が必要とする 1 つ以上のポリシー。これらは、この関数のデフォルトロールに追加されます。

このプロパティは、単一の文字列または文字列のリストを受け入れAWS、管理ポリシーまたはAWS SAMポリシーテンプレートの名前、または YAML でフォーマットされたインラインIAMポリシードキュメントを使用できます。

AWS 管理ポリシーの詳細については、 の「 AWS 管理ポリシー」を参照してくださいIAM ユーザーガイド。AWS SAM ポリシーテンプレートの詳細については、 AWS SAM ポリシーテンプレート の「」を参照してくださいAWS サーバーレスアプリケーションモデル 開発者ガイド。インラインポリシーの詳細については、の「インラインポリシー」を参照してくださいIAM ユーザーガイド。

注意: Role プロパティが設定されている場合、このプロパティは無視されます。

タイプ: 文字列 | リスト | マップ

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Policies リソースの AWS::IAM::Role プロパティに似ています。 は、JSON ポリシードキュメントに加えて、 AWS SAM 管理ポリシー名とAWSポリシーテンプレートAWS SAMをサポートしています。 は、JSON ポリシードキュメントのみAWS CloudFormationを受け入れます。

ProvisionedConcurrencyConfig

関数のエイリアスのプロビジョニングされた同時実行数の設定。

注意: は ProvisionedConcurrencyConfig AutoPublishAlias が設定されている場合にのみ指定できます。それ以外の場合は、エラーが発生します。

タイプ: ProvisionedConcurrencyConfig

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 ProvisionedConcurrencyConfig リソースの AWS::Lambda::Alias プロパティに直接渡されます。

ReservedConcurrentExecutions

関数用に予約する同時実行の最大数。

このプロパティの詳細については、のAWS Lambda 関数のスケーリング」を参照してくださいAWS Lambda Developer Guide

タイプ: 整数

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 ReservedConcurrentExecutions リソースの AWS::Lambda::Function プロパティに直接渡されます。

Role

この関数の実行ロールとして使用する IAM ロールの ARN。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Role リソースの AWS::Lambda::Function プロパティに似ています。これは、AWS CloudFormation では必須ですが、AWS SAM では必須ではありません。ロールを指定しない場合、論理 ID を使用してロールが作成されます<function-logical-id>Role

Runtime

関数のランタイムの識別子。このプロパティは、 PackageType プロパティが に設定されている場合にのみ必要ですZip

注意: このプロパティのprovided識別子を指定した場合、 Metadata リソース属性を使用して、この関数に必要なカスタムランタイムを構築するAWS SAMように に指示できます。カスタムランタイムのビルドの詳細については、「」カスタムランタイムのビルドを参照してください。

タイプ: 文字列

必須: 条件付き

AWS CloudFormation compatibility: このプロパティは、 Runtime リソースの AWS::Lambda::Function プロパティに直接渡されます。

Tags

Lambda 関数に追加されるタグと、対応する実行ロールを指定するマップ (文字列から文字列)。キーと値に使用できるのは英数字のみです。キーの長さは 1 ~ 127 文字の Unicode 文字です。プレフィックス を付けることはできませんaws:。値の長さは 1~255 文字の Unicode 文字です。

タイプ: マップ

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Tags リソースの AWS::Lambda::Function プロパティに似ています。の Tags プロパティは、キーと値のペアAWS SAMで構成されています。ではAWS CloudFormation、 Tag オブジェクトのリストで構成されます。スタックが作成されると、 はこのAWS SAM関数と対応する実行ロールにlambda:createdBy:SAMタグLambdaを自動的に追加します。

Timeout

関数が停止するまでに実行できる最大時間 (秒)。

タイプ: 整数

必須: いいえ

デフォルト: 3

AWS CloudFormation compatibility: このプロパティは、 Timeout リソースの AWS::Lambda::Function プロパティに直接渡されます。

Tracing

関数のX-Rayトレースモードを指定する文字列。の詳細についてはX-Ray、の「 AWS LambdaAWS X-Ray での の使用」を参照してくださいAWS Lambda Developer Guide

有効な値: Active または PassThrough

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 TracingConfig リソースの AWS::Lambda::Function プロパティに似ています。Tracing プロパティが に設定Activeされ、 Role プロパティが指定されていない場合、 は作成したAWS SAM実行ロールにarn:aws:iam::aws:policy/AWSXrayWriteOnlyAccessポリシーLambdaを追加します。

VersionDescription

Description 新しいバージョンリソースに追加されるLambdaフィールドを指定します。

タイプ: 文字列

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 Description リソースの AWS::Lambda::Version プロパティに直接渡されます。

VpcConfig

この関数が Virtual Private Cloud (VPC) 内のプライベートリソースにアクセスできるようにする設定。

タイプ: VpcConfig

必須: いいえ

AWS CloudFormation compatibility: このプロパティは、 VpcConfig リソースの AWS::Lambda::Function プロパティに直接渡されます。

戻り値

Ref

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

Ref 関数の使用の詳細については、 Ref の「」を参照してくださいAWS CloudFormation ユーザーガイド

Fn::GetAtt

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

の使用の詳細についてはFn::GetAttFn::GetAtt の「」を参照してくださいAWS CloudFormation ユーザーガイド

Arn

基盤となる Lambda 関数の ARN。

シンプルな 関数

以下は、 AWS::Serverless::Function バケット内のパッケージタイプ Zip (デフォルト) および関数コードの Amazon S3 リソースの基本的な例です。

YAML

Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: python3.6 CodeUri: s3://bucket-name/key-name

関数プロパティの例

以下はAWS::Serverless::Function、、、、、ZipInlineCodeLayers、、Tracingおよびイベントソースを使用するPoliciesパッケージタイプ Amazon EFS (デフォルト) Apiの の例です。

YAML

Type: AWS::Serverless::Function DependsOn: MyMountTarget # This is needed if an AWS::EFS::MountTarget resource is declared for EFS Properties: Handler: index.handler Runtime: python3.6 InlineCode: | def handler(event, context): print("Hello, world!") ReservedConcurrentExecutions: 30 Layers: - Ref: MyLayer Tracing: Active Timeout: 120 FileSystemConfigs: - Arn: !Ref MyEfsFileSystem LocalMountPath: /mnt/EFS Policies: - AWSLambdaExecute - Version: '2012-10-17' Statement: - Effect: Allow Action: - s3:GetObject - s3:GetObjectACL Resource: 'arn:aws:s3:::my-bucket/*' Events: ApiEvent: Type: Api Properties: Path: /path Method: get

ImageConfig の例

以下は、パッケージタイプ の ImageConfig 関数Lambdaの の例ですImage

YAML

HelloWorldFunction: Type: AWS::Serverless::Function Properties: PackageType: Image ImageUri: account-id.dkr.ecr.region.amazonaws.com/ecr-repo-name:image-name ImageConfig: Command: - "app.lambda_handler" EntryPoint: - "entrypoint1" WorkingDirectory: "workDir"