

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

# PutLifecycleConfiguration
<a name="API_PutLifecycleConfiguration"></a>

使用此操作可以管理文件系统的存储。`LifecycleConfiguration` 由一个或多个定义以下内容的 `LifecyclePolicy` 对象组成：
+  **`TransitionToIA`** – 何时将文件系统中的文件从主存储（标准存储类）移到不频繁访问 (IA) 存储。
+  **`TransitionToArchive`** - 何时将文件系统中的文件从其当前存储类别（IA 或标准存储）移到存档存储。

  在转换为 IA 存储之前，文件系统无法转换为归档存储。因此， TransitionToArchive 要么不能设置，要么必须晚于 TransitionTo IA。
**注意**  
 归档存储类仅适用于使用弹性吞吐量模式和通用性能模式的文件系统。
+  **`TransitionToPrimaryStorageClass`** – 在 IA 或归档存储中访问文件后，是否将文件系统中的文件移回主存储（标准存储类）。

有关更多信息，请参阅[管理文件系统存储](https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html)。

每个 Amazon EFS 文件系统都支持一种生命周期配置，该配置适用于该文件系统中的所有文件。如果指定文件系统的 `LifecycleConfiguration` 对象已存在，`PutLifecycleConfiguration` 调用会修改现有配置。请求正文中包含空 `LifecyclePolicies` 数组的 `PutLifecycleConfiguration` 调用会删除任何现有 `LifecycleConfiguration`。在该请求中，指定以下项：
+ 您要启用、禁用或修改其生命周期管理的文件系统的 ID。
+ `LifecyclePolicy` 对象的 `LifecyclePolicies` 数组，这些对象定义何时将文件移至 IA 存储、存档存储以及何时移回主存储。
**注意**  
Amazon EFS 要求每个 `LifecyclePolicy` 对象只有一次转换，因此需要使用单独的 `LifecyclePolicy` 对象来构造 `LifecyclePolicies` 数组。有关更多信息，请参阅以下部分中的示例请求。

此操作需要 `elasticfilesystem:PutLifecycleConfiguration` 操作的权限。

要将`LifecycleConfiguration`对象应用于加密文件系统，您需要与创建加密文件系统时相同的 AWS Key Management Service 权限。

## 请求语法
<a name="API_PutLifecycleConfiguration_RequestSyntax"></a>

```
PUT /2015-02-01/file-systems/FileSystemId/lifecycle-configuration HTTP/1.1
Content-type: application/json

{
   "LifecyclePolicies": [ 
      { 
         "TransitionToArchive": "string",
         "TransitionToIA": "string",
         "TransitionToPrimaryStorageClass": "string"
      }
   ]
}
```

## URI 请求参数
<a name="API_PutLifecycleConfiguration_RequestParameters"></a>

请求使用以下 URI 参数。

 ** [FileSystemId](#API_PutLifecycleConfiguration_RequestSyntax) **   <a name="efs-PutLifecycleConfiguration-request-uri-FileSystemId"></a>
要为其创建 `LifecycleConfiguration` 对象的文件系统 ID（字符串）。  
长度限制：最大长度为 128。  
模式：`^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$`  
必需：是

## 请求体
<a name="API_PutLifecycleConfiguration_RequestBody"></a>

请求接受采用 JSON 格式的以下数据。

 ** [LifecyclePolicies](#API_PutLifecycleConfiguration_RequestSyntax) **   <a name="efs-PutLifecycleConfiguration-request-LifecyclePolicies"></a>
定义文件系统 `LifecycleConfiguration` 对象的 `LifecyclePolicy` 对象数组。`LifecycleConfiguration` 对象向生命周期管理通知以下内容：  
+  **`TransitionToIA`** – 何时将文件系统中的文件从主存储（标准存储类）移到不频繁访问 (IA) 存储。
+  **`TransitionToArchive`** - 何时将文件系统中的文件从其当前存储类别（IA 或标准存储）移到存档存储。

  在转换为 IA 存储之前，文件系统无法转换为归档存储。因此， TransitionToArchive 要么不能设置，要么必须晚于 TransitionTo IA。
**注意**  
归档存储类仅适用于使用弹性吞吐量模式和通用性能模式的文件系统。
+  **`TransitionToPrimaryStorageClass`** – 在 IA 或归档存储中访问文件后，是否将文件系统中的文件移回主存储（标准存储类）。
使用 `put-lifecycle-configuration` CLI 命令或 `PutLifecycleConfiguration` API 操作时，Amazon EFS 要求每个 `LifecyclePolicy` 对象只有一次转换。这意味着在请求正文中，`LifecyclePolicies` 必须构造为 `LifecyclePolicy` 对象的数组，每个存储转换对应于一个对象。有关更多信息，请参阅以下部分中的示例请求。
类型：[LifecyclePolicy](API_LifecyclePolicy.md) 对象数组  
数组成员：最多 3 项。  
是否必需：是

## 响应语法
<a name="API_PutLifecycleConfiguration_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "LifecyclePolicies": [ 
      { 
         "TransitionToArchive": "string",
         "TransitionToIA": "string",
         "TransitionToPrimaryStorageClass": "string"
      }
   ]
}
```

## 响应元素
<a name="API_PutLifecycleConfiguration_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

 ** [LifecyclePolicies](#API_PutLifecycleConfiguration_ResponseSyntax) **   <a name="efs-PutLifecycleConfiguration-response-LifecyclePolicies"></a>
一系列生命周期管理策略。EFS 支持每个文件系统最多一个策略。  
类型：[LifecyclePolicy](API_LifecyclePolicy.md) 对象数组  
数组成员：最多 3 项。

## 错误
<a name="API_PutLifecycleConfiguration_Errors"></a>

 ** BadRequest **   
如果请求格式错误或包含错误（例如参数值无效或缺少必填参数），则返回此内容。    
 ** ErrorCode **   
错误代码是用于唯一标识错误条件的字符串。这意味着按类型检测和处理错误的程序将读取和理解错误代码。  
 ** Message **   
错误消息包含错误条件的常规描述 (英语)。它主要面向用户受众。如果用户遇到不知如何处理或不愿处理的错误条件，简单的程序将直接向最终用户显示消息。支持更详尽的错误处理和适当国际化的复杂程序更容易忽略错误消息。
HTTP 状态代码：400

 ** FileSystemNotFound **   
如果请求者的指定`FileSystemId`值不存在，则返回。 AWS 账户    
 ** ErrorCode **   
错误代码是用于唯一标识错误条件的字符串。这意味着按类型检测和处理错误的程序将读取和理解错误代码。  
 ** Message **   
错误消息包含错误条件的常规描述 (英语)。它主要面向用户受众。如果用户遇到不知如何处理或不愿处理的错误条件，简单的程序将直接向最终用户显示消息。支持更详尽的错误处理和适当国际化的复杂程序更容易忽略错误消息。
HTTP 状态代码：404

 ** IncorrectFileSystemLifeCycleState **   
如果文件系统的生命周期状态不是“可用”，则返回此内容。    
 ** ErrorCode **   
错误代码是用于唯一标识错误条件的字符串。这意味着按类型检测和处理错误的程序将读取和理解错误代码。  
 ** Message **   
错误消息包含错误条件的常规描述 (英语)。它主要面向用户受众。如果用户遇到不知如何处理或不愿处理的错误条件，简单的程序将直接向最终用户显示消息。支持更详尽的错误处理和适当国际化的复杂程序更容易忽略错误消息。
HTTP 状态代码：409

 ** InternalServerError **   
如果服务器端发生错误，则返回此内容。    
 ** ErrorCode **   
错误代码是用于唯一标识错误条件的字符串。这意味着按类型检测和处理错误的程序将读取和理解错误代码。  
 ** Message **   
错误消息包含错误条件的常规描述 (英语)。它主要面向用户受众。如果用户遇到不知如何处理或不愿处理的错误条件，简单的程序将直接向最终用户显示消息。支持更详尽的错误处理和适当国际化的复杂程序更容易忽略错误消息。
HTTP 状态代码：500

## 示例
<a name="API_PutLifecycleConfiguration_Examples"></a>

### 创建生命周期配置
<a name="API_PutLifecycleConfiguration_Example_1"></a>

以下示例使用 `PutLifecycleConfiguration` 操作创建 `LifecyclePolicy` 对象。此示例将创建一个生命周期策略，指示 EFS 执行以下操作：
+ 将文件系统中过去 30 天内未在标准存储中访问过的所有文件移到 IA 存储。
+ 将文件系统中过去 90 天内未在标准存储中访问过的所有文件移到存档存储。
+ 在 IA 或存档存储中访问文件后，将文件移回标准存储。归档存储类仅适用于使用弹性吞吐量模式和通用性能模式的文件系统。

有关更多信息，请参阅 [EFS 存储类](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html)和[管理文件系统存储](https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html)。

#### 示例请求
<a name="API_PutLifecycleConfiguration_Example_1_Request"></a>

```
PUT /2015-02-01/file-systems/fs-0123456789abcdefb/lifecycle-configuration HTTP/1.1
Host: elasticfilesystem.us-west-2.amazonaws.com
x-amz-date: 20181122T232908Z
Authorization: <...>
Content-type: application/json
Content-Length: 86

{
   "LifecyclePolicies": [
      {
         "TransitionToArchive": "AFTER_90_DAYS"
      },
      {
         "TransitionToIA": "AFTER_30_DAYS"
      },
      {
         "TransitionToPrimaryStorage": "AFTER_1_ACCESS"
      }
   ]
}
```

#### 示例响应
<a name="API_PutLifecycleConfiguration_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-RequestId: 01234567-89ab-cdef-0123-456789abcdef
Content-type: application/json
Content-Length: 86

{
    "LifecyclePolicies": [
      {
         "TransitionToArchive": "AFTER_90_DAYS"
      },
      {
         "TransitionToIA": "AFTER_30_DAYS"
      },
      {
         "TransitionToPrimaryStorage": "AFTER_1_ACCESS"
      }
    ]
}
```

### put-lifecycle-configurationCLI 请求示例
<a name="API_PutLifecycleConfiguration_Example_2"></a>

此示例说明了的一种用法 PutLifecycleConfiguration。

#### 示例请求
<a name="API_PutLifecycleConfiguration_Example_2_Request"></a>

```
aws efs put-lifecycle-configuration \
   --file-system-id fs-0123456789abcdefb \
   --lifecycle-policies "[{"TransitionToArchive":"AFTER_90_DAYS"},
     {"TransitionToIA":"AFTER_30_DAYS"},
     {"TransitionToPrimaryStorageClass":"AFTER_1_ACCESS"}]  
   --region us-west-2 \
   --profile adminuser
```

#### 示例响应
<a name="API_PutLifecycleConfiguration_Example_2_Response"></a>

```
{
   "LifecyclePolicies": [
       {
           "TransitionToArchive": "AFTER_90_DAYS"
       },
       {
           "TransitionToIA": "AFTER_30_DAYS"
       },
       {
           "TransitionToPrimaryStorageClass": "AFTER_1_ACCESS"
       }
   ]
}
```

### 禁用生命周期管理
<a name="API_PutLifecycleConfiguration_Example_3"></a>

以下示例禁用指定文件系统的生命周期管理。

#### 示例请求
<a name="API_PutLifecycleConfiguration_Example_3_Request"></a>

```
PUT /2015-02-01/file-systems/fs-01234567/lifecycle-configuration HTTP/1.1
Host: elasticfilesystem.us-west-2.amazonaws.com
x-amz-date: 20181122T232908Z
Authorization: <...>
Content-type: application/json
Content-Length: 86

{
   "LifecyclePolicies": [ ]
}
```

#### 示例响应
<a name="API_PutLifecycleConfiguration_Example_3_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-RequestId: 01234567-89ab-cdef-0123-456789abcdef
Content-type: application/json
Content-Length: 86

{
   "LifecyclePolicies": [ ]
}
```

## 另请参阅
<a name="API_PutLifecycleConfiguration_SeeAlso"></a>

有关以特定语言之一使用此 API 的更多信息 AWS SDKs，请参阅以下内容：
+  [AWS 命令行界面 V2](https://docs.aws.amazon.com/goto/cli2/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于.NET 的 SDK V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/goto/SdkForCpp/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于 Go v2 的 SDK](https://docs.aws.amazon.com/goto/SdkForGoV2/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于 Java 的 SDK V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS JavaScript V3 版软件开发工具包](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/goto/SdkForKotlin/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于 PHP 的 SDK V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS Python 软件开发工具包](https://docs.aws.amazon.com/goto/boto3/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 
+  [AWS 适用于 Ruby V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/elasticfilesystem-2015-02-01/PutLifecycleConfiguration) 