

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

# AWS::Serverless::Function
<a name="sam-resource-function"></a>

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

[AWS::Serverless::Function](#sam-resource-function) リソースは `Metadata`リソース属性もサポートしているため、アプリケーションに必要なカスタムランタイムを構築する AWS SAM ように に指示できます。カスタムランタイムの構築の詳細については、「[でのカスタムランタイムを使用した Lambda 関数の構築 AWS SAM](building-custom-runtimes.md)」を参照してください。

**注記**  
にデプロイすると AWS CloudFormation、 は AWS SAM リソースを CloudFormation リソース AWS SAM に変換します。詳細については、「[の生成済み CloudFormation リソース AWS SAM](sam-specification-generated-resources.md)」を参照してください。

## 構文
<a name="sam-resource-function-syntax"></a>

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

### YAML
<a name="sam-resource-function-syntax.yaml"></a>

```
Type: AWS::Serverless::Function
Properties:
  [Architectures](#sam-function-architectures): {{List}}
  [AssumeRolePolicyDocument](#sam-function-assumerolepolicydocument): {{JSON}}
  [AutoPublishAlias](#sam-function-autopublishalias): {{String}}
  AutoPublishAliasAllProperties: {{Boolean}}
  [AutoPublishCodeSha256](#sam-function-autopublishcodesha256): {{String}}
  [CapacityProviderConfig](#sam-function-capacityproviderconfig): {{CapacityProviderConfig}}
  [CodeSigningConfigArn](#sam-function-codesigningconfigarn): {{String}}
  [CodeUri](#sam-function-codeuri): {{String | FunctionCode}}
  [DeadLetterQueue](#sam-function-deadletterqueue): {{Map | DeadLetterQueue}}
  [DeploymentPreference](#sam-function-deploymentpreference): {{DeploymentPreference}}
  [Description](#sam-function-description): {{String}}
  [DurableConfig](#sam-function-durableconfig): {{DurableConfig}}
  [Environment](#sam-function-environment): {{[Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)}}
  [EphemeralStorage](#sam-function-ephemeralstorage): {{[EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)}}
  [EventInvokeConfig](#sam-function-eventinvokeconfig): {{EventInvokeConfiguration}}
  [Events](#sam-function-events): {{EventSource}}
  [FileSystemConfigs](#sam-function-filesystemconfigs): {{List}}
  [FunctionName](#sam-function-functionname): {{String}}
  [FunctionScalingConfig](#sam-function-functionscalingconfig): {{FunctionScalingConfig}}
  [FunctionUrlConfig](#sam-function-functionurlconfig): {{FunctionUrlConfig}}
  [Handler](#sam-function-handler): {{String}}
  [ImageConfig](#sam-function-imageconfig): {{[ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)}}
  [ImageUri](#sam-function-imageuri): {{String}}
  [InlineCode](#sam-function-inlinecode): {{String}}
  [KmsKeyArn](#sam-function-kmskeyarn): {{String}}
  [Layers](#sam-function-layers): {{List}}
  LoggingConfig: {{[LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html)}}
  [MemorySize](#sam-function-memorysize): {{Integer}}
  [PackageType](#sam-function-packagetype): {{String}}
  [PermissionsBoundary](#sam-function-permissionsboundary): {{String}}
  [Policies](#sam-function-policies): {{String | List | Map}}
  [PublishToLatestPublished](#sam-function-publishtolatestpublished): {{Boolean}}
  PropagateTags: {{Boolean}}
  [ProvisionedConcurrencyConfig](#sam-function-provisionedconcurrencyconfig): {{[ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)}}
  RecursiveLoop: {{String}}
  [ReservedConcurrentExecutions](#sam-function-reservedconcurrentexecutions): {{Integer}}
  [Role](#sam-function-role): {{String}}
  [RolePath](#sam-function-rolepath): {{String}}
  [Runtime](#sam-function-runtime): {{String}}
  RuntimeManagementConfig: {{[RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)}}
  SnapStart: {{[SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)}}
  [SourceKMSKeyArn](#sam-function-sourcekmskeyarn): {{String}}
  [Tags](#sam-function-tags): {{Map}}
  [TenancyConfig](#sam-function-tenancyconfig): {{TenancyConfig}}
  [Timeout](#sam-function-timeout): {{Integer}}
  [Tracing](#sam-function-tracing): {{String}}
  [VersionDescription](#sam-function-versiondescription): {{String}}
  [VersionDeletionPolicy](#sam-function-versiondeletionpolicy): {{String}}
  [VpcConfig](#sam-function-vpcconfig): {{[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)}}
```

## プロパティ
<a name="sam-resource-function-properties"></a>

 `Architectures`   <a name="sam-function-architectures"></a>
関数の命令セットアーキテクチャ。  
このプロパティの詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda 命令セットアーキテクチャ](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html)」を参照してください。  
*有効な値*: `x86_64` または `arm64` のいずれか。  
*タイプ*: リスト  
*必須:* いいえ  
*デフォルト*: `x86_64`  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Architectures](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures)`プロパティに直接渡されます。

 `AssumeRolePolicyDocument`   <a name="sam-function-assumerolepolicydocument"></a>
この関数用に作成されたデフォルト `Role` の AssumeRolePolicyDocument を追加します。このプロパティが指定されていない場合、 はこの関数のデフォルトの継承ロール AWS SAM を追加します。  
*Type*: JSON  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは resource の `[AssumeRolePolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument)` プロパティに似ています`AWS::IAM::Role`。 はこのプロパティを、この関数用に生成された IAM ロール AWS SAM に追加します。この関数にロールの Amazon リソースネーム (ARN) が提供されている場合、このプロパティは何も実行しません。

 `AutoPublishAlias`   <a name="sam-function-autopublishalias"></a>
Lambda エイリアスの名前です。Lambda エイリアスの詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda 関数のエイリアス](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)」を参照してください。このプロパティを使用する例については、「[を使用してサーバーレスアプリケーションを徐々にデプロイする AWS SAM](automating-updates-to-serverless-apps.md)」を参照してください。  
AWS SAM このプロパティが設定されている場合、 は [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) および [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)リソースを生成します。このシナリオの詳細については、「[AutoPublishAlias プロパティが指定されている](sam-specification-generated-resources-function.md#sam-specification-generated-resources-function-autopublishalias)」を参照してください。生成された CloudFormation リソースの一般的な情報については、「」を参照してください[の生成済み CloudFormation リソース AWS SAM](sam-specification-generated-resources.md)。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

 `AutoPublishAliasAllProperties`   <a name="sam-function-autopublishaliasallproperties"></a>
新しい [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) が作成されるタイミングを指定します。`true` の場合、 Lambda 関数のプロパティが変更されると、新しい Lambda バージョンが作成されます。`false` の場合、次のプロパティのいずれかが変更された場合にのみ、新しい Lambda バージョンが作成されます。  
+ `Environment`、`MemorySize`、`SnapStart`
+ `Code` プロパティの更新を伴う変更 (`CodeDict`、`ImageUri`、`InlineCode` など)。
このプロパティでは `AutoPublishAlias` を定義する必要があります。  
`AutoPublishCodeSha256` も指定されている場合、その動作は `AutoPublishAliasAllProperties: true` よりも優先されます。  
型: ブール  
*必須:* いいえ  
*デフォルト値*: `false`  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

 `AutoPublishCodeSha256`   <a name="sam-function-autopublishcodesha256"></a>
使用した場合、`CodeUri` 値とともに機能し、新しい Lambda バージョンを発行する必要があるかどうかを判断します。このプロパティは、しばしば次のようなデプロイの問題を解決するために使用されます: Amazon S3 のロケーションに保存されているデプロイパッケージが更新済みの Lambda 関数コードを使用する新しいデプロイパッケージに置き換えられたものの (新しいデプロイパッケージが新しい Amazon S3 のロケーションにアップロードされていて、`CodeUri` が新しい場所に変更されるのと反対に)、`CodeUri` プロパティがそのまま変更されていない。  
この問題は、次の特性を持つ AWS SAM テンプレートによってマークされます。  
+ `DeploymentPreference` オブジェクトが、([を使用してサーバーレスアプリケーションを徐々にデプロイする AWS SAM](automating-updates-to-serverless-apps.md) で説明されているように) 段階的なデプロイ用に設定されている
+ `AutoPublishAlias` プロパティが設定されていてもデプロイ間では変更されていない
+ `CodeUri` プロパティが設定されていてもデプロイ間では変更されていない。
このシナリオでは、`AutoPublishCodeSha256` を更新することで新しい Lambda バージョンが正常に作成されます。ただし、Amazon S3 にデプロイされた新しい関数コードは認識されません。新しい関数コードを認識するには、Amazon S3 バケットのバージョニングを使用することを検討してください。Lambda 関数の `Version` プロパティを指定し、常に最新のデプロイパッケージを使用するようにバケットを設定します。  
このシナリオで段階的なデプロイを正常にトリガーするには、`AutoPublishCodeSha256` に一意の値を提供する必要があります。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

 `CapacityProviderConfig`   <a name="sam-function-capacityproviderconfig"></a>
関数の公開バージョンがアタッチされるキャパシティープロバイダーを設定します。これにより、関数は Lambda マネージドインスタンスによって管理される顧客所有の EC2 インスタンスで実行できます。  
*タイプ*: [CapacityProviderConfig](sam-property-function-capacityproviderconfig.md)  
*必須:* いいえ  
*CloudFormation 互換性*: SAM は、 `AWS::Lambda::Function`リソースの プロパティに渡された `[CapacityProviderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-capacityproviderconfig)` プロパティをフラット化し、ネストされた構造を再構築します。

 `CodeSigningConfigArn`   <a name="sam-function-codesigningconfigarn"></a>
[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html) リソースの ARN で、この関数のコード署名を有効にするために使用されます。コード署名の詳細については、「[AWS SAM アプリケーションのコード署名を設定する](authoring-codesigning.md)」を参照してください。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[CodeSigningConfigArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn)`プロパティに直接渡されます。

 `CodeUri`   <a name="sam-function-codeuri"></a>
関数のコード 以下のような値を設定できます。  
+ 関数の Amazon S3 URI。例えば、`s3://bucket-123456789/sam-app/1234567890abcdefg`。
+ 関数へのローカルパス。例えば、`hello_world/`。
+ [FunctionCode](sam-property-function-functioncode.md) オブジェクト。
関数の Amazon S3 URI または [FunctionCode](sam-property-function-functioncode.md) オブジェクトを指定する場合は、有効な [Lambda デプロイパッケージ](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)を参照する必要があります。  
ローカルファイルパスを指定する場合は、 AWS SAM CLI を使用してデプロイ時にローカルファイルをアップロードします。詳細については[がデプロイ時にローカルファイル AWS SAM をアップロードする方法](deploy-upload-local-files.md)を参照してください。  
`CodeUri` プロパティで組み込み関数を使用する場合、 は値を正しく解析 AWS SAM できません。代わりに [AWS::LanguageExtensions 変換](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-languageextensions.html)の使用を検討してください。
*タイプ*: [ String \| [FunctionCode](sam-property-function-functioncode.md) ]  
*必須:* 条件的。`PackageType` が `Zip` に設定されている場合、`CodeUri` または `InlineCode` のいずれかが必須です。  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[ Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code)`プロパティに似ています。ネストされた Amazon S3 プロパティには異なる名前が付けられています。

 `DeadLetterQueue`   <a name="sam-function-deadletterqueue"></a>
処理できないイベントを Lambda が送信する Amazon Simple Notification Service (Amazon SNS) トピックまたは Amazon Simple Queue Service (Amazon SQS) キューを設定します。デッドレターキュー機能の詳細については、「*AWS Lambda デベロッパーガイド*」の「[デッドレターキュー](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-dlq)」を参照してください。  
Lambda 関数のイベントソースが Amazon SQS キューである場合は、Lambda 関数ではなく、ソースキューのデッドレターキューを設定してください。関数用に設定するデッドレターキューは、イベントソースキューではなく、関数の[非同期呼び出しキュー](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)に使用されます。
*タイプ*: マップ \| [DeadLetterQueue](sam-property-function-deadletterqueue.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[DeadLetterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html)`プロパティに似ています。 CloudFormation タイプは から派生しますが`TargetArn`、 では AWS SAM タイプを とともに渡す必要があります`TargetArn`。

 `DeploymentPreference`   <a name="sam-function-deploymentpreference"></a>
段階的な Lambda デプロイを有効にする設定です。  
`DeploymentPreference` オブジェクトが指定されている場合、 は [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)という名前の `ServerlessDeploymentApplication` (スタックごとに 1 つ）、 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)という名前の `{{<function-logical-id>}}DeploymentGroup`、および [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)という名前の AWS SAM を作成します`CodeDeployServiceRole`。  
*タイプ*: [DeploymentPreference](sam-property-function-deploymentpreference.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。  
*その他の参照資料*: このプロパティの詳細については、「[を使用してサーバーレスアプリケーションを徐々にデプロイする AWS SAM](automating-updates-to-serverless-apps.md)」を参照してください。

 `Description`   <a name="sam-function-description"></a>
関数の説明です。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description)`プロパティに直接渡されます。

 `DurableConfig`   <a name="sam-function-durableconfig"></a>
耐久性のある関数の設定。自動チェックポイントとリプレイ機能を使用してステートフル実行を有効にします。  
*タイプ*: [DurableConfig](sam-property-function-durableconfig.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

 `Environment`   <a name="sam-function-environment"></a>
ランタイム環境の設定です。  
*タイプ*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)`プロパティに直接渡されます。

 `EphemeralStorage`   <a name="sam-function-ephemeralstorage"></a>
`/tmp` の Lambda 関数で使用可能なディスク容量を MB 単位で指定するオブジェクト。  
このプロパティの詳細については、「*AWS Lambda デベロッパーガイド*」の「[Lambda 実行環境](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html)」を参照してください。  
*型*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)`プロパティに直接渡されます。

 `EventInvokeConfig`   <a name="sam-function-eventinvokeconfig"></a>
Lambda 関数でのイベントの呼び出し設定を説明するオブジェクトです。  
*タイプ*: [EventInvokeConfiguration](sam-property-function-eventinvokeconfiguration.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

 `Events`   <a name="sam-function-events"></a>
この関数をトリガーするイベントを指定します。イベントは、1 つのタイプと、そのタイプに依存する一連のプロパティで構成されます。  
*タイプ*: [EventSource](sam-property-function-eventsource.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

 `FileSystemConfigs`   <a name="sam-function-filesystemconfigs"></a>
Amazon Elastic File System (Amazon EFS) ファイルシステムまたは Amazon S3 Files ファイルシステムの接続設定を指定する [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) オブジェクトのリスト。Amazon EFS アクセスポイントまたは S3 Files アクセスポイントのいずれかをアタッチできますが、両方をアタッチすることはできません。  
各`FileSystemConfig`オブジェクトには、 `Arn` (アクセスポイント ARN) と `LocalMountPath` (ファイルシステムが 関数にマウントされるパス) が含まれます。Amazon EFS の場合、ARN は Amazon EFS アクセスポイント ARN です。S3 ファイルの場合、ARN は ARN `AWS::S3Files::AccessPoint` です。  
テンプレートに [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) リソースが含まれている場合は、`DependsOn` リソース属性を指定して、関数の前にマウントターゲットが作成または更新されることを確実にする必要があります。同様に、テンプレートに `AWS::S3Files::MountTarget`リソースが含まれている場合は、S3 Files マウントターゲットの `DependsOn` 属性を指定する必要があります。  
*タイプ*: リスト  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[FileSystemConfigs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs)`プロパティに直接渡されます。

 `FunctionName`   <a name="sam-function-functionname"></a>
関数の名前です。名前を指定しない場合は、一意の名前が生成されます。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[FunctionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname)`プロパティに直接渡されます。

 `FunctionScalingConfig`   <a name="sam-function-functionscalingconfig"></a>
キャパシティープロバイダーで実行されている Lambda 関数のスケーリング動作を設定します。実行環境の最小数と最大数を定義します。  
*タイプ*: [FunctionScalingConfig](sam-property-function-functionscalingconfig.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[FunctionScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionscalingconfig)`プロパティに直接渡されます。

 `FunctionUrlConfig`   <a name="sam-function-functionurlconfig"></a>
関数 URL を記述するオブジェクトです。関数 URL は、関数を呼び出すために使用する HTTPS エンドポイントです。  
詳細については、「*AWS Lambda デベロッパーガイド*」の「[関数スケーリング](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html)」を参照してください。  
*型*: [FunctionUrlConfig](sam-property-function-functionurlconfig.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

 `Handler`   <a name="sam-function-handler"></a>
実行を開始するために呼び出されるコード内の関数です。このプロパティが必要になるのは、`PackageType` プロパティが `Zip` に設定されている場合のみです。  
*型*: 文字列  
*必須*: 条件に応じて異なります  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Handler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler)`プロパティに直接渡されます。

 `ImageConfig`   <a name="sam-function-imageconfig"></a>
Lambda のコンテナイメージ設定に使用されるオブジェクトです。詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda でのコンテナイメージの使用](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)」を参照してください。  
*タイプ*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)`プロパティに直接渡されます。

 `ImageUri`   <a name="sam-function-imageuri"></a>
Lambda 関数のコンテナイメージ用の Amazon Elastic Container Registry (Amazon ECR) リポジトリの URI です。このプロパティは、`PackageType` プロパティが `Image` に設定されている場合にのみ適用され、それ以外の場合は無視されます。詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda でのコンテナイメージの使用](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)」を参照してください。  
`PackageType` プロパティが に設定されている場合`Image`、 `ImageUri`は必須です。または、 AWS SAM テンプレートファイルに必要な`Metadata`エントリを使用してアプリケーションを構築する必要があります。詳細については、「[を使用したデフォルトのビルド AWS SAM](serverless-sam-cli-using-build.md)」を参照してください。
必要な `Metadata` エントリを使用してアプリケーションを構築することは、`ImageUri` よりも優先されるので、両方を指定すれば `ImageUri` は無視されます。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function` `Code` データ型の `[ImageUri](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri)`プロパティに直接渡されます。

 `InlineCode`   <a name="sam-function-inlinecode"></a>
テンプレートに直接記述された Lambda 関数コードです。このプロパティは、`PackageType` プロパティが `Zip` に設定されている場合にのみ適用され、それ以外の場合は無視されます。  
`PackageType` が `Zip` (デフォルト) に設定されていると、`CodeUri` または `InlineCode` のいずれかが必要になります。
*タイプ*: 文字列  
*必須*: 条件に応じて異なります  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function` `Code` データ型の `[ZipFile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile)`プロパティに直接渡されます。

 `KmsKeyArn`   <a name="sam-function-kmskeyarn"></a>
Lambda が関数の環境変数を暗号化および復号するために使用する AWS Key Management Service (AWS KMS) キーの ARN。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[KmsKeyArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn)`プロパティに直接渡されます。

 `Layers`   <a name="sam-function-layers"></a>
この関数が使用する必要がある `LayerVersion` ARN のリストです。ここで指定されている順序は、Lambda 関数の実行時にそれらがインポートされる順序です。バージョンは、バージョンを含む完全な ARN であるか、LayerVersion リソースへの参照です。例えば、`LayerVersion` への参照は `!Ref MyLayer` になり、 バージョンを含む完全な ARN は `arn:aws:lambda:{{region}}:{{account-id}}:layer:{{layer-name}}:{{version}}` になります。  
*タイプ*: リスト  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Layers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers)`プロパティに直接渡されます。

 `LoggingConfig`   <a name="sam-function-loggingconfig"></a>
関数の Amazon CloudWatch Logs 構成の設定。  
*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-loggingconfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-loggingconfig)プロパティに直接渡されます。

 `MemorySize`   <a name="sam-function-memorysize"></a>
関数の各呼び出しに割り当てられるメモリのサイズ (MB) です。  
*タイプ:* 整数  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[MemorySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize)`プロパティに直接渡されます。

 `PackageType`   <a name="sam-function-packagetype"></a>
Lambda 関数のデプロイパッケージタイプです。詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda デプロイパッケージ](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)」を参照してください。  
**注意**:  
1. このプロパティが `Zip` (デフォルト) に設定されている場合は、`CodeUri` または `InlineCode` が適用され、`ImageUri` は無視されます。  
2. このプロパティが `Image` に設定されている場合は、`ImageUri` のみが適用され、`CodeUri` と`InlineCode` は無視されます。関数のコンテナイメージを保存するために必要な Amazon ECR リポジトリは、 によって自動的に作成できます AWS SAM CLI。詳細については、「[sam deploy](sam-cli-command-reference-sam-deploy.md)」を参照してください。  
*有効な値*: `Zip` または `Image`  
タイプ：文字列  
*必須:* いいえ  
*デフォルト*: `Zip`  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[PackageType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype)`プロパティに直接渡されます。

 `PermissionsBoundary`   <a name="sam-function-permissionsboundary"></a>
この関数の実行ロールに使用するアクセス許可境界の ARN です。このプロパティは、ユーザーのためにロールが生成される場合にのみ機能します。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::IAM::Role`リソースの `[PermissionsBoundary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary)`プロパティに直接渡されます。

 `Policies`   <a name="sam-function-policies"></a>
この関数の許可ポリシー。ポリシーは、関数のデフォルト AWS Identity and Access Management (IAM) 実行ロールに追加されます。  
このプロパティは、単一の値または値のリストを受け入れます。使用できる値は次のとおりです。  
+ [AWS SAMポリシーテンプレート](serverless-policy-templates.md).
+ [AWS  管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)または[カスタマー管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)の ARN。
+ 次の[リストから](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/internal/data/aws_managed_policies.json)の AWS 管理ポリシーの名前。
+ マップとして YAML でフォーマットされた[インライン IAM ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)。
`Role` プロパティを設定する場合、このプロパティは無視されます。
*タイプ*: 文字列 \| リスト \| マップ  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::IAM::Role`リソースの `[Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies)`プロパティに似ています。

 `PublishToLatestPublished`   <a name="sam-function-publishtolatestpublished"></a>
関数の更新時に最新の関数バージョンを発行するかどうかを指定します。  
型: ブール  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[PublishToLatestPublished](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-publishtolatestpublished)`プロパティに直接渡されます。

`PropagateTags`  <a name="sam-function-propagatetags"></a>
[AWS::Serverless::Function](sam-specification-generated-resources-function.md) が生成したリソースに `Tags` プロパティからのタグを渡すかどうかを指定します。`True` を指定して、生成されたリソースにタグを伝播します。  
型: ブール  
*必須:* いいえ  
*デフォルト*: `False`  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

 `ProvisionedConcurrencyConfig`   <a name="sam-function-provisionedconcurrencyconfig"></a>
関数のエイリアスのプロビジョニングされた同時実行設定です。  
`ProvisionedConcurrencyConfig` を指定できるのは、`AutoPublishAlias` が設定されている場合のみです。それ以外の場合は、エラーが発生します。
*タイプ*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Alias`リソースの `[ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)`プロパティに直接渡されます。

 `RecursiveLoop`   <a name="sam-function-recursiveloop"></a>
関数の再帰的ループ検出設定のステータス。  
この値が `Allow` に設定されている場合、Lambda が再帰的ループの一部として呼び出されている関数を検出しても、いずれのアクションも実行されません。  
この値が `Terminate` に設定されている場合、Lambda が再帰的ループの一部として呼び出されている関数を検出すると、その関数の呼び出しが停止され通知が送信されます。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[RecursiveLoop](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-recursiveloop)`プロパティに直接渡されます。

 `ReservedConcurrentExecutions`   <a name="sam-function-reservedconcurrentexecutions"></a>
関数用に予約する同時実行の最大数です。  
このプロパティの詳細については、*AWS Lambda デベロッパーガイド*の「[Lambda 関数スケーリング](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html)」を参照してください。  
*タイプ:* 整数  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[ReservedConcurrentExecutions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions)`プロパティに直接渡されます。

 `Role`   <a name="sam-function-role"></a>
この関数の実行ロールとして使用する IAM ロールの ARN です。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role)`プロパティに似ています。これは では必須 CloudFormation ですが、 では必須ではありません AWS SAM。ロールが指定されていない場合は、`{{<function-logical-id>}}Role` の論理 ID を持つロールが作成されます。

 `RolePath`   <a name="sam-function-rolepath"></a>
関数の IAM 実行ロールへのパス。  
このプロパティは、ユーザーのためにロールが生成される場合にのみ機能します。`Role` プロパティでロールが指定されている場合は使用しないでください。  
*タイプ*: 文字列  
*必須*: 条件に応じて異なります  
*CloudFormation 互換性*: このプロパティは、 `AWS::IAM::Role`リソースの `[Path](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path)`プロパティに直接渡されます。

 `Runtime`   <a name="sam-function-runtime"></a>
関数の[ランタイム](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)の識別子です。このプロパティが必要になるのは、`PackageType` プロパティが `Zip` に設定されている場合のみです。  
このプロパティの`provided`識別子を指定する場合、`Metadata`リソース属性を使用して、この関数に必要なカスタムランタイムを構築する AWS SAM ように に指示できます。カスタムランタイムの構築の詳細については、「[でのカスタムランタイムを使用した Lambda 関数の構築 AWS SAM](building-custom-runtimes.md)」を参照してください。
*型*: 文字列  
*必須*: 条件に応じて異なります  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime)`プロパティに直接渡されます。

 `RuntimeManagementConfig`   <a name="sam-function-runtimemanagementconfig"></a>
ランタイム環境の更新、ロールバック動作、特定のランタイムバージョンの選択など、Lambda 関数のランタイム管理オプションを設定します。詳細については、「*AWS Lambda デベロッパーガイド*」の「[Lambda ランタイム更新](https://docs.aws.amazon.com//lambda/latest/dg/runtimes-update.html)」を参照してください。  
*タイプ*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)`プロパティに直接渡されます。

 `SnapStart`   <a name="sam-function-snapstart"></a>
新しい Lambda 関数バージョンのスナップショットを作成します。スナップショットは、すべての依存関係を含む、初期化された関数のキャッシュされた状態です。関数は一度だけ初期化され、キャッシュされた状態は将来の すべての呼び出しで再利用されるため、関数の初期化が必要な回数が減ることでアプリケーションのパフォーマンスが向上します。詳細については、「*AWS Lambda デベロッパーガイド*」の「[Lambda SnapStart による起動パフォーマンスの向上](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)」を参照してください。  
*タイプ*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)`プロパティに直接渡されます。

 `SourceKMSKeyArn`   <a name="sam-function-sourcekmskeyarn"></a>
お客様の ZIP 関数コードを暗号化するために使用される KMS キー ARN を表します。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function` `Code` データ型の `[SourceKMSKeyArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-sourcekmskeyarn)`プロパティに直接渡されます。

 `Tags`   <a name="sam-function-tags"></a>
この関数に追加されるタグを指定するマップ (文字列対文字列) です。タグの有効なキーと値の詳細については、「*AWS Lambda デベロッパーガイド*」の「[タグのキーと値の要件](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions)」を参照してください。  
スタックが作成されると、 はこの Lambda 関数と、この関数用に生成されるデフォルトのロールに`lambda:createdBy:SAM`タグ AWS SAM を自動的に追加します。  
*タイプ*: マップ  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags)`プロパティに似ています。の `Tags`プロパティ AWS SAM は、キーと値のペアで構成されます ( CloudFormation このプロパティは`Tag`オブジェクトのリストで構成されます）。また、 は、この Lambda 関数と、この関数用に生成されるデフォルトのロールに`lambda:createdBy:SAM`タグ AWS SAM を自動的に追加します。

 `TenancyConfig`   <a name="sam-function-tenancyconfig"></a>
Lambda テナント分離モードの設定。実行環境が異なるテナント IDs 間で共有されないようにし、マルチテナントアプリケーションにコンピューティングレベルの分離を提供します。  
*タイプ*: [TenancyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tenancyconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[TenancyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tenancyconfig)`プロパティに直接渡されます。

 `Timeout`   <a name="sam-function-timeout"></a>
関数が停止されるまでの最大実行時間 (秒) です。  
*タイプ:* 整数  
*必須:* いいえ  
*デフォルト:* 3  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[Timeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout)`プロパティに直接渡されます。

 `Tracing`   <a name="sam-function-tracing"></a>
関数の X-Ray トレーシングモードを指定する文字列です。  
+ `Active` – 関数の X-Ray トレーシングを有効にします。
+ `Disabled` – 関数の X-Ray を無効にします。
+ `PassThrough` – 関数の X-Ray トレーシングを有効にします。サンプリングデシジョンはダウンストリームサービスに委任されます。
`Active` または `PassThrough` が指定されており、`Role` プロパティが設定されていない場合、 AWS SAM は、ユーザー用に作成する Lambda 実行ロールに `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` ポリシーを追加します。  
X-Ray の詳細については、「 *AWS Lambda デベロッパーガイド*」の「 [AWS Lambda で を使用する AWS X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html)」を参照してください。  
有効な値: [`Active`\|`Disabled`\|`PassThrough`]  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[TracingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig)`プロパティに似ています。

 `VersionDescription`   <a name="sam-function-versiondescription"></a>
新しい Lambda バージョンリソースに追加される `Description` フィールドを指定します。  
*型*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Version`リソースの `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description)`プロパティに直接渡されます。

 `VersionDeletionPolicy`   <a name="sam-function-versiondeletionpolicy"></a>
が`AutoPublishAlias`設定されている場合に作成される Lambda バージョンリソースの削除ポリシーを指定します。これにより、スタックが削除されたときにバージョンリソースが保持または削除されるかどうかが制御されます。  
*有効な値*: `Delete`、`Retain`、または `Snapshot`  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。生成された`AWS::Lambda::Version`リソースに `DeletionPolicy` 属性を設定します。

 `VpcConfig`   <a name="sam-function-vpcconfig"></a>
この関数が Virtual Private Cloud (VPC) 内のプライベートリソースにアクセスすることを可能にする設定です。  
*タイプ*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::Lambda::Function`リソースの `[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)`プロパティに直接渡されます。

## 戻り値
<a name="sam-resource-function-return-values"></a>

### 参照番号
<a name="sam-resource-function-return-values-ref"></a>

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

`Ref` 関数の使用方法の詳細については、「AWS CloudFormation ユーザーガイド」の「[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)」を参照してください。

### Fn::GetAtt
<a name="sam-resource-function-return-values-fn--getatt"></a>

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

`Fn::GetAtt` の使用の詳細については、「AWS CloudFormation ユーザーガイド」の「[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)」を参照してください。

`Arn`  <a name="Arn-fn::getatt"></a>
基盤となる Lambda 関数の ARN です。

## 例
<a name="sam-resource-function-examples"></a>

### シンプルな関数
<a name="sam-resource-function-examples-simple-function"></a>

以下は、[AWS::Serverless::Function](#sam-resource-function) パッケージタイプ (デフォルト) の `Zip` リソースと、Amazon S3 バケット内にある関数コードの基本的な例です。

#### YAML
<a name="sam-resource-function-examples-simple-function--yaml"></a>

```
Type: AWS::Serverless::Function
Properties:
  Handler: index.handler
  Runtime: python3.9
  CodeUri: s3://{{bucket-name}}/{{key-name}}
```

### 関数プロパティの例
<a name="sam-resource-function-examples-function-properties-example"></a>

以下は、、`InlineCode`、、`Layers`、、`Policies``Amazon EFS`ファイルシステム、および`Api`イベントソースを使用する[AWS::Serverless::Function](#sam-resource-function)パッケージタイプ `Zip` (デフォルト) `Tracing`の の例です。

#### YAML
<a name="sam-resource-function-examples-function-properties-example--yaml"></a>

```
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.9
  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:::{{sam-s3-demo-bucket}}/*'
  Events:
    ApiEvent:
      Type: Api
      Properties:
        Path: /path
        Method: get
```

### ImageConfig の例
<a name="sam-resource-function-examples-imageconfig-example"></a>

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

#### YAML
<a name="sam-resource-function-examples-imageconfig-example--yaml"></a>

```
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}}"
```

### RuntimeManagementConfig の例
<a name="sam-resource-function-examples-runtimemanagementconfig-examples"></a>

現在の動作に従ってランタイム環境を更新するように設定された Lambda 関数:

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    Runtime: python3.9
    RuntimeManagementConfig:
      UpdateRuntimeOn: Auto
```

関数が更新されたときにランタイム環境を更新するように設定された Lambda 関数:

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    Runtime: python3.9
    RuntimeManagementConfig:
      UpdateRuntimeOn: FunctionUpdate
```

ランタイム環境を手動で更新するように構成された Lambda 関数:

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    Runtime: python3.9
    RuntimeManagementConfig:
      RuntimeVersionArn: arn:aws:lambda:us-east-1::runtime:4c459dd0104ee29ec65dcad056c0b3ddbe20d6db76b265ade7eda9a066859b1e
      UpdateRuntimeOn: Manual
```

### SnapStart の例
<a name="sam-resource-function-examples-snapstart-examples"></a>

将来のバージョンに対して SnapStart を有効にした Lambda 関数の例。

```
TestFunc
  Type: AWS::Serverless::Function
  Properties:
    ...
    SnapStart:
      ApplyOn: PublishedVersions
```

### TenancyConfig の例
<a name="sam-resource-function-examples-tenancyconfig-examples"></a>

テナント分離モードがオンになっている Lambda 関数の例:

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    TenancyConfig:
      TenantIsolationMode: PER_TENANT
```

### S3 ファイルファイルシステムの例
<a name="sam-resource-function-examples-s3files-example"></a>

次の例では、Amazon S3 Files ファイルシステムをマウントする Lambda 関数を作成します。テンプレートは、S3 バケット、そのバケットによってバックアップされた S3 ファイルファイルシステム、VPC サブネット内のマウントターゲット、およびアクセスポイントを作成します。関数はアクセスポイントを にマウント`/mnt/s3files`し、S3 バケットに同期するファイルを読み書きできます。

**注記**  
Amazon EFS ファイルシステムまたは S3 Files ファイルシステムを Lambda 関数にアタッチできますが、両方を同時にアタッチすることはできません。

#### YAML
<a name="sam-resource-function-examples-s3files-example--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Lambda function with S3 Files file system

Resources:
  # VPC and networking
  MyVpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsSupport: true
      EnableDnsHostnames: true

  MySubnet:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVpc
      CidrBlock: 10.0.1.0/24
      AvailabilityZone: !Select [0, !GetAZs '']

  MySecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Security group for Lambda and S3 Files
      VpcId: !Ref MyVpc
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 2049
          ToPort: 2049
          CidrIp: 10.0.0.0/16

  # S3 bucket for file storage
  MyS3Bucket:
    Type: AWS::S3::Bucket

  # IAM role for S3 Files to access the bucket
  S3FilesRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: elasticfilesystem.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: S3FilesBucketAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - s3:GetObject
                  - s3:PutObject
                  - s3:DeleteObject
                  - s3:ListBucket
                Resource:
                  - !GetAtt MyS3Bucket.Arn
                  - !Sub '${MyS3Bucket.Arn}/*'

  # S3 Files resources
  MyS3FilesFileSystem:
    Type: AWS::S3Files::FileSystem
    Properties:
      Bucket: !GetAtt MyS3Bucket.Arn
      RoleArn: !GetAtt S3FilesRole.Arn

  MyS3FilesMountTarget:
    Type: AWS::S3Files::MountTarget
    Properties:
      FileSystemId: !Ref MyS3FilesFileSystem
      SubnetId: !Ref MySubnet
      SecurityGroups:
        - !Ref MySecurityGroup

  MyS3FilesAccessPoint:
    Type: AWS::S3Files::AccessPoint
    Properties:
      FileSystemId: !Ref MyS3FilesFileSystem
      PosixUser:
        Uid: '1000'
        Gid: '1000'
      RootDirectory:
        Path: /lambda
        CreationInfo:
          OwnerUid: '1000'
          OwnerGid: '1000'
          Permissions: '750'

  # Lambda function with S3 Files mount
  MyFunction:
    Type: AWS::Serverless::Function
    DependsOn: MyS3FilesMountTarget
    Properties:
      Handler: index.handler
      Runtime: python3.12
      Timeout: 120
      VpcConfig:
        SecurityGroupIds:
          - !Ref MySecurityGroup
        SubnetIds:
          - !Ref MySubnet
      FileSystemConfigs:
        - Arn: !GetAtt MyS3FilesAccessPoint.AccessPointArn
          LocalMountPath: /mnt/s3files
      Policies:
        - Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Action:
                - s3files:ClientMount
                - s3files:ClientWrite
              Resource: !GetAtt MyS3FilesAccessPoint.AccessPointArn
      InlineCode: |
        import os

        def handler(event, context):
            # Write a file to the S3 Files mount
            with open('/mnt/s3files/hello.txt', 'w') as f:
                f.write('Hello from Lambda!')

            # List files at the mount path
            files = os.listdir('/mnt/s3files')
            return {'files': files}
```