

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

创建触发该 Amazon Lambda 函数的函数、 Amazon Identity and Access Management (IAM) 执行角色和事件源映射。

该[AWS::Serverless::Function](#sam-resource-function)资源还支持 r `Metadata` esource 属性，因此您可以指示 Amazon SAM 构建应用程序所需的自定义运行时。有关构建自定义运行时系统的更多信息，请参阅 [在中使用自定义运行时构建 Lambda 函数 Amazon SAM](building-custom-runtimes.md)。

**注意**  
部署到时 Amazon CloudFormation， Amazon SAM 会将您的 Amazon SAM 资源转换为 Amazon CloudFormation 资源。有关更多信息，请参阅 [生成的 Amazon CloudFormation 资源用于 Amazon SAM](sam-specification-generated-resources.md)。

## 语法
<a name="sam-resource-function-syntax"></a>

要在 Amazon Serverless Application Model (Amazon 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.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)
  [EphemeralStorage](#sam-function-ephemeralstorage): [EphemeralStorage](https://docs.amazonaws.cn/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.amazonaws.cn/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.amazonaws.cn/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.amazonaws.cn/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.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)
  SnapStart: [SnapStart](https://docs.amazonaws.cn/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.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)
```

## Properties
<a name="sam-resource-function-properties"></a>

 `Architectures`   <a name="sam-function-architectures"></a>
该函数的指令集架构。  
有关此属性更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的 [Lambda 指令集架构](https://docs.amazonaws.cn/lambda/latest/dg/foundation-arch.html)。  
*有效值*：`x86_64` 或 `arm64` 之一。  
*类型*：列表  
*必需*：否  
*默认值*：`x86_64`  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Architectures](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures)`属性。

 `AssumeRolePolicyDocument`   <a name="sam-function-assumerolepolicydocument"></a>
 AssumeRolePolicyDocument 为该函数创建`Role`的默认值添加一个。如果未指定此属性，则为该函数 Amazon SAM 添加默认的代入角色。  
*类型*：JSON  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::IAM::Role`资源的`[AssumeRolePolicyDocument](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument)`属性。 Amazon SAM 将此属性添加到为此函数生成的 IAM 角色中。如果为此函数提供了角色的 Amazon 资源名称（ARN），则此属性将不执行任何操作。

 `AutoPublishAlias`   <a name="sam-function-autopublishalias"></a>
Lambda 别名的名称。要了解有关 Lambda 别名的更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的 [Lambda 函数别名](https://docs.amazonaws.cn/lambda/latest/dg/configuration-aliases.html)。有关使用此属性的示例，请参见 [使用以下方法逐步部署无服务器应用程序 Amazon SAM](automating-updates-to-serverless-apps.md)。  
Amazon SAM 设置此属性时生成[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html)和[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)资源。有关此场景的更多信息，请参阅[AutoPublishAlias 属性已指定](sam-specification-generated-resources-function.md#sam-specification-generated-resources-function-autopublishalias)。有关生成的 Amazon CloudFormation 资源的一般信息，请参阅[生成的 Amazon CloudFormation 资源用于 Amazon SAM](sam-specification-generated-resources.md)。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `AutoPublishAliasAllProperties`   <a name="sam-function-autopublishaliasallproperties"></a>
指定何时创建新的 [https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.amazonaws.cn/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`  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `AutoPublishCodeSha256`   <a name="sam-function-autopublishcodesha256"></a>
使用时，此字符串将与 `CodeUri` 值一起确定是否需要发布新的 Lambda 版本。此属性通常用于解决以下部署问题：部署包存储在 Amazon S3 位置，且被包含更新后的 Lambda 函数代码的新部署包取代，但 `CodeUri` 属性保持不变（相反情况是新的部署包上传到新的 Amazon S3 位置并且 `CodeUri` 更改为新位置）。  
此问题由具有以下特征的 Amazon SAM 模板标记：  
+ `DeploymentPreference` 对象配置为逐步部署（如[使用以下方法逐步部署无服务器应用程序 Amazon SAM](automating-updates-to-serverless-apps.md)中所述）
+ `AutoPublishAlias` 属性已设置，且在部署之间不会更改
+ `CodeUri` 属性已设置，且在部署之间不会更改。
在这种情况下，更新 `AutoPublishCodeSha256` 会导致成功创建新的 Lambda 版本。但是，部署到 Amazon S3 的新函数代码将无法识别。要识别新的函数代码，请考虑在 Amazon S3 存储桶中使用版本控制。为 Lambda 函数指定 `Version` 属性，并将存储桶配置为始终使用最新的部署包。  
在这种情况下，要成功触发逐步部署，必须为 `AutoPublishCodeSha256` 提供一个唯一的值。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `CapacityProviderConfig`   <a name="sam-function-capacityproviderconfig"></a>
配置要将函数的已发布版本附加到的容量提供商。这使该函数能够在由 Lambda 托管实例管理的客户拥有的 EC2 实例上运行。  
*类型*：[CapacityProviderConfig](sam-property-function-capacityproviderconfig.md)  
*必需*：否  
*Amazon CloudFormation 兼容性*：SAM 对传递给`AWS::Lambda::Function`资源属性的`[CapacityProviderConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-capacityproviderconfig)`属性进行扁平化并重建嵌套结构。

 `CodeSigningConfigArn`   <a name="sam-function-codesigningconfigarn"></a>
[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html) 资源的 ARN，用于为此函数启用代码签名。有关代码签名的更多信息，请参阅 [为您的 Amazon SAM 应用程序设置代码签名](authoring-codesigning.md)。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[CodeSigningConfigArn](https://docs.amazonaws.cn/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.amazonaws.cn/lambda/latest/dg/gettingstarted-package.html)。  
如果您提供本地文件路径，请在部署时使用 Amazon SAM CLI 上传本地文件。要了解更多信息，请参阅[如何在 Amazon SAM 部署时上传本地文件](deploy-upload-local-files.md)。  
如果你在`CodeUri`属性中使用内部函数， Amazon SAM 将无法正确解析这些值。请考虑改用[AWS::Language扩展程序转换](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/transform-aws-languageextensions.html)。
*类型*：[ 字符串 \$1 [FunctionCode](sam-property-function-functioncode.md) ]  
*必填*：条件性。当 `PackageType` 设置为 `Zip` 时，则 `CodeUri` 或 `InlineCode` 中的一种为必需。  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::Lambda::Function`资源的`[ Code](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code)`属性。嵌套的 Amazon S3 属性的命名有所不同。

 `DeadLetterQueue`   <a name="sam-function-deadletterqueue"></a>
在 Lambda 发送无法处理的事件时配置 Amazon Simple Notiﬁcation Service (Amazon SNS)主题或 Amazon Simple Queue Service (Amazon SQS) 队列。有关死信队列功能的更多信息，请参阅《Amazon Lambda 开发人员指南》**中的[死信队列](https://docs.amazonaws.cn/lambda/latest/dg/invocation-async-retain-records.html#invocation-dlq)。  
如果您的 Lambda 函数的事件源是 Amazon SQS 队列，请为源队列而不是 Lambda 函数配置死信队列。您为函数配置的死信队列用于函数的[异步调用队列](https://docs.amazonaws.cn/lambda/latest/dg/invocation-async.html)，而不是用于事件源队列。
*类型*：地图 \$1 [DeadLetterQueue](sam-property-function-deadletterqueue.md)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::Lambda::Function`资源的`[DeadLetterConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html)`属性。在 Amazon CloudFormation 中，类型是派生自的`TargetArn`，而在中， Amazon SAM 你必须将类型与一起传递`TargetArn`。

 `DeploymentPreference`   <a name="sam-function-deploymentpreference"></a>
用于启用逐步 Lambda 部署的设置。  
如果指定了`DeploymentPreference`对象，则 Amazon SAM 会创建一个[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)被调用对象`ServerlessDeploymentApplication`（每个堆栈一个）、一个[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)被调用`<function-logical-id>DeploymentGroup`对象和一个[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)被调用对象`CodeDeployServiceRole`。  
*类型*：[DeploymentPreference](sam-property-function-deploymentpreference.md)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。  
*另请参阅*：有关此属性的更多信息，请参阅 [使用以下方法逐步部署无服务器应用程序 Amazon SAM](automating-updates-to-serverless-apps.md)。

 `Description`   <a name="sam-function-description"></a>
该函数的描述。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Description](https://docs.amazonaws.cn/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)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `Environment`   <a name="sam-function-environment"></a>
运行时系统环境的配置。  
*类型*：[环境](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Environment](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)`属性。

 `EphemeralStorage`   <a name="sam-function-ephemeralstorage"></a>
指定 `/tmp` 中 Lambda 函数可用的磁盘空间（以 MB 为单位）的对象。  
有关此属性的更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的 [Lambda 执行环境](https://docs.amazonaws.cn/lambda/latest/dg/runtimes-context.html)。  
*类型*：[EphemeralStorage](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[EphemeralStorage](https://docs.amazonaws.cn/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)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `Events`   <a name="sam-function-events"></a>
指定触发此函数的事件。事件由一个类型和一组依赖于该类型的属性组成。  
*类型*：[EventSource](sam-property-function-eventsource.md)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `FileSystemConfigs`   <a name="sam-function-filesystemconfigs"></a>
指定亚马逊弹性文件系统 (Amazon EFS) 文件系统的连接设置的[FileSystemConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html)对象列表。  
如果模板包含 [https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) 资源，您还必须指定一个 `DependsOn` 资源属性，以确保在函数之前创建或更新装载目标。  
*类型*：列表  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[FileSystemConfigs](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs)`属性。

 `FunctionName`   <a name="sam-function-functionname"></a>
函数的名称。如果您没有指定名称，则系统为您生成唯一的名称。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[FunctionName](https://docs.amazonaws.cn/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)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[FunctionScalingConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionscalingconfig)`属性。

 `FunctionUrlConfig`   <a name="sam-function-functionurlconfig"></a>
描述函数 URL 的对象。函数 URL 是可用于调用函数的 HTTPS 端点。  
有关更多信息，请参阅《*Amazon Lambda 开发者指南*》URLs中的[函数](https://docs.amazonaws.cn/lambda/latest/dg/lambda-urls.html)。  
*类型*：[FunctionUrlConfig](sam-property-function-functionurlconfig.md)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `Handler`   <a name="sam-function-handler"></a>
代码中被调用以开始执行的函数。仅当属性 `PackageType` 为 `Zip` 时，该属性是必需属性。  
*类型*：字符串  
*必需*：条件  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Handler](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler)`属性。

 `ImageConfig`   <a name="sam-function-imageconfig"></a>
用于配置 Lambda 容器映像设置的对象。有关更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的[将容器映像与 Lambda 结合使用](https://docs.amazonaws.cn/lambda/latest/dg/lambda-images.html)。  
*类型*：[ImageConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[ImageConfig](https://docs.amazonaws.cn/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` 时，此属性才适用，否则将被忽略。有关更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的[将容器映像与 Lambda 结合使用](https://docs.amazonaws.cn/lambda/latest/dg/lambda-images.html)。  
如果将该`PackageType`属性设置为`Image`，`ImageUri`则要么为必填项，要么必须使用 Amazon SAM 模板文件中的必要`Metadata`条目来构建应用程序。有关更多信息，请参阅 [默认版本使用 Amazon SAM](serverless-sam-cli-using-build.md)。
使用必要的 `Metadata` 条目构建应用程序优先于 `ImageUri`，因此，如果您同时指定两者，则 `ImageUri` 会被忽略。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[ImageUri](https://docs.amazonaws.cn/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` 中的一个为必需。
*类型*：字符串  
*必需*：条件  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[ZipFile](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile)`属性。

 `KmsKeyArn`   <a name="sam-function-kmskeyarn"></a>
Lambda 用来加密和解密函数环境变量的 Amazon Key Management Service (Amazon KMS) 密钥的 ARN。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[KmsKeyArn](https://docs.amazonaws.cn/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`。  
*类型*：列表  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Layers](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers)`属性。

 `LoggingConfig`   <a name="sam-function-loggingconfig"></a>
该函数的 Amazon CloudWatch 日志配置设置。  
*类型*：[LoggingConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-loggingconfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-loggingconfig)属性。

 `MemorySize`   <a name="sam-function-memorysize"></a>
每次调用函数时分配的内存大小（以 MB 为单位）。  
*类型*：整数  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[MemorySize](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize)`属性。

 `PackageType`   <a name="sam-function-packagetype"></a>
Lambda 函数的部署包类型。有关更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的[Lambda 部署包](https://docs.amazonaws.cn/lambda/latest/dg/gettingstarted-package.html)。  
**备注**：  
1. 如果此属性设置为 `Zip`（默认），则将应用 `CodeUri` 或 `InlineCode`，并忽略 `ImageUri`。  
2. 如果此属性设置为 `Image`，则仅应用 `ImageUri`，并忽略 `CodeUri` 和 `InlineCode`。存储函数容器镜像所需的 Amazon ECR 存储库可以由自动创建。 Amazon SAMCLI有关更多信息，请参阅 [sam deploy](sam-cli-command-reference-sam-deploy.md)。  
*有效值*：`Zip` 或 `Image`  
*类型*：字符串  
*必需*：否  
*默认值*：`Zip`  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[PackageType](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype)`属性。

 `PermissionsBoundary`   <a name="sam-function-permissionsboundary"></a>
用于此函数执行角色的权限边界的 ARN。仅当为您生成角色时，此属性才起作用。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::IAM::Role`资源的`[PermissionsBoundary](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary)`属性。

 `Policies`   <a name="sam-function-policies"></a>
此函数的权限策略。策略将附加到函数的默认 Amazon Identity and Access Management (IAM) 执行角色中。  
此属性接受单个值或值列表。允许的值包括：  
+ [Amazon SAM策略模板](serverless-policy-templates.md).
+ [Amazon 托管策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[客户管理型策略](https://docs.amazonaws.cn/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)中 Amazon 托管策略的名称。
+ 在 YAML 中格式化为映射的[内联 IAM policy](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)。
如果指定 `Role` 属性，则将忽略该属性。
*类型*：字符串 \$1 列表 \$1 映射  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::IAM::Role`资源的`[Policies](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies)`属性。

 `PublishToLatestPublished`   <a name="sam-function-publishtolatestpublished"></a>
指定在函数更新时是否发布最新的函数版本。  
*类型*：布尔值  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[PublishToLatestPublished](https://docs.amazonaws.cn/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`  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。

 `ProvisionedConcurrencyConfig`   <a name="sam-function-provisionedconcurrencyconfig"></a>
函数别名的预置并发配置。  
仅当设置 `AutoPublishAlias` 时才可以指定 `ProvisionedConcurrencyConfig`。否则将导致错误。
*类型*：[ProvisionedConcurrencyConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Alias`资源的`[ProvisionedConcurrencyConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)`属性。

 `RecursiveLoop`   <a name="sam-function-recursiveloop"></a>
函数的递归循环检测配置的状态。  
当此值设置为 `Allow` 且 Lambda 检测到您的函数作为递归循环的一部分调用时，它不会采取任何操作。  
当此值设置为 `Terminate` 且 Lambda 检测到您的函数作为递归循环的一部分调用时，它会停止调用函数并通知您。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[RecursiveLoop](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-recursiveloop)`属性。

 `ReservedConcurrentExecutions`   <a name="sam-function-reservedconcurrentexecutions"></a>
希望为函数预留的最大并发执行数。  
有关此属性更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的 [Lambda 函数扩展](https://docs.amazonaws.cn/lambda/latest/dg/scaling.html)。  
*类型*：整数  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[ReservedConcurrentExecutions](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions)`属性。

 `Role`   <a name="sam-function-role"></a>
要用作此函数执行角色的 IAM 角色的 ARN。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::Lambda::Function`资源的`[Role](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role)`属性。这在中是必需的 Amazon CloudFormation ，但不是必填的 Amazon SAM。如果未指定角色，则会为您创建一个逻辑 ID 为 `<function-logical-id>Role` 的角色。

 `RolePath`   <a name="sam-function-rolepath"></a>
函数的 IAM 执行角色的路径。  
生成角色时请使用此属性。当使用 `Role` 属性指定角色时，请勿使用。  
*类型*：字符串  
*必需*：条件  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::IAM::Role`资源的`[Path](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path)`属性。

 `Runtime`   <a name="sam-function-runtime"></a>
函数的[运行时](https://docs.amazonaws.cn/lambda/latest/dg/lambda-runtimes.html)的标识符。仅当属性 `PackageType` 为 `Zip` 时，该属性是必需属性。  
如果为此属性指定标`provided`识符，则可以使用 res `Metadata` ource 属性 Amazon SAM 来指示构建此函数所需的自定义运行时。有关构建自定义运行时系统的更多信息，请参阅 [在中使用自定义运行时构建 Lambda 函数 Amazon SAM](building-custom-runtimes.md)。
*类型*：字符串  
*必需*：条件  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Runtime](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime)`属性。

 `RuntimeManagementConfig`   <a name="sam-function-runtimemanagementconfig"></a>
为 Lambda 函数配置运行时系统管理选项，例如运行时环境更新、回滚行为以及选择特定的运行时版本。要了解更多信息，请参阅*《Amazon Lambda 开发人员指南》*中的 [Lambda 运行时系统更新](https://docs.amazonaws.cn//lambda/latest/dg/runtimes-update.html)。  
*类型*：[RuntimeManagementConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[ RuntimeManagementConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)`属性。

 `SnapStart`   <a name="sam-function-snapstart"></a>
创建任何新 Lambda 函数版本的快照。快照是初始化函数的缓存状态，包括其所有依赖项。函数仅被初始化一次，缓存的状态将在未来的所有调用中重复使用，从而通过减少必须初始化函数的次数来提高应用程序性能。要了解更多信息，请参阅*Amazon Lambda 开发人员*指南SnapStart中的[使用 Lambda 提高启动性能](https://docs.amazonaws.cn/lambda/latest/dg/snapstart.html)。  
*类型*：[SnapStart](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[SnapStart](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)`属性。

 `SourceKMSKeyArn`   <a name="sam-function-sourcekmskeyarn"></a>
代表用于加密客户 ZIP 功能代码的 KMS 密钥 ARN。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[SourceKMSKeyArn](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-sourcekmskeyarn)`属性。

 `Tags`   <a name="sam-function-tags"></a>
指定添加到此函数的标签的映射（字符串到字符串）。有关标签的有效键和值的详细信息，请参阅*《Amazon Lambda 开发人员指南》*中的[标签键和值要求](https://docs.amazonaws.cn/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions)。  
创建堆栈后， Amazon SAM 会自动向此 Lambda 函数以及为此函数生成的默认角色添加`lambda:createdBy:SAM`标签。  
*类型*：映射  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::Lambda::Function`资源的`[Tags](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags)`属性。中的`Tags`属性由键值对 Amazon SAM 组成（而 Amazon CloudFormation 在此属性中则由`Tag`对象列表组成）。此外，还 Amazon SAM 会自动向此 Lambda 函数以及为此函数生成的默认角色添加`lambda:createdBy:SAM`标签。

 `TenancyConfig`   <a name="sam-function-tenancyconfig"></a>
Lambda 租户隔离模式的配置。确保不同租户之间永远不会共享执行环境 IDs，从而为多租户应用程序提供计算级隔离。  
*类型*：[TenancyConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tenancyconfig.html)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[TenancyConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tenancyconfig)`属性。

 `Timeout`   <a name="sam-function-timeout"></a>
函数在停止之前可以运行的最长时间（以秒为单位）。  
*类型*：整数  
*必需*：否  
*原定设置值：*3  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[Timeout](https://docs.amazonaws.cn/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` 属性，则 Amazon SAM 会将 `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` 策略添加到它为您创建的 Lambda 执行角色中。  
有关 X-Ray 的更多信息，请参阅《*Amazon Lambda 开发者指南》 Amazon X-Ray*中的 “[Amazon Lambda 与一起使用](https://docs.amazonaws.cn/lambda/latest/dg/lambda-x-ray.html)”。  
*有效值*：[`Active`\$1`Disabled`\$1`PassThrough`]  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性类似于`AWS::Lambda::Function`资源的`[TracingConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig)`属性。

 `VersionDescription`   <a name="sam-function-versiondescription"></a>
指定在新的 Lambda 版本资源上添加的 `Description` 字段。  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Version`资源的`[Description](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description)`属性。

 `VersionDeletionPolicy`   <a name="sam-function-versiondeletionpolicy"></a>
为设置时`AutoPublishAlias`创建的 Lambda 版本资源指定删除策略。这控制了删除堆栈时是保留还是删除版本资源。  
*有效值*：`Delete`、`Retain` 或 `Snapshot`  
*类型*：字符串  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性是独有的 Amazon SAM ，没有 Amazon CloudFormation 等效属性。它在生成的`AWS::Lambda::Version`资源上设置`DeletionPolicy`属性。

 `VpcConfig`   <a name="sam-function-vpcconfig"></a>
该配置使该函数能够访问您的虚拟私有云（VPC）中的私有资源。  
*类型*：[VpcConfig](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  
*必需*：否  
*Amazon CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function`资源的`[VpcConfig](https://docs.amazonaws.cn/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>

当向 `Ref` 内置函数提供此资源的逻辑 ID 时，将返回底层 Lambda 函数的资源名称。

有关使用 `Ref` 函数的更多信息，请参阅*《Amazon CloudFormation 用户指南》*中的 [https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)。

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

`Fn::GetAtt` 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

有关使用 `Fn::GetAtt` 的更多信息，请参阅*《Amazon CloudFormation 用户指南》*中的 [https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.amazonaws.cn/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`、`Tracing`、`Policies`、`Amazon EFS`和 `Api` 事件源的包类型为 `Zip`（默认）的 [AWS::Serverless::Function](#sam-resource-function) 示例。

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