对象存储(CT-ZOS,Zettabyte Object Storage)是天翼云为客户提供的一种海量、弹性、高可靠、高性价比的存储产品,是专门针对云计算、大数据和非结构化数据的海量存储形态,通过S3协议和标准的服务接口,提供非结构化数据(图片、音视频、文本等格式文件)的无限存储服务。您可以通过为函数计算配置ZOS挂载,让函数使用ZOS可以实现类似本地文件系统的操作体验,从而简化资源访问和数据处理流程。
使用限制
- 函数计算在同一地域下的一个函数最多支持配置5个ZOS挂载点和5个NAS挂载点。
- NAS挂载点和ZOS挂载点设置的函数运行环境中的本地目录不能冲突。
前提条件
- 对象存储 (CT-ZOS,Zettabyte Object Storage)
- 开通ZOS服务
- 控制台创建存储空间
- 函数计算
- 创建函数
- 鉴权
- 启用ZOS挂载功能时,需要传递对象存储的 AK/SK。
操作步骤
步骤一:配置ZOS挂载
- 登录函数计算控制台,在左侧导航栏,单击函数。
- 在顶部菜单栏,选择地域,然后在函数页面,单击目标函数。
- 在函数详情页面,选择配置页签,然后在左侧导航栏选择存储页签,在 ZOS 对象存储 区域单击编辑,在编辑面板中配置以下参数,然后单击部署。
配置项 | 说明 | 示例 |
---|---|---|
挂载 ZOS 对象存储 | 点击字段下发按钮,将展示配置内容,表示开启 ZOS 配置。 | 开启 |
AK | ZOS 服务的 Access Key,可通过 ZOS 控制台查看。 | |
SK | ZOS 服务的 Secret Key,可通过 ZOS 控制台查看。 | |
ZOS挂载点:填写配置ZOS挂载点的相关信息。 | ||
Bucket | 选择已创建的 ZOS Bucket。 | ctZOS-bucket |
Bucket 子目录 | 设置Bucket中的子目录,必须为绝对路径。留空或设置为/表示挂载Bucket的根目录。 | /files |
ZOS 访问地址 | 选择Bucket后,默认选择该Bucket对应的访问地址。目前仅支持配置默认地址,即与函数计算的函数相同地域的Bucket的 ZOS内网Endpoint。 | 默认地址 |
函数本地目录 | 设置函数运行环境中的本地目录,必须为/home、/mnt或/data的子目录。说明设置的函数本地目录不需要您手动创建,直接使用就可以。 | /mnt/ZOS |
函数本地目录权限 | 选择Bucket挂载到函数运行环境中的本地目录后,该目录的访问权限。支持设置为只读或读写权限。 | 读写 |
步骤二:访问ZOS挂载的目录文件
完成ZOS挂载配置后,您可以通过以下步骤访问ZOS挂载的目录下的文件内容,即可以用访问本地文件的方式访问ZOS挂载目录下的文件。
- 在函数详情页面,单击代码页签,在代码编辑器中编写代码,然后单击部署代码。
本文以Python函数代码为例,示例代码如下。
import os
def handler(event, context):
# 挂载目录
mount_path = '/mnt/ZOS'
# 列出挂载目录中的文件
files = os.listdir(mount_path)
print("Files in ZOS mount:", files)
# 读取挂载目录中的某个文件
file_path = os.path.join(mount_path, 'ctZOS.txt')
if os.path.exists(file_path):
with open(file_path, 'r') as file:
content = file.read()
print("Content of ctZOS.txt:", content)
else:
print("ctZOS.txt does not exist.")
# 向挂载目录中写入文件
write_path = os.path.join(mount_path, 'output.txt')
with open(write_path, 'w') as file:
file.write("Hello, ZOS mount!")
print("Wrote to output.txt in ZOS mount.")
return "Finish ZOS Mount"
说明
在上述代码中 ctZOS.txt
需要修改为您挂载的ZOS目录下实际存在的文件名称。
- 代码部署成功后,单击代码页签的测试函数。
执行完成后,您可以在代码页签的下方查看执行结果。在日志输出页签下可以看到读取的ZOS目录下 ctZOS.txt
文件的内容,同时在ZOS控制台对应的挂载目录下可以看到写入的 output.txt
文件内容。