调用CreateDataFlow创建一个CPFS文件系统与源端存储的数据流动。
接口说明
- 计费
- 数据流动规格
- 数据流动带宽(Throughput)支持600 MB/s、1200 MB/s和1500 MB/s三种规格。数据流动带宽是指该数据流动进行导入或导出数据时能达到的最大传输带宽。
- 创建一个数据流动,会消耗1个CPFS挂载点使用的vSwitch IP地址,请您确保该vSwitch IP资源充足。
- 库存查询:当设置DryRun为true时,可校验创建该规格的数据流动的资源是否满足。
- Fileset
- 数据流动的目的端是CPFS文件系统中的Fileset。Fileset是CPFS文件系统中一种新的目录树结构,是在父文件系统中的一个小型文件系统,拥有独立的inode空间和管理能力。
- 创建数据流动时该Fileset必须已存在,且不能与其他Fileset嵌套。一个Fileset上只能创建一个数据流动,对应一个源端存储。
- Fileset内的文件数量上限是100万,如果从OSS Bucket导入的文件数量超过上限,创建新文件会报错
no space
。说明 如果Fileset中已存在数据,创建数据流动后,Fileset内的已有数据会被清空,替换为OSS端同步过来的数据。
- 源端存储
- 源端存储仅支持OSS。数据流动的源端存储(SourceStorage)必须是OSS Bucket,暂时不支持OSS Bucket下的prefix。
- CPFS数据流动支持加密和非加密两种方式访问OSS。选择加密(SSL)方式访问OSS时,需确认OSS Bucket的传输加密支持加密访问方式。
- 如果多个CPFS的数据流动、或者同一个CPFS的多个数据流动的源端存储是同一个OSS Bucket,为了防止多个CPFS向同一个源导出数据产生数据冲突,需要该OSS Bucket开启版本控制。
- 不支持跨地域的OSS数据流动,OSS Bucket必须与CPFS文件系统在同一个地域。说明 创建数据流动前,您需要先给源端OSS Bucket设置标签(key: cpfs-dataflow, value: true),以便CPFS数据流动访问该Bucket的数据。在数据流动的使用过程中,不能删除和修改该标签,否则CPFS数据流动无法访问Bucket的数据。
- 自动更新
- 配置自动更新(AutoRefresh)后,当源端存储数据发生变化时,变化的元数据会自动同步到CPFS文件系统,变化的数据会在用户访问文件时按需加载,或者启动数据流动任务加载数据。
- 自动更新依赖EventBridge收集源端OSS存储的对象修改事件。需要先开通EventBridge服务。
- 自动更新的作用范围是prefix,由参数RefreshPath指定。一个数据流动最多可配置5个自动更新目录。
- 自动更新间隔(AutoRefreshInterval)指CPFS每隔该时间间隔,检查源端OSS Bucket该prefix内是否存在数据更新,如果有数据更新则启动自动更新任务。当OSS源端的对象修改事件频率超过CPFS数据流动处理能力时,自动更新任务会堆积,元数据更新会延迟,数据流动的状态为
Misconfigured
,您可以提升数据流动规格,或者降低OSS修改频率来解决。 - 在CPFS数据流动对prefix配置自动更新时,会在用户侧创建事件总线,并创建源端OSS Bucket的prefix的事件规则。当源端OSS Bucket的prefix内发生对象修改后,会在EventBridge中产生OSS事件,由CPFS数据流动处理。说明 CPFS在EventBridge创建的事件总线、事件规则带有
Create for cpfs auto refresh
的描述,事件总线、事件规则都不能修改或删除,否则自动更新无法正常工作。
-
权限
创建数据流动时,CPFS会获取
AliyunServiceRoleForNasOssDataflow
和AliyunServiceRoleForNasEventNotification
两个服务关联角色。更多信息,请参见CPFS服务关联角色。 - 基础操作
- 仅CPFS 2.2.0及以上版本支持数据流动。
- CPFS文件系统状态为运行中,才能创建数据流动。
- 一个CPFS 文件系统最大允许创建10个数据流动。
- 创建数据流动一般耗时2~5分钟,您可通过DescribeDataFlows检查数据流动创建是否完成。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateDataFlow | 接口名称。固定取值:CreateDataFlow。 |
FileSystemId | String | 是 | cpfs-099394bd928c**** | 文件系统ID。 |
FsetId | String | 是 | fset-1902718ea0ae**** | Fileset ID。 |
SourceStorage | String | 是 | oss://bucket-01 | 源端存储的访问路径。格式: 其中:
说明 OSS Bucket必须为在该地域已存在的Bucket。 |
SourceSecurityType | String | 否 | SSL | 源端存储的安全保护类型,如果源端存储必须通过安全保护访问,请指定源端存储的安全保护类型。取值:
|
Throughput | Long | 是 | 600 | 数据流动的传输带宽上限,单位:MB/s 。取值:
说明 数据流动的传输带宽必须小于文件系统的IO带宽。 |
Description | String | 否 | Bucket01 DataFlow | 数据流动的描述。 限制:
|
AutoRefreshs.N.RefreshPath | String | 否 | /prefix1/prefix2/ | 自动更新目录,CPFS注册源端存储的数据修改事件,检查该目录下的源端数据是否发生更新并自动导入更新的数据。 默认为空,源端存储的任何数据更新不会自动导入 CPFS,需要通过手动任务导入更新。 限制:
|
AutoRefreshPolicy | String | 否 | None | 自动更新策略,源端数据更新以后,数据更新导入到CPFS的策略。
|
AutoRefreshInterval | Long | 否 | 10 | 自动更新间隔时间,每隔该时间间隔,CPFS检查目录内是否存在数据更新,如果有数据更新,启动自动更新任务,单位:分钟。 取值范围:5~525600,默认值:10。 |
DryRun | Boolean | 否 | false | 是否对此次创建请求执行预检。 预检操作会帮助您检查参数有效性、校验库存等,并不会实际创建实例,也不会产生费用。 取值:
|
ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** | 保证请求幂等性,从您的客户端生成一个参数值,确保不同请求间该参数值唯一。 ClientToken只支持ASCII字符,且不能超过64个字符。更多信息,请参见如何保证幂等性。 说明 若用户未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。 |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0D****3E | 请求ID。 |
DataFlowId | String | dfid-194433a5be31**** | 数据流动ID。 |
示例
请求示例
http(s)://[Endpoint]/?Action=CreateDataFlow
&FileSystemId=cpfs-099394bd928c****
&FsetId=fset-1902718ea0ae****
&SourceStorage=oss://bucket1
&SourceSecurityType=SSL
&Throughput=600
&Description=Bucket01 DataFlow
&AutoRefreshs=[{"RefreshPath":"/prefix1/prefix2/"}]
&AutoRefreshPolicy=None
&AutoRefreshInterval=10
&DryRun=false
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&公共请求参数
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateDataFlowResponse>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0D****3E</RequestId>
<DataFlowId>dfid-194433a5be31****</DataFlowId>
</CreateDataFlowResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0D****3E",
"DataFlowId" : "dfid-194433a5be31****"
}
错误码
HttpCode | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | IllegalCharacters | The parameter contains illegal characters. | 参数非法。 |
400 | MissingFsetId | FsetId is mandatory for this action. | 未指定Fileset ID参数。 |
400 | MissingSourceStorage | SourceStorage is mandatory for this action. | 未指定SourceStorage参数。 |
400 | MissingThroughput | Throughput is mandatory for this action. | 未指定Throughput参数。 |
400 | MissingFileSystemId | FileSystemId is mandatory for this action. | 未指定FileSystemId参数。 |
403 | OperationDenied.DependencyViolation | The operation is denied due to dependancy violation. | 进行该操作的条件不满足。 |
403 | OperationDenied.NoStock | The operation is denied due to no stock. | 文件系统无库存。 |
403 | OperationDenied.DependFset | The operation is denied due to invalid fileset state. | 由于fileset状态异常创建数据流动失败。 |
403 | OperationDenied.ConflictOperation | The operation is denied due to a conflict with an ongoing operation. | 与当前的文件系统操作冲突导致无法创建数据流动。 |
403 | OperationDenied.DependMountpoint | The operation is denied because no mount point is found. | 由于文件系统没有挂载点导致创建数据流动失败。 |
403 | OperationDenied.FsetAlreadyInUse | The Fset is already bound to another data flow. | Fset已经被使用。 |
403 | OperationDenied.AutoRefreshNotSupport | The operation is denied. Auto refresh is not supported. | 该文件系统不支持自动更新。 |
403 | OperationDenied.DependBucketTag | The operation is denied. The OSS Bucket tag cpfs-dataflow is missing. | 由于OSS Bucket未打上cpfs-dataflow标签,创建数据流动失败。 |
403 | OperationDenied.DataFlowNotSupported | The operation is not supported. | 该文件系统不支持数据流动。 |
404 | InvalidFileSystem.NotFound | The specified file system does not exist. | 指定的文件系统不存在。 |
404 | InvalidThroughput.OutOfBounds | Throughput is out of bounds. | 指定的Throughput不在合法范围中。 |
404 | InvalidDescription.InvalidFormat | Description format is invalid. | 指定的描述格式非法。 |
404 | InvalidRefreshPath.InvalidParameter | Refresh path is invalid. | 指定的自动更新目录的路径非法。 |
404 | InvalidRefreshPath.Duplicated | Refresh path is duplicated. | 指定的自动更新目录的路径重复。 |
404 | InvalidRefreshPath.NotFound | Refresh path does not exist. | 指定的自动更新目录不存在。 |
404 | InvalidRefreshPolicy.InvalidParameter | Refresh policy is invalid. | 自动更新策略非法。 |
404 | InvalidRefreshInterval.OutOfBounds | Refresh interval is out of bounds. | 指定的RefreshInterval不在合法范围中。 |
404 | InvalidSourceStorage.Unreachable | Source storage cannot be accessed. | 源端存储无法访问。 |
404 | InvalidSourceStorage.NotFound | Source storage is not found. | 指定的源端存储不存在。 |
404 | InvalidSourceStorage.NotSupport | Source storage type is not supported. | 指定的源端存储的类型不支持。 |
404 | InvalidSourceStorage.PermissionDenied | The source storage access permission is denied. | 无源端存储访问权限,请检查SLR授权、源存储的访问tag。 |
404 | InvalidSourceStorage.InvalidRegion | Source storage region is invalid. | 源端存储的区域异常,请检查源端存与CPFS是否在同一个region。 |
404 | InvalidSourceStorage.InvalidParameter | Source storage has invalid parameters. | 指定的源端存储路径非法。 |
404 | InvalidSourceSecurityType.NotSupport | The source security type is not supported. | 指定的源端存储的安全保护类型不支持。 |
404 | InvalidAutoRefresh.TooManyAutoRefreshes | The number of auto refreshes exceeds the limit. | 指定的自动更新配置数量超过限制。 |
404 | InvalidSourceStorage.NeedVersioning | Source storage must enable versioning. | 源端存储需要打开多版本功能。 |
404 | InvalidFsetId.NotFound | The specified Fileset ID does not exist. | 指定的Fileset不存在。 |
访问错误中心查看更多错误码。