

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 資源 AWS SAM 轉換為 CloudFormation 資源。如需詳細資訊，請參閱[為 產生 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)}}
```

## Properties
<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 新增預設擔任角色。  
*類型*：JSON  
*必要*：否  
*CloudFormation 相容性*：此屬性類似於 `AWS::IAM::Role` 資源的 `[AssumeRolePolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument)` 屬性。 會將此屬性 AWS SAM 新增至此函數產生的 IAM 角色。如果此函數提供角色的 Amazon Resource Name (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-alias.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-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.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 函數程式碼的新部署套件取代，但 `CodeUri` 屬性保持不變 （而不是將新的部署套件上傳至新的 Amazon S3 位置，並將 `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)。
*類型*：【字串 \| [FunctionCode](sam-property-function-functioncode.md) 】  
*必要*：有條件限制。當 `PackageType` 設為 時`Zip`，`InlineCode`需要其中一個 `CodeUri`或 。  
*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>
設定 Amazon Simple Notification Service (Amazon SNS) 主題或 Amazon Simple Queue Service (Amazon SQS) 佇列，其中 Lambda 會傳送無法處理的事件。如需無效字母佇列功能的詳細資訊，請參閱《 *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`物件， 會 AWS SAM 建立[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`（每個堆疊一個）`{{<function-logical-id>}}DeploymentGroup`、[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)稱為 的 和[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)稱為 的 `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>
指定 中 Lambda 函數可用磁碟空間的物件，以 MB 為單位`/tmp`。  
如需此屬性的詳細資訊，請參閱《 *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>
指定觸發此函數的事件。事件由類型和一組屬性組成，這些屬性取決於類型。  
*類型*︰[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 檔案檔案系統的連線設定的 [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) 物件清單。您可以連接 Amazon EFS 存取點或 S3 檔案存取點，但不能同時連接兩者。  
每個`FileSystemConfig`物件都包含 `Arn`（存取點 ARN) 和 `LocalMountPath`（在函數中掛載檔案系統的路徑）。對於 Amazon EFS，ARN 是 Amazon EFS 存取點 ARN。對於 S3 檔案，ARN 是 `AWS::S3Files::AccessPoint` ARN。  
如果您的範本包含 [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 檔案掛載目標指定`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 開發人員指南*[》中的函數 URLs](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`（預設），則需要其中一個 `InlineCode` `CodeUri`或 。
*類型：*字串  
*必要*：有條件  
*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` ARNs 清單。此處指定的順序是在執行 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 組態設定。  
*類型*︰[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`（預設），則會`InlineCode`套用 `CodeUri`或 ，並`ImageUri`忽略 。  
2. 如果此屬性設為 `Image`，則只會`ImageUri`套用 ，且`InlineCode`會忽略 `CodeUri`和 。儲存函數容器映像所需的 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>
指出是否要將標籤從 `Tags` 屬性傳遞至您[AWS::Serverless::Function](sam-specification-generated-resources-function.md)產生的資源。指定 `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。如果未指定角色，則會為您建立邏輯 ID 為 的角色`{{<function-logical-id>}}Role`。

 `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)。  
建立堆疊時， AWS SAM 會自動將`lambda:createdBy:SAM`標籤新增至此 Lambda 函數，以及此函數產生的預設角色。  
*類型*：映射  
*必要*：否  
*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`物件清單）。此外， AWS SAM 自動將`lambda:createdBy:SAM`標籤新增至此 Lambda 函數，以及新增至為此函數產生的預設角色。

 `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` 屬性， 會將`arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess`政策 AWS SAM 新增至其為您建立的 Lambda 執行角色。  
如需 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>
指定設定 時所建立 Lambda `AutoPublishAlias` 版本資源的刪除政策。這會控制在刪除堆疊時保留或刪除版本資源。  
*有效值*：`Delete`、`Retain` 或 `Snapshot`  
*類型：*字串  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等的。它會在產生的`AWS::Lambda::Version`資源上設定 `DeletionPolicy` 屬性。

 `VpcConfig`   <a name="sam-function-vpcconfig"></a>
可讓此函數存取虛擬私有雲端 (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>

### Ref
<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>

以下是 Amazon S3 儲存貯體中套件類型 `Zip`（預設） 和函數程式碼 [AWS::Serverless::Function](#sam-resource-function) 資源的基本範例。

#### 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>

以下是套件類型 之 `ImageConfig` Lambda 函數的 範例`Image`。

#### 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 檔案系統連接到 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}
```