调用CreateDataFlow创建一个CPFS文件系统与源端存储的数据流动。

接口说明

  • 计费
    • 创建数据流动将按照数据流动带宽计费。更多信息,请参见CPFS计费说明
    • 使用自动更新(AutoRefresh)时,需要通过EventBridge收集源端OSS存储的对象修改事件,事件将产生费用。更多信息,请参见OSS事件费用说明
  • 数据流动规格
    • 数据流动带宽(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会获取AliyunServiceRoleForNasOssDataflowAliyunServiceRoleForNasEventNotification两个服务关联角色。更多信息,请参见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

源端存储的访问路径。格式:<storage type>://<path>

其中:

  • storage type:目前只支持OSS。
  • path:OSS的Bucket名称。限制如下。
    • 仅支持小写字母、数字和短划线(-)且必须以小写字母或者数字开头和结尾。
    • 长度为8~128个英文字符。
    • 使用UTF-8编码。
    • 不能以http://https://开头。
说明 OSS Bucket必须为在该地域已存在的Bucket。
SourceSecurityType String SSL

源端存储的安全保护类型,如果源端存储必须通过安全保护访问,请指定源端存储的安全保护类型。取值:

  • 无(默认值):表示源端存储不需要通过安全保护方式访问。
  • SSL:通过SSL证书保护访问。
Throughput Long 600

数据流动的传输带宽上限,单位:MB/s 。取值:

  • 600
  • 1200
  • 1500
说明 数据流动的传输带宽必须小于文件系统的IO带宽。
Description String Bucket01 DataFlow

数据流动的描述。

限制:

  • 长度为2~128个英文或中文字符。
  • 必须以大小写字母或中文开头,不能以http://https://开头。
  • 可以包含数字、半角冒号(:)、下划线(_)或者短划线(-)。
AutoRefreshs.N.RefreshPath String /prefix1/prefix2/

自动更新目录,CPFS注册源端存储的数据修改事件,检查该目录下的源端数据是否发生更新并自动导入更新的数据。

默认为空,源端存储的任何数据更新不会自动导入 CPFS,需要通过手动任务导入更新。

限制:

  • 长度为2~1024个字符。
  • 使用UTF-8编码。
  • 必须以正斜线(/)开头和结尾。
  • 该目录必须是CPFS上的已有目录,且必须位于该数据流动的Fileset目录中。
AutoRefreshPolicy String None

自动更新策略,源端数据更新以后,数据更新导入到CPFS的策略。

  • None(默认值):源端的数据更新不自动导入CPFS,用户可通过数据流动任务导入源端的数据更新。
  • ImportChanged:源端的数据更新自动导入CPFS。
AutoRefreshInterval Long 10

自动更新间隔时间,每隔该时间间隔,CPFS检查目录内是否存在数据更新,如果有数据更新,启动自动更新任务,单位:分钟。

取值范围:5~525600,默认值:10。

DryRun Boolean false

是否对此次创建请求执行预检。

预检操作会帮助您检查参数有效性、校验库存等,并不会实际创建实例,也不会产生费用。

取值:

  • true:发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制和NAS库存。如果检查不通过,则返回对应错误。如果检查通过,则返回200 HttpCode,但FileSystemId为空。
  • 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不存在。

访问错误中心查看更多错误码。