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

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

AWS::Serverless::Function

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

-AWS::Serverless::Functionリソースは、Metadataリソース属性を使用するため、AWS SAMを使用して、アプリケーションが必要とするカスタムランタイムを構築します。カスタムランタイムの構築に関する詳細については、」カスタムランタイムの構築

Syntax

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

Properties

AssumeRolePolicyDocument

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

Type: JSON

必須: いいえ

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

AutoPublishAlias

Lambda エイリアスの名前。Lambda エイリアスの詳細については、「」を参照してください。Lambda 関数のエイリアス()AWS Lambda開発者ガイド。このプロパティを使用する例については、「サーバーレスアプリケーションを段階的にデプロイする」を参照してください。

AWS SAM生成AWS::Lambda::VersionおよびAWS::Lambda::Aliasリソースを、このプロパティが設定された場合に選択します。このシナリオの詳細については、「」を参照してください。AutoPublishAlias プロパティが指定。生成の一般情報については、「」を参照してください。AWS CloudFormationリソースについては、を参照してください。GeneratedAWS CloudFormationのリソース

Type: 文字列

必須: いいえ

AWS CloudFormationの互換性: このプロパティは固有のです。AWS SAMまた、にはAWS CloudFormation同等のもの

AutoPublishCodeSha256

使用される文字列値、およびCodeUriを使用して、新しい Lambda バージョンを公開する必要があるかどうかを判断します。

このプロパティは、ときに発生する問題に対処しますAWS SAMテンプレートには以下の特徴があります。DeploymentPreferenceオブジェクトは、段階的なデプロイメント用に構成されています (サーバーレスアプリケーションを段階的にデプロイする)、AutoPublishAliasプロパティが設定され、デプロイメント間で変更されず、CodeUriプロパティが設定され、デプロイメント間で変更されません。

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

このシナリオでは、段階的な展開を正常にトリガーするには、AutoPublishCodeSha256

Type: 文字列

必須: いいえ

AWS CloudFormationの互換性: このプロパティは固有のです。AWS SAMまた、にはAWS CloudFormation同等のもの

CodeSigningConfigArn

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

Type: 文字列

必須: いいえ

AWS CloudFormationの互換性: このプロパティは、のプロパティに直接渡されます。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 buildその後にsam deployまたはsam パッケージ。デフォルトでは、相対パスは、AWS SAMテンプレートの場所を指定します。

Type: 文字列 |FunctionCode

必須: 条件付き

AWS CloudFormationの互換性: このプロパティはCodeのプロパティAWS::Lambda::Functionリソースの使用リソースの使用 ネストされた Amazon S3 プロパティの名前は異なります。

DeadLetterQueue

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

注意: Lambda 関数のイベントソースが Amazon SQS キューである場合は、Lambda 関数ではなく、ソースキューのデッドレターキューを設定します。関数用に構成するデッドレターキューは、関数の非同期呼び出しキューであり、イベントソースキューには使用できません。

Type: マップ |DeadLetterQueue

必須: いいえ

AWS CloudFormationの互換性: このプロパティはDeadLetterConfigのプロパティAWS::Lambda::Functionリソースの使用リソースの使用 EclipseAWS CloudFormation型はTargetArnとなる。一方、AWS SAMと一緒に型を渡す必要がありますTargetArn

DeploymentPreference

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

場合、DeploymentPreferenceオブジェクトが指定されている場合、AWS SAMを作成するAWS::CodeDeploy::Application呼び出しServerlessDeploymentApplication(スタックごとに1つ)、AWS::CodeDeploy::DeploymentGroup呼び出し<function-logical-id>DeploymentGroup、およびAWS::IAM::Role呼び出しCodeDeployServiceRole

Type: DeploymentPreference

必須: いいえ

AWS CloudFormationの互換性: このプロパティは固有のです。AWS SAMまた、にはAWS CloudFormation同等のもの

以下の資料も参照してください。: このプロパティの詳細については、「サーバーレスアプリケーションを段階的にデプロイする」を参照してください。

Description

関数の説明。

Type: 文字列

必須: いいえ

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

Environment

ランタイム環境の設定。

Type: 環境

必須: いいえ

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

EventInvokeConfig

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

Type: EventInvokeConfiguration

必須: いいえ

AWS CloudFormationの互換性: このプロパティは固有のです。AWS SAMまた、にはAWS CloudFormation同等のもの

Events

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

Type: EventSource

必須: いいえ

AWS CloudFormationの互換性: このプロパティは固有のです。AWS SAMまた、にはAWS CloudFormation同等のもの

FileSystemConfigs

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

テンプレートにAWS::EFS::MountTargetリソースを使用する場合は、DependsOnリソース属性を使用して、関数の前にマウントターゲットが作成または更新されるようにします。

Type: リスト

必須: いいえ

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

FunctionName

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

Type: 文字列

必須: いいえ

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

Handler

実行を開始するために呼び出されるコード内の関数。このプロパティは、PackageTypeプロパティはZip

Type: 文字列

必須: 条件付き

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

ImageConfig

Lambda コンテナイメージの設定に使用されるオブジェクト。詳細については、「」を参照してください。Lambda でのコンテナーイメージの使用()AWS Lambda開発者ガイド

Type: ImageConfig

必須: いいえ

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

ImageUri

Lambda 関数のコンテナイメージの Amazon Elastic Container Registry (Amazon ECR) リポジトリの URI。このプロパティは、[] の [] の []PackageTypeプロパティはImageそれ以外の場合は無視されます。詳細については、「」を参照してください。Lambda でのコンテナーイメージの使用()AWS Lambda開発者ガイド

注意: そのファイルにPackageTypeプロパティはImageの場合、ImageUriが必要です。または、必要なアプリケーションをビルドする必要がありますMetadataのプロパティAWS SAMテンプレートファイル。詳細については、「アプリケーションのビルド」を参照してください。

Type: 文字列

必須: いいえ

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

InlineCode

テンプレートに直接記述された Lambda 関数コード。このプロパティは、[] の [] の []PackageTypeプロパティはZipそれ以外の場合は無視されます。

注意: そのファイルにPackageTypeプロパティはZip(デフォルト)、CodeUriまたはInlineCodeは必須です。

Type: 文字列

必須: 条件付き

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

KmsKeyArn

の ARNAWS Key Management Service(AWS KMS) キーを使用します。これは、関数の環境変数を暗号化および復号するために使用する Lambda です。

Type: 文字列

必須: いいえ

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

Layers

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

Type: リスト

必須: いいえ

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

MemorySize

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

Type: 整数

必須: いいえ

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

PackageType

Lambda 関数のデプロイパッケージタイプ。詳細については、「」を参照してください。Lambda デプロイパッケージ()AWS Lambda開発者ガイド

注:

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

2. このプロパティが、にセットされている場合Imageの場合、ImageUriが適用され、CodeUriおよびInlineCodeは無視されます。

有効な値: Zip または Image

Type: 文字列

必須: いいえ

デフォルト: Zip

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

PermissionsBoundary

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

Type: 文字列

必須: いいえ

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

Policies

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

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

の詳細AWS管理ポリシーについては、を参照してください。AWS管理ポリシーIAM ユーザーガイド の詳細AWS SAMポリシーテンプレートの詳細については、を参照してください。AWS SAMポリシーテンプレート()AWS Serverless Application Model開発者ガイド の最初のリリースです。インラインポリシーの詳細については、「」を参照してください。インラインポリシーIAM ユーザーガイド

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

Type: 文字列 | リスト | マップ

必須: いいえ

AWS CloudFormationの互換性: このプロパティはPoliciesのプロパティAWS::IAM::Roleリソースの使用リソースの使用AWS SAMが をサポートAWS管理ポリシー名とAWS SAMポリシードキュメントに加えて、ポリシードキュメントも使用できます。AWS CloudFormationJSON ポリシードキュメントのみを受け入れます。

ProvisionedConcurrencyConfig

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

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

Type: ProvisionedConcurrencyConfig

必須: いいえ

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

ReservedConcurrentExecutions

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

このプロパティの詳細については、「」を参照してください。Lambda 関数スケーリング()AWS Lambda開発者ガイド

Type: 整数

必須: いいえ

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

Role

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

Type: 文字列

必須: いいえ

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

Runtime

関数のランタイムの識別子。このプロパティは、PackageTypeプロパティはZip

注意: 指定すると、providedこのプロパティの識別子を使用する場合は、「」を使用します。Metadata指示するリソース属性AWS SAMを使用して、この関数が必要とするカスタムランタイムを構築します。カスタムランタイムの構築に関する詳細については、」カスタムランタイムの構築

Type: 文字列

必須: 条件付き

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

Tags

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

スタックが作成されると、AWS SAMは自動的に追加します。lambda:createdBy:SAMタグをこの Lambda 関数に追加し、この関数に対して生成されるデフォルトのロールに追加します。

Type: マップ

必須: いいえ

AWS CloudFormationの互換性: このプロパティはTagsのプロパティAWS::Lambda::Functionリソースの使用リソースの使用 -TagsのプロパティのAWS SAMはキーと値のペアで構成されています(一方、AWS CloudFormationこのプロパティは、Tagオブジェクト)。また、AWS SAMは自動的に追加します。lambda:createdBy:SAMタグをこの Lambda 関数に追加し、この関数に対して生成されるデフォルトのロールに追加します。

Timeout

関数が実行できる最大時間 (秒)。

Type: 整数

必須: いいえ

デフォルト値: 3

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

Tracing

関数の X-Ray トレースモードを指定する文字列。X-Ray の詳細については、「X」を参照してください。を使用するAWS LambdaをAWS X-Ray()AWS Lambda開発者ガイド

有効な値: Active または PassThrough

Type: 文字列

必須: いいえ

AWS CloudFormationの互換性: このプロパティはTracingConfigのプロパティAWS::Lambda::Functionリソースの使用リソースの使用 そのファイルにTracingプロパティはActiveRoleプロパティが指定されていない場合、AWS SAM追加arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccessポリシーを、作成する Lambda 実行ロールに追加します。

VersionDescription

[] を指定します。Descriptionフィールドを新規の Lambda バージョンリソースに追加します。

Type: 文字列

必須: いいえ

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

VpcConfig

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

Type: VpcConfig

必須: いいえ

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

戻り値

Ref

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

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

Fn::GetAtt

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

の使用方法の詳細については、「」を参照してください。Fn::GetAtt「」を参照してください。Fn::GetAtt()ユーザーガイド

Arn

基礎の Lambda 関数の ARN。

Examples

シンプルな関数

以下は、の基本的な例です。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のプロパティZip(デフォルト) を使用します。InlineCode,Layers,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"