

# 配置用于 Amazon ECS 的 S3 Files
<a name="s3files-volumes"></a>

S3 Files 是一个共享文件系统，可将任何 AWS 计算资源与您在 Amazon S3 中的数据直接连接。它通过完整的文件系统语义和低延迟性能，以文件形式提供对所有 S3 数据的快速、直接访问，而无需您的数据离开 S3。您可以使用文件和目录操作读取、写入和组织数据，而 S3 Files 会自动保持文件系统和 S3 存储桶同步。借助 Amazon ECS，您可以在任务定义中将 S3 Files 文件系统定义为卷，让您的容器可以通过文件系统直接访问存储在 S3 存储桶中的数据。要了解有关 Amazon S3 Files 及其功能的更多信息，请参阅 [Amazon S3 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)。

## 可用性
<a name="s3files-volume-availability"></a>

Amazon ECS 中的 S3 Files 支持在正式发布版本中适用于以下启动类型：
+ **Fargate** — 完全支持。
+ **Amazon ECS 托管实例** — 完全支持。

**重要**  
目前，Amazon EC2 启动类型不支持 S3 Files。如果您在任务定义中配置 S3 文件系统并尝试在 Amazon EC2 启动类型上运行该文件系统，则该任务将在启动时失败。Amazon EC2 启动类型支持计划在未来版本中提供。

## 注意事项
<a name="s3files-volume-considerations"></a>
+ S3 文件系统在任务定义中使用专用的 `s3filesVolumeConfiguration` 参数。
+ S3 文件系统需要完整的 Amazon 资源名称（ARN）来识别文件系统。ARN 格式为：

  ```
  arn:{{{partition}}}:s3files:{{{region}}}:{{{account-id}}}:file-system/{{fs-xxxxx}}
  ```
+ 传输加密对于 S3 文件系统卷是必需的条件，并且会自动强制执行。没有用于禁用传输加密的选项。
+ 任务 IAM 角色对于 S3 文件系统卷是必需的条件，并且会自动强制执行。没有用于禁用该角色的选项。

## 先决条件
<a name="s3files-volume-prerequisites"></a>

在您的 Amazon ECS 任务定义中配置 S3 文件系统卷之前，请确保满足以下先决条件：
+ **S3 文件系统和挂载目标** — 必须创建 S3 文件系统并将其与 S3 存储桶关联。有关创建 S3 文件系统的说明，请参阅 [Amazon S3 Files 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)。
+ **任务 IAM 角色** — 您的任务定义必须包括具有如下权限的任务 IAM 角色：
  + 从应用程序代码（在容器中运行）连接到 S3 文件系统并与之交互的权限。
  + 从应用程序代码（在容器中运行）中读取 S3 对象的权限。
+ **VPC 和安全组配置** — 您的 S3 文件系统必须可从运行 Amazon ECS 任务的 VPC 和子网进行访问。
+ **（可选）S3 Files 接入点** — 如果要强制执行特定于应用程序的访问控制，请创建 S3 Files 接入点并在任务定义中提供 ARN。

有关更多信息，请参阅 [S3 Files 的先决条件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-prereq-policies.html#s3-files-prereq-iam-compute-role)。

## S3 Files 卷配置参数
<a name="s3files-volume-parameters"></a>

下表描述 `s3filesVolumeConfiguration` 对象中可用的参数：

`fileSystemArn`  
类型：字符串  
是否必需：是  
要挂载的 S3 文件系统的完整 ARN。格式：`arn:{{{partition}}}:s3files:{{{region}}}:{{{account-id}}}:file-system/{{fs-xxxxx}}`

`rootDirectory`  
类型：字符串  
必需：否  
S3 文件系统中要作为卷的根挂载的目录。如果未指定，则默认为 `/`。

`transitEncryptionPort`  
类型：整数  
必需：否  
在 Amazon ECS 主机和 S3 文件系统之间发送加密数据时要使用的端口。传输加密本身始终处于启用状态，并且无法禁用。

`accessPointArn`  
类型：字符串  
必需：否  
要使用的 S3 Files 接入点的完整 ARN。接入点通过强制执行的用户身份和根目录设置为文件系统提供应用程序特定的入口点。