云服务器内容精选

  • FunctionGraph的容器镜像函数解析DNS内网 域名 已获取内网域名和域名ID。 以添加解析记录的域名为例,获取方法如下: 登录云解析服务控制台。 获取域名ID。 单击“”,在搜索框中勾选“域名”,获取域名ID。 获取对应解析记录的域名。 单击域名进入记录集列表,选择指定记录集。 编写解析逻辑。 使用 API Explorer ,调试查询单个Zone下Record Set列表接口。 参数zone_id即上述步骤中获取的“域名ID”,单击“调试”,响应体中即可获取内网域名对应的IP。 图6 获取内网域名对应的IP 切换到代码示例可以获取完整的代码,如需查看相关依赖请参见SDK信息。 图7 获取相关代码
  • FunctionGraph的事件函数解析DNS内网域名 您需要提前创建VPC和DNS内网域名,再按照如下步骤操作。 内网域名关联VPC并添加记录集 登录云解析服务控制台,将内网域名关联VPC。 图1 关联VPC 点击进入域名并添加记录集,类型选择A。 图2 添加记录集 创建函数 创建一个运行时语言为Python 2.7版本的函数,代码示例如下: # -*- coding:utf-8 -*- import json import os def handler(event, context): os.system("curl -iv www.test.com") 为函数配置DNS与VPC委托 登录 统一身份认证 服务( IAM )控制台,为 函数工作流 服务配置“DNS ReadOnlyAccess”以及“VPC Administrator”权限的委托。详细操作步骤可参考配置函数委托。 图3 创建DNS与VPC委托 在进行解析域名时,函数需要查看云解析服务资源,所以必须要配置DNS资源数据读取权限,否则在执行函数时,会提示如下错误,获取不成功。 2020/08/20 10:37:12 GMT+08:00 Start invoke request 'a2f105b4-2e72-4fda-94a5-86d3837e961d', version: latest [GET /v2/zones/{zone_id}/recordsets] failed, response: {"code":"DNS.1802","message":"Policy doesn't allow dns:recordset:list to be performed."} 2020/08/20 10:37:13 GMT+08:00 Finish invoke request 'a2f105b4-2e72-4fda-94a5-86d3837e961d', duration: 1030.072ms, billing duration: 1100ms, memory used: 77.039MB. 配置函数 进入2创建的函数详情页面,在“设置”页签下,执行以下配置。 “权限”选择3创建的委托。 打开VPC访问开关,配置上述操作中创建的VPC、子网、域名,详情参考图4。 图4 配置函数 验证结果 保存后执行函数时,就能在代码中解析该域名中配置的所有IPV4类型的域名。 图5 执行函数 配置完成VPC域名解析后,在DNS云解析服务中修改域名对应的IP,将在10min后生效。
  • 获取上传的文件 以Python语言为例,如果用户用os.getcwd()查看当前目录的话,会发现当前目录是/opt/function,但实际代码是传到/opt/function/code里的。 有2种方法可以获取到上传的文件: 函数里使用cd命令切换路径到/opt/function/code 使用全路径(相关目录为RUNTIME_CODE_ROOT环境变量对应的值) 其他语言同理,可参考如上方法获取上传的文件。
  • 函数工作目录权限说明 函数可以读取代码目录下的文件,函数工作目录在入口文件的上一级,例如用户上传了文件夹backend,需要读取与入口文件同级目录的文件test.conf,可以用相对路径“code/backend/test.conf”,或者使用全路径(相关目录为RUNTIME_CODE_ROOT环境变量对应的值)。如果需要写文件(如创建新文件或者下载文件等),可以在/tmp目录下进行或者使用函数提供的挂载文件系统功能。 若容器回收,文件的读写就会失效。 函数目前不支持持久化。