本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立文件系統的掛載目標。您接著可以使用掛載目標,在 EC2 執行個體上掛載檔案系統。
您可以在 VPC 中的每個可用區域內建立一個掛載目標。指定可用區域內 VPC 中的所有 EC2 執行個體都會針對指定的檔案系統共享單一掛載目標。若您在可用區域中有多個子網路,您會在其中一個子網路內建立掛載目標。EC2 執行個體不需要位於和掛載目標相同的子網路中,也能存取其檔案系統。
您只能為單區域檔案系統建立一個掛載目標。您必須在檔案系統所在的同一可用區域中掛載目標。請在 DescribeFileSystems 回應物件中使用 AvailabilityZoneName
和 AvailabiltyZoneId
屬性來取得此資訊。建立掛載目標時,請使用與檔案系統的可用區域相關聯的 subnetId
。
如需詳細資訊,請參閱 Amazon EFS:運作方式。
若要建立檔案系統的掛載目標,檔案系統的生命週期狀態必須是 available
。如需詳細資訊,請參閱DescribeFileSystems。
請在請求中提供下列資訊:
-
正在建立掛載目標的檔案系統 ID。
-
子網路 ID 決定了下列内容:
-
VPC (Amazon EFS 在其中建立掛載目標)
-
可用區域 (Amazon EFS 在其中建立掛載目標)
-
IP 地址隨 Amazon EFS 選取掛載目標的 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
-
VPC 安全群組 IDs,格式為
sg-xxxxxxxx
。這些必須適用於與指定的子網路相同的 VPC。安全群組的數量上限取決於帳戶配額。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 Amazon VPC Quotas (請參閱安全群組資料表)。類型:字串陣列
陣列成員:最多 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 區域的 AZ ID,且每個區域都有相同的位置 AWS 帳戶。類型:字串
- AvailabilityZoneName
-
掛載目標所在可用區域名稱。可用區域會獨立對應至每個區域的名稱 AWS 帳戶。例如,
us-east-1a
的可用區域 AWS 帳戶 可能與其他 的可用區域不同us-east-1a
AWS 帳戶。類型:字串
長度限制:長度下限為 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
-
AWS 帳戶 擁有資源的 ID。
類型:字串
長度限制:長度上限為 14。
模式:
^(\d{12})|(\d{4}-\d{4}-\d{4})$
- SubnetId
-
掛載目標子網路的 ID。
類型:字串
長度限制:長度下限為 15。長度上限為 47。
模式:
^subnet-[0-9a-f]{8,40}$
- VpcId
-
掛載目標所在的虛擬私有雲端 (VPC)。
類型:字串
錯誤
- AvailabilityZonesMismatch
-
如果為掛載目標指定的可用區域與為單區域儲存指定的可用區域不同,則傳回。如需詳細資訊,請參閱區域和單區域儲存冗餘。
HTTP 狀態碼:400
- BadRequest
-
如果請求格式錯誤或包含錯誤,例如無效的參數值或缺少必要參數,則傳回。
HTTP 狀態碼:400
- FileSystemNotFound
-
如果指定的
FileSystemId
值不存在於請求者的 中,則傳回 AWS 帳戶。HTTP 狀態碼:404
- IncorrectFileSystemLifeCycleState
-
如果檔案系統的生命週期狀態不是「可用」,則傳回。
HTTP 狀態碼:409
- InternalServerError
-
如果伺服器端發生錯誤,則傳回。
HTTP 狀態碼:500
- IpAddressInUse
-
如果請求指定了已在子網路中使用的請求
IpAddress
,則傳回。HTTP 狀態碼:409
- MountTargetConflict
-
如果掛載目標違反以檔案系統現有的掛載目標為基礎的其中一個指定限制,則傳回。
HTTP 狀態碼:409
- NetworkInterfaceLimitExceeded
-
呼叫帳戶已達到指定 AWS 區域區域彈性網絡介面的限制。刪除某些網路介面,或請求提高帳戶配額。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 Amazon VPC 配額 (請參閱網路介面資料表中的每個區域的網路介面項目)。
HTTP 狀態碼:409
- NoFreeAddressesInSubnet
-
如果在請求中未指定
IpAddress
且在子網路中沒有可用的 IP 地址,則傳回。HTTP 狀態碼:409
- SecurityGroupLimitExceeded
-
如果請求中
SecurityGroups
指定的 數目大於限制,則根據帳戶配額傳回。刪除一些安全群組或請求提高帳戶配額。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 Amazon VPC Quotas (請參閱安全群組資料表)。HTTP 狀態碼:400
- SecurityGroupNotFound
-
如果子網路的虛擬私有雲端 (VPC) 中沒有其中一個指定的安全群組,則傳回。
HTTP 狀態碼:400
- SubnetNotFound
-
如果在請求中沒有提供 ID
SubnetId
的子網路,則傳回。HTTP 狀態碼:400
- UnsupportedAvailabilityZone
-
如果請求的 Amazon EFS 功能在指定的可用區域中不可用,則傳回。
HTTP 狀態碼:400
範例
將掛載目標新增至檔案系統
下列請求會建立檔案系統的掛載目標。請求僅指定必要 FileSystemId
和 SubnetId
參數的值。請求不提供可選的 IpAddress
和 SecurityGroups
參數。對於 IpAddress
,此操作會使用指定子網路中的其中一個可用 IP 地址。而且,此操作會使用與 SecurityGroups
的 VPC 相關聯的預設安全群組。
請求範例
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"
}
另請參閱
如需在其中一種語言特定 AWS SDKs中使用此 API 的詳細資訊,請參閱下列內容: