OpenAPI集成示例(SDK)

更新时间:

阿里云SDK是调用OpenAPI的常见方式。本文以Python语言为例,为您介绍如何使用阿里云OpenAPI查询CPFS智算版文件系统的数据流动信息。

查看 OpenAPI 文档

在调用OpenAPI前,建议您阅读对应接口文档,了解、学习调用该接口所需要的参数及权限等,更多详情请参见API概览

用户身份管理

身份

您可以使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异请参见身份、凭证、授权。本案例中,我们使用RAM用户进行接口调用,更多详情请参见创建RAM用户

授权

  1. 访问RAM用户列表,单击目标RAM用户操作列的添加权限

  2. 在文本框中输入关键字AliyunNAS进行搜索,选择AliyunNASReadOnlyAccess策略。

    说明
    • AliyunNASFullAccess:管理文件存储CPFS的权限。

    • AliyunNASReadOnlyAccess:只读访问文件存储CPFS的权限。

    如果想新建自定权限,请参见授权信息

  3. 单击确定,完成授权操作。

凭证

进入到对应的RAM用户详情页,在认证管理页签,点击创建 AccessKey,详细步骤请参见创建AccessKey

调用 OpenAPI

本文以阿里云Python语言SDK方式调用OpenAPI为例,其他语言SDK的用法也类似,更多信息请参见文件存储(NAS/CPFS)SDK

准备 Python 环境

下载并安装Python 3

查看Python版本方法:打开终端,输入python --version

配置环境变量

为避免将AccessKey硬编码到业务代码中带来的安全风险,建议您采用配置环境变量的方法管理AccessKey。本文以设置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET为例。变量名称可以根据实际情况进行替换,例如CPFS_ACCESS_KEY_IDCPFS_ACCESS_KEY_SECRET

重要

环境变量配置完成之后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。

Linux和macOS系统

通过export命令配置环境变量

重要

使用export命令配置的临时环境变量仅当前会话有效,当会话退出之后所设置的环境变量将会丢失。若需长期保留环境变量,可将export命令配置到对应操作系统的启动配置文件中。

  • 配置AccessKey ID并按回车。

    # 将<ACCESS_KEY_ID>替换为您自己的AccessKey ID。
    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
  • 配置AccessKey Secret并回车。

    # 将<ACCESS_KEY_SECRET>替换为您自己的AccessKey Secret。
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
  • 验证是否配置成功。

    执行echo $ALIBABA_CLOUD_ACCESS_KEY_ID命令,如果返回正确的AccessKey ID,则说明配置成功。

Windows系统

通过图形用户界面GUI

  • 操作步骤

    以下为Windows 10中通过图形用户界面设置环境变量的步骤。

    在桌面右键单击此电脑,选择属性>高级系统设置>环境变量>系统变量/用户变量>新建,完成以下配置:

    变量

    示例值

    AccessKey ID

    • 变量名:ALIBABA_CLOUD_ACCESS_KEY_ID

    • 变量值:LTAI4GDty8ab9W4Y1D****

    AccessKey Secret

    • 变量名:ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • 变量值:IrVTNZNy5yQelTETg0cZML3TQn****

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%命令。若返回正确的AccessKey,则说明配置成功。

通过命令行提示符CMD

  • 操作步骤

    以管理员身份打开命令提示符,并使用以下命令在系统中新增环境变量。

    setx ALIBABA_CLOUD_ACCESS_KEY_ID LTAI4GDty8ab9W4Y1D**** /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET IrVTNZNy5yQelTETg0cZML3TQn**** /M

    其中/M表示系统级环境变量,设置用户级环境变量时可以不携带该参数。

  • 测试设置是否成功

    单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行echo %ALIBABA_CLOUD_ACCESS_KEY_ID%echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%命令。若返回正确的AccessKey,则说明配置成功。

通过Windows PowerShell

在PowerShell中,设置新的环境变量(对所有新会话都有效):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)

为所有用户设置环境变量(需要管理员权限):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)

设置临时的环境变量(仅当前会话有效):

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI4GDty8ab9W4Y1D****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "IrVTNZNy5yQelTETg0cZML3TQn****"

在PowerShell中,执行Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_IDGet-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET命令。若返回正确的AccessKey,则说明配置成功。

安装依赖

在终端设备中,逐条运行如下命令,安装环境依赖。

pip install alibabacloud_nas20170626==2.0.3
pip3 install alibabacloud_tea_console

下载示例代码

以下操作以调用DescribeDataFlows接口为例,您可以在OpenAPI门户选择需要调用的接口。

  1. 访问DescribeDataFlows,进入该接口在OpenAPI门户的调试地址。

  2. 在左侧的参数配置页签,填写需要的参数信息,本示例服务地址选择华北6(乌兰察布)

  3. 在右侧的SDK示例页签,选择Python语言,单击下载完整工程按钮,下载示例代码包。

  4. 本地解压并进入alibabacloud_sample目录。

运行代码

执行以下命令

python sample.py

得到如下输出结果:

{
     "RequestId": "9899B4E0-CEA0-1937-936D-69023F859C8C",
     "NextToken": "",
     "DataFlowInfo": {
          "DataFlow": [
               {
                    "Status": "Running",
                    "FileSystemPath": "/stream_test/",
                    "SourceStorage": "oss://cpfs-data****-wulan-test",
                    "SourceStoragePath": "/stream_test/",
                    "CreateTime": "2024-07-03T13:43:08Z",
                    "UpdateTime": "2024-07-03T13:43:09Z",
                    "FileSystemId": "bmcpfs-370l0qotjv0lbwe****",
                    "DataFlowId": "df-374f9fad8c1b****"
               }
          ]
     }
}