本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CreateMountTarget
创建文件系统的挂载目标。然后,您可通过使用挂载目标在 EC2 实例上挂载文件系统。
可以在 VPC 中的每个可用区内创建一个挂载目标。给定可用区内的 VPC 中的所有 EC2 实例共享给定文件系统的单个挂载目标。如果您在一个可用区中有多个子网,则在其中一个子网中创建挂载目标。EC2 实例不需要与挂载目标位于同一子网中,以便访问其文件系统。
您只能使用一个区域存储类为 EFS 文件系统创建一个挂载目标。您必须在文件系统所在的同一可用区中创建挂载目标。使用AvailabilityZoneName
和AvailabiltyZoneId
中的属性DescribeFileSystems响应对象来获取此信息。使用subnetId
创建装载目标时与文件系统的可用区相关联。
有关更多信息,请参阅 。Amazon EFS:工作方式.
要为文件系统创建挂载目标,文件系统的生命周期状态必须为available
. 有关更多信息,请参阅 DescribeFileSystems。
在请求中,提供以下信息:
-
您为其创建挂载目标的文件系统 ID。
-
子网 ID,它将决定:
-
Amazon EFS 在其中创建挂载目标的 VPC
-
Amazon EFS 在其中创建挂载目标的可用区
-
Amazon EFS 从中选择挂载目标的 IP 地址的 IP 地址范围(如果您未在请求中指定 IP 地址)
-
创建挂载目标后,Amazon EFS 将返回一个响应,其中包括一个 MountTargetId
和一个 IpAddress
。在 EC2 实例中挂载文件系统时,可使用此 IP 地址。您还可以在挂载文件系统时使用挂载目标的 DNS 名称。您使用挂载目标在其中挂载文件系统的 EC2 实例可以将挂载目标的 DNS 名称解析为其 IP 地址。有关更多信息,请参阅 。工作方式:实施概述.
请注意,您只能在一个 VPC 中为文件系统创建挂载目标,而且每个可用区只能有一个挂载目标。也就是说,如果已为文件系统创建一个或多个挂载目标,则在添加另一个挂载目标的请求中指定的子网必须满足以下要求:
-
必须与现有挂载目标的子网属于同一 VPC
-
不得与现有挂载目标的任何子网位于同一可用区中
如果请求满足要求,则 Amazon EFS 将执行以下操作:
-
在指定的子网中创建新的挂载目标。
-
还在子网中创建新的网络接口,如下所示:
-
如果请求提供
IpAddress
,则 Amazon EFS 将向网络接口分配该 IP 地址。否则,Amazon EFS 会在子网中分配一个空闲地址(与请求未指定主要私有 IP 地址时 Amazon EC2CreateNetworkInterface
调用所采用的方式相同)。 -
如果请求提供
SecurityGroups
,则此网络接口将与这些安全组关联。否则,它属于子网的 VPC 的默认安全组。 -
分配描述
Mount target fsmt-id for file system fs-id
,其中fsmt-id
是挂载目标 ID,fs-id
是FileSystemId
。 -
将网络接口的
requesterManaged
属性设置为true
,并将requesterId
值设置为EFS
。
每个 Amazon EFS 挂载目标都有一个相应的请求者托管 EC2 网络接口。创建网络接口后,Amazon EFS 会将挂载目标的描述中的
NetworkInterfaceId
字段设置为网络接口 ID,并将IpAddress
字段设置为其地址。如果网络接口创建失败,则整个CreateMountTarget
操作将失败。 -
这些区域有:CreateMountTarget
只有在创建网络接口后,但挂载目标状态仍然处于状态时,调用才会返回creating
,您可以通过调用DescribeMountTargets操作,除其他外,它返回装载目标状态。
我们建议您在每个可用区中分别创建一个挂载目标。通过在一个可用区中创建的挂载目标在另一个可用区中使用文件系统时需要考虑成本。有关更多信息,请参阅 Amazon EFS
此操作需要对文件系统执行以下操作的权限:
-
elasticfilesystem:CreateMountTarget
此操作还需要以下 Amazon EC2 操作的权限:
-
ec2:DescribeSubnets
-
ec2:DescribeNetworkInterfaces
-
ec2:CreateNetworkInterface
请求语法
POST /2015-02-01/mount-targets HTTP/1.1
Content-type: application/json
{
"FileSystemId": "string
",
"IpAddress": "string
",
"SecurityGroups": [ "string
" ],
"SubnetId": "string
"
}
URI 请求参数
该请求不使用任何 URI 参数。
请求正文
请求接受采用 JSON 格式的以下数据。
- FileSystemId
-
要为其创建挂载目标的文件系统的 ID。
类型: 字符串
长度约束:长度上限为 128。
模式:
^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$
:必需 是
- IpAddress
-
指定子网的地址范围内的有效 IPv4 地址。
类型: 字符串
长度约束:最小长度为 7。长度上限为 15。
模式:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
:必需 否
- SecurityGroups
-
最多 5 个
sg-xxxxxxxx
形式的 VPC 安全组 ID。它们必须用于与指定子网相同的 VPC。类型: 字符串数组
数组成员:最多 100 项。
长度约束:最小长度为 11。长度上限为 43。
模式:
^sg-[0-9a-f]{8,40}
:必需 否
- SubnetId
-
要在其中添加挂载目标的子网的 ID。对于使用单区存储类的文件系统,请使用与文件系统的可用区关联的子网。
类型: 字符串
长度约束:最小长度为 15。长度上限为 47。
模式:
^subnet-[0-9a-f]{8,40}$
:必需 是
响应语法
HTTP/1.1 200
Content-type: application/json
{
"AvailabilityZoneId": "string",
"AvailabilityZoneName": "string",
"FileSystemId": "string",
"IpAddress": "string",
"LifeCycleState": "string",
"MountTargetId": "string",
"NetworkInterfaceId": "string",
"OwnerId": "string",
"SubnetId": "string",
"VpcId": "string"
}
响应元素
如果此操作成功,则该服务将会发送回 HTTP 200 响应。
服务以 JSON 格式返回的以下数据。
- AvailabilityZoneId
-
装载目标所在的可用区的唯一且一致的标识符。例如,
use1-az1
是 us-east-1 区域的可用区 ID,它在每个区域中的位置均相同Amazon Web Services 账户.类型: 字符串
- AvailabilityZoneName
-
挂载目标所在的可用区的名称。可用区域独立映射到每个可用区域的名称Amazon Web Services 账户. 例如,可用区
us-east-1a
为了你的Amazon Web Services 账户可能不是同一个位置us-east-1a
对于另一个Amazon Web Services 账户.类型: 字符串
长度约束:最小长度为 1。最大长度为 64。
模式:
.+
- FileSystemId
-
挂载目标的文件系统的 ID。
类型: 字符串
长度约束:长度上限为 128。
模式:
^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$
- IpAddress
-
通过使用挂载目标挂载文件系统的地址。
类型: 字符串
长度约束:最小长度为 7。长度上限为 15。
模式:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
- LifeCycleState
-
挂载目标的生命周期状态。
类型: 字符串
有效值:
creating | available | updating | deleting | deleted | error
- MountTargetId
-
系统分配的装载目标 ID。
类型: 字符串
长度约束:最小长度为 13。长度上限为 45。
模式:
^fsmt-[0-9a-f]{8,40}$
- NetworkInterfaceId
-
Amazon EFS 在创建挂载目标时创建的网络接口的 ID。
类型: 字符串
- OwnerId
-
Amazon Web Services 账户拥有资源的 ID。
类型: 字符串
长度约束:长度上限为 14。
模式:
^(\d{12})|(\d{4}-\d{4}-\d{4})$
- SubnetId
-
挂载目标子网的 ID。
类型: 字符串
长度约束:最小长度为 15。长度上限为 47。
模式:
^subnet-[0-9a-f]{8,40}$
- VpcId
-
配置挂载目标的 Virtual Private Cloud (VPC) ID。
类型: 字符串
错误
- AvailabilityZonesMismatch
-
如果为装载目标指定的可用区与为一个区域存储指定的可用区不同,则返回此选项。有关更多信息,请参阅 。区域和单区存储冗余.
HTTP 状态代码:400
- BadRequest
-
如果请求格式不正确或包含错误,例如无效的参数值或缺少必需参数,则返回。
HTTP 状态代码:400
- FileSystemNotFound
-
如果指定的,则返回
FileSystemId
请求者中不存在值Amazon Web Services 账户.HTTP 状态代码:404
- IncorrectFileSystemLifeCycleState
-
如果文件系统的生命周期状态不是 “可用”,则返回。
HTTP 状态代码:409
- InternalServerError
-
如果服务器端发生错误,则返回。
HTTP 状态代码:500
- IpAddressInUse
-
如果请求指定了
IpAddress
子网中已在使用中。HTTP 状态代码:409
- MountTargetConflict
-
如果装载目标违反基于文件系统的现有装载目标的指定限制之一,则返回此选项。
HTTP 状态代码:409
- NetworkInterfaceLimitExceeded
-
调用账户已达到特定弹性网络接口的限制Amazon Web Services 区域. 要么删除一些网络接口,要么请求提高账户配额。有关更多信息,请参阅 。Amazon VPC 配额中的Amazon VPC User Guide(请参阅每个区域的网络接口数在网络接口表)。
HTTP 状态代码:409
- NoFreeAddressesInSubnet
-
如果返回
IpAddress
未在请求中指定,且子网中没有空闲 IP 地址。HTTP 状态代码:409
- SecurityGroupLimitExceeded
-
如果大小为
SecurityGroups
请求中指定的大于五个。HTTP 状态代码:400
- SecurityGroupNotFound
-
如果子网的虚拟私有云 (VPC) 中不存在其中一个指定的安全组,则返回。
HTTP 状态代码:400
- SubnetNotFound
-
如果没有带 ID 的子网,则返回
SubnetId
请求中提供了。HTTP 状态代码:400
- UnsupportedAvailabilityZone
-
如果指定的可用区中未提供请求的 Amazon EFS 功能,则返回。
HTTP 状态代码:400
示例
将挂载目标添加到文件系统
以下请求为文件系统创建挂载目标。请求仅为必需的指定值FileSystemId
和SubnetId
参数。该请求不提供可选的IpAddress
和SecurityGroups
参数。适用于IpAddress
,该操作将使用指定子网中的一个可用 IP 地址。此外,操作将使用与 VPC 关联的默认安全组作为SecurityGroups
.
示例请求
POST /2015-02-01/mount-targets HTTP/1.1
Host: elasticfilesystem.us-west-2.amazonaws.com
x-amz-date: 20140620T221118Z
Authorization: <...>
Content-Type: application/json
Content-Length: 160
{"SubnetId": "subnet-748c5d03", "FileSystemId": "fs-01234567"}
示例响应
HTTP/1.1 200 OK
x-amzn-RequestId: 01234567-89ab-cdef-0123-456789abcdef
Content-Type: application/json
Content-Length: 252
{
"MountTargetId": "fsmt-55a4413c",
"NetworkInterfaceId": "eni-01234567",
"FileSystemId": "fs-01234567",
"LifeCycleState": "available",
"SubnetId": "subnet-01234567",
"OwnerId": "231243201240",
"IpAddress": "172.31.22.183"
}
将挂载目标添加到文件系统
以下请求指定了创建装载目标的所有请求参数。
示例请求
POST /2015-02-01/mount-targets HTTP/1.1
Host: elasticfilesystem.us-west-2.amazonaws.com
x-amz-date: 20140620T221118Z
Authorization: <...>
Content-Type: application/json
Content-Length: 160
{
"FileSystemId":"fs-01234567",
"SubnetId":"subnet-01234567",
"IpAddress":"10.0.2.42",
"SecurityGroups":[
"sg-01234567"
]
}
示例响应
HTTP/1.1 200 OK
x-amzn-RequestId: 01234567-89ab-cdef-0123-456789abcdef
Content-Type: application/json
Content-Length: 252
{
"OwnerId":"251839141158",
"MountTargetId":"fsmt-9a13661e",
"FileSystemId":"fs-01234567",
"SubnetId":"subnet-fd04ff94",
"LifeCycleState":"available",
"IpAddress":"10.0.2.42",
"NetworkInterfaceId":"eni-1bcb7772"
}
另请参阅
有关在特定语言的Amazon软件开发工具包中使用此 API 的更多信息,请参阅以下内容: