

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

# FunctionCode
<a name="sam-property-function-functioncode"></a>

Lambda 事件函数的[部署包](https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html)。

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

要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体，请使用以下语法。

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

```
  [Bucket](#sam-function-functioncode-bucket): {{String}}
  [Key](#sam-function-functioncode-key): {{String}}
  [StorageMode](#sam-function-functioncode-storagemode): {{String}}
  [Version](#sam-function-functioncode-version): {{String}}
```

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

 `Bucket`   <a name="sam-function-functioncode-bucket"></a>
与您的函数位于同一 AWS 区域的 Amazon S3 存储桶。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[S3Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket)`属性。

 `Key`   <a name="sam-function-functioncode-key"></a>
部署程序包的 Amazon S3 密钥。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[S3Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key)`属性。

 `StorageMode`   <a name="sam-function-functioncode-storagemode"></a>
控制 Lambda 存储部署包的方式。  
+ `COPY`— Lambda 会将您的部署包的副本上传到存储区。 Lambda-managed 您可以在 Lambda 创建函数后删除 Amazon S3 对象。
+ `REFERENCE`— Lambda 引用您的 Amazon S3 存储桶中的部署包，并且不存储副本。在函数的生命周期内，对象必须保持原位，且 Lambda 必须保留对其的访问权限。
要使用`REFERENCE`，请在您的 Amazon S3 存储桶上启用版本控制并授予 Lambda 服务委托人访问该对象的权限。有关更多信息，请参阅*AWS Lambda 开发人员指南*[中的 Self-managed Amazon S3 代码存储](https://docs.aws.amazon.com/lambda/latest/dg/configuration-self-managed-storage.html)。  
*类型*：字符串  
*有效值*：`COPY` \| `REFERENCE`  
*必需*：否  
*默认值*：`COPY`  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[S3ObjectStorageMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectstoragemode)`属性。

 `Version`   <a name="sam-function-functioncode-version"></a>
对于版本控制的对象，指要使用的部署程序包对象的版本。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::Function``Code`数据类型的`[S3ObjectVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion)`属性。

## 示例
<a name="sam-property-function-functioncode--examples"></a>

### FunctionCode
<a name="sam-property-function-functioncode--examples--functioncode"></a>

`CodeUri`：函数代码示例

#### YAML
<a name="sam-property-function-functioncode--examples--functioncode--yaml"></a>

```
CodeUri:
  Bucket: sam-s3-demo-bucket-name
  Key: mykey-name
  Version: 121212
```

### Self-managed 亚马逊 S3 代码存储
<a name="sam-property-function-functioncode--examples--storagemode"></a>

以下内容`CodeUri`引用了您自己的 Amazon S3 存储桶中的部署包，而不是将其复制到 Lambda-managed 存储中。

#### YAML
<a name="sam-property-function-functioncode--examples--storagemode--yaml"></a>

```
CodeUri:
  Bucket: amzn-s3-demo-bucket-name
  Key: mykey-name
  Version: 121212
  StorageMode: REFERENCE
```