华为云用户手册

  • 特殊权限策略 CFW部分功能依赖于弹性云服务器(Elastic Cloud Server, E CS )、虚拟私有云(Virtual Private Cloud, VPC)等云服务,因这些云服务中部分功能不支持企业项目,将“CFW FullAccess” 和“CFW ReadOnlyAccess”两个系统策略授权到企业项目维度后会造成部分权限失效。 所以需要使用华为云账户自行创建两条系统策略,具体创建步骤请参见:创建自定义策略。 CFW依赖的云服务中不支持企业项目的功能需要按照以下内容添加权限,其中 云日志 服务(Log Tank Service,简称LTS)在CFW页面操作时需授权LTS服务全部权限。 1 2 3 4 5 6 7 8 910111213141516171819202122232425 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "vpc:quotas:list", "vpc:publicipTags:get" ] }, { "Effect": "Allow", "Action": [ "ecs:availabilityZones:list" ] }, { "Effect": "Allow", "Action": [ "lts:groups:list", "lts:groups:get", ] } ]} CFW依赖全局服务的权限: 1 2 3 4 5 6 7 8 91011121314151617 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "eps:resources:list" ] }, { "Effect": "Allow", "Action": [ "tms:predefineTags:list" ] } ]}
  • CFW FullAccess策略内容 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637 { "Version": "1.1", "Statement": [ { "Action": [ "cfw:*:*", "vpc:publicIps:list", "vpc:publicipTags:get", "vpc:vpcs:create", "vpc:vpcs:list", "vpc:vpcs:get", "vpc:subnets:get", "vpc:subnets:create", "vpc:routeTables:list", "vpc:routeTables:update", "vpc:quotas:list", "er:instances:list", "er:attachments:list", "er:attachments:create", "er:routeTables:list", "er:routes:list", "er:associations:list", "er:instances:get", "ecs:cloudServers:list", "ecs:availabilityZones:list", "smn:topic:list", "nat:natGateways:list", "lts:groups:list", "lts:topics:get", "dcaas:vgw:list", "eps:resources:list", "tms:predefineTags:list" ], "Effect": "Allow" } ]}
  • CFW ReadOnlyAccess策略内容 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435 { "Version": "1.1", "Statement": [ { "Action": [ "cfw:*:list", "cfw:*:get", "vpc:publicIps:list", "vpc:publicipTags:get", "vpc:vpcs:list", "vpc:vpcs:get", "vpc:subnets:get", "vpc:routeTables:list", "vpc:quotas:list", "er:instances:list", "er:attachments:list", "er:routeTables:list", "er:routeTables:list", "er:routes:list", "er:associations:list", "er:instances:get", "ecs:cloudServers:list", "ecs:availabilityZones:list", "smn:topic:list", "nat:natGateways:list", "lts:groups:list", "lts:topics:get", "dcaas:vgw:list", "eps:resources:list", "tms:predefineTags:list" ], "Effect": "Allow" } ]}
  • Python语言的函数从V1版本迁移到V2版本时需注意哪些兼容性问题? args的区别 V1使用的语法: args = parser.parse_args() 如果迁移到V2,需修改为: args = parser.parse_args(args=[]) 因为V1和V2 python runtime的sys.argv不一样。 V2是['/home/snuser/runtime/python3.6/server.py', '127.0.0.1:31536', '/opt/function/code'],比v1多了后面2个参数。 asyncio的区别 V1使用的语法: loop = asyncio.get_event_loop()loop.run_until_complete(func(arg1, arg2))loop.close() 如果迁移到V2,需修改为: loop_tmp = asyncio.new_event_loop()asyncio.set_event_loop(loop_tmp)loop = asyncio.get_event_loop()loop.run_until_complete(func(arg1, arg2))loop.close() 因为asyncio.get_event_loop()是从OS线程(主线程)获取当前事件循环,而V2的Python runtime不是在主线程运行用户函数,所以函数内asyncio.get_event_loop()会抛出RuntimeError。 V2使用asyncio需要新建并设置事件循环。 父主题: 产品咨询
  • 函数工作目录权限说明 函数可以读取代码目录下的文件,函数工作目录在入口文件的上一级,例如用户上传了文件夹backend,需要读取与入口文件同级目录的文件test.conf,可以用相对路径“code/backend/test.conf”,或者使用全路径(相关目录为RUNTIME_CODE_ROOT环境变量对应的值)。如果需要写文件(如创建新文件或者下载文件等),可以在/tmp目录下进行或者使用函数提供的挂载文件系统功能。 若容器回收,文件的读写就会失效。 函数目前不支持持久化。
  • 获取上传的文件 以Python语言为例,如果用户用os.getcwd()查看当前目录的话,会发现当前目录是/opt/function,但实际代码是传到/opt/function/code里的。 有2种方法可以获取到上传的文件: 函数里使用cd命令切换路径到/opt/function/code 使用全路径(相关目录为RUNTIME_CODE_ROOT环境变量对应的值) 其他语言同理,可参考如上方法获取上传的文件。
  • 自定义镜像 函数执行失败报“CrashLoopBackOff” 若出现“CrashLoopBackOff: The application inside the container keeps crashing”错误字段: 请根据页面提示信息诊断原因。 图1 查看执行结果 请参见使用容器镜像部署函数章节进行容器镜像自验证。 排查镜像是否为x86 linux架构,目前仅支持x86 linux架构镜像。 父主题: 调用函数
  • FunctionGraph如何通过 域名 访问专享版APIG中注册的接口? 以域名www.test.com为例,具体请参考如下步骤。 图1 域名示例 登录API网关控制台,在左侧导航栏选择“专享版”,单击实例名称,进入“实例概览”页面,在“入口地址”区域查看“弹性IP地址”,获取APIG的访问地址(ip格式)。 图2 获取APIG访问地址 在DNS控制台,配置用户域名www.test.com解析到apig地址的ipv4规则,可参考网站解析至IP地址。 图3 配置ipv4规则 最后在函数服务配置该域名的解析配置(可参考FunctionGraph如何实现域名解析?),这样就能在函数中通过域名(www.test.com)访问专享版APIG中注册的接口了。 父主题: 配置函数
  • 解决方案 与客户确认问题现象,Redis1在VPC1中,Redis2在VPC2中,Redis客户端代码是同一套代码。 查看连接报错信息如下,通过VPC2连接Redis2时,Redis IP地址变成乱码。 分析Redis1与Redis2除了IP地址和密码不一样之外,其他没有什么不同,让客户比较两个Redis密码后发现,Redis2的密码中含有@符号,导致请求redis的时候IP地址截取有误变成乱码了。 修改Redis2的密码后正常。
  • 为PHP函数制作依赖包 制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。 为php7.3通过composer安装protobuf3.19依赖包,默认环境中已经安装了composer和对应版本的php。 新建一个composer.json文件,在composer.json中填入以下内容。 { "require": { "google/protobuf": "^3.19" }} 执行如下命令。 Composer install 可以看到当前目录底下生成一个vendor文件夹,文件夹中有autoload.php、composer 和google三个文件夹。 Linux系统 Linux系统下可以使用以下命令生成zip包。 zip –rq vendor.zip vendor windows系统 用压缩软件将vendor目录压缩成zip文件即可。 如果要安装多个依赖包,在composer.json文件中指定需要的依赖,把生成的vendor文件整体打包成zip上传。 php工程代码中使用通过composer下载的第三方依赖时,需要通过require "./vendor/autoload.php" 加载,平台默认把上传的zip包解压后的内容置于项目代码的同级目录下。
  • 搭建EulerOS环境 EulerOS是基于开源技术的企业级Linux操作系统软件,具备高安全性、高可扩展性、高性能等技术特性,能够满足客户IT基础设施和云计算服务等多业务场景需求。此处推荐Huawei Cloud EulerOS。 在华为云购买一台EulerOS的ECS弹性云服务器,请参见购买并登录Linux弹性云服务器。在基础配置环节选择公共镜像时,选择Huawei Cloud EulerOS操作系统和具体的镜像版本。 下载EulerOS镜像,在本地使用虚拟化软件搭建EulerOS系统的虚拟机。
  • 函数如何获取APIG触发器中的请求路径或请求参数? 请求路径或请求参数默认携带在event的入参中,FunctionGraph函数对APIG调用的传入值为函数自带的事件模板。您可以通过打印函数执行结果,获取请求路径或请求参数。 示例: queryStringParameters:GET请求中URL后面要带的参数,当发起一次GET请求时,参数会以url string的形式进行传递。即?后的字符串则为其请求参数,并以&作为分隔符。 path:API访问地址。 您可以直接通过请求路径调用:https://464d86ec641d45a683c5919ac57f3823.apig.projectID.huaweicloudapis.com/apig-demo/subpath 也可以通过添加请求参数调用: https://464d86ec641d45a683c5919ac57f3823.apig.projectID.huaweicloudapis.com/apig-demo/subpath?a=1&b=2 父主题: 配置触发器
  • 为Python函数制作依赖包 打包环境中的Python版本要和对应函数的运行时版本相同,如Python2.7建议使用2.7.12及以上版本,Python3.6建议使用3.6.3以上版本。 为Python 2.7安装PyMySQL依赖包,并指定此依赖包的安装路径为本地的/tmp/pymysql下,可以执行如下命令。 pip install PyMySQL --root /tmp/pymysql 执行成功后,执行以下命令。 cd /tmp/pymysql/ 进入子目录直到site-packages路径下(一般路径为usr/lib64/python2.7/site-packages/),接下来执行以下命令。 zip -rq pymysql.zip * 所生成的包即为最终需要的依赖包。 如果需要安装存放在的本地wheel安装包,直接输入: pip install piexif-1.1.0b0-py2.py3-none-any.whl --root /tmp/piexif //安装包名称以piexif-1.1.0b0-py2.py3-none-any.whl为例,请以实际安装包名称为准
  • 运行函数时报错error while loading shared libraries时如何处理? 出现如图1报错,说明依赖包没有把程序运行所需的动态链接库打包进去。 图1 error while loading shared libraries 针对该问题有以下两种处理方案: 代码逻辑较为复杂的情况下建议使用自定义镜像函数,创建自定义镜像函数详情请参见使用容器镜像创建函数。 制作依赖包时,把动态链接库一同复制到依赖包最外层。 如图2是chrome内核所需的动态链接库。 图2 chrome内核动态链接库 系统默认动态链接库路径:“/lib64:/usr/lib64”。 父主题: 调用函数
  • 为Nodejs函数制作依赖包 需要先保证环境中已经安装了对应版本的Nodejs。 为Nodejs 8.10安装MySQL依赖包,可以执行如下命令。 npm install mysql --save 可以看到当前目录下会生成一个node_modules文件夹。 Linux系统 Linux系统下可以使用以下命令生成zip包。 zip -rq mysql-node8.10.zip node_modules 即可生成最终需要的依赖包。 windows系统 用压缩软件将node_modules目录压缩成zip文件即可。 如果需要安装多个依赖包,也可以先新建一个package.json文件,例如在package.json中填入如下内容后,执行如下命令。 {"name": "test","version": "1.0.0","dependencies": {"redis": "~2.8.0","mysql": "~2.17.1"}} npm install --save 不要使用CNPM命令制作nodejs依赖包。 然后将node_modules打包成zip即可生成一个既包含MySQL也包含redis的依赖包。 Nodejs其他版本制作依赖包过程与上述相同。
  • 为什么首次调用函数时速度会比较慢? 因为函数是冷启动的,所以如果有初始化或者函数中有第一次执行比较耗时的操作(例如加载函数代码及依赖包),第一次请求会比较慢,后面接着的请求就会很快,因为此时容器还没有销毁。如果间隔一分钟没有请求,容器就会销毁。 如果您使用的是C#或者Go语言,因为机制原因,启动速度会比其他语言慢。此时,您可以通过以下设置,增加运行速度。 适当增加函数的内存。 精简函数代码,例如:删除不必要的依赖包。 使用C#语言时,除了以上两种方法,在非并发场景下,您还可以通过以下方法增加运行速度。 创建一个一分钟一次的定时触发器,确保至少有一个存活的实例。 父主题: 调用函数
  • 如何制作基于ODBC驱动的Python语言函数依赖包? 对于依赖操作系统的包(以unixODBC为例),需要下载源码编译制作依赖包: 通过ecs控制台页面登录ecs机器(确保gcc、make工具安装完成),执行如下命令下载相关源码包。 wget 源码路径 若下载包为zip文件,执行如下命令进行解压: unzip xxx/xx.zip 若下载包为tar.gz文件,执行如下命令进行解压: tar -zxvf xxx/xx.tar.gz 执行如下命令,创建/opt/function/code目录。 mkdir /opt/function/code 进入解压目录执行如下命令 ./configure --prefix=/opt/function/code --sysconfdir=/opt/function/code;make;make install 进入/opt/function/code/lib/pkgconfig检查配置,确认prefix目录是/opt/function/code。 cd /opt/function/code/lib/pkgconfig 将/opt/function/code/lib中的文件都拷到/opt/function/code。 cp -r /opt/function/code/lib/* /opt/function/code 切换到/opt/function/code目录下,将/opt/function/code下的文件都打入xxx.zip,依赖包制作完成。 cd /opt/function/code zip -r xxx.zip * 父主题: 配置依赖包
  • FunctionGraph函数支持哪些编程语言? FunctionGraph目前支持的编程语言,如表1所示。 表1 支持的编程语言和版本 语言 支持版本 Python 2.7、3.6、3.9、3.10 Node.js 6.10、8.10、10.16、12.13、14.18、16.17、18.15 Java 8、11、17(当前仅支持华北-乌兰察布二零二) Go 1.x C#.NET Core 2.1、3.1、6.0(当前仅支持华北-乌兰察布二零二) PHP 7.3 父主题: 产品咨询
  • 使用FunctionGraph开发程序之后是否需要部署? 用户在本地开发程序之后打包,必须是ZIP包(Java、Node.js、Python、Go)或者JAR包(Java),上传至FunctionGraph即可运行,无需其它的部署操作。 制作ZIP包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。 对于Go runtime,必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler。 父主题: 产品咨询
  • FunctionGraph的容器镜像函数解析DNS内网域名 当前FunctionGraph容器镜像函数无法直接解析华为云解析服务(DNS)的内网域名,当需要在函数中解析DNS域名,可参考本章节操作,通过调用DNS服务的接口,实现解析功能。 已获取内网域名和域名ID。 以添加解析记录的域名为例,获取方法如下: 登录云解析服务控制台。 获取域名ID。 单击“”,在搜索框中勾选“域名”,获取域名ID。 获取对应解析记录的域名。 单击域名进入记录集列表,选择指定记录集。 编写解析逻辑。 调试查询单个Zone下Record Set列表接口。 参数zone_id即上述步骤中获取的“域名ID”,单击“调试”,响应体中即可获取内网域名对应的IP。 图6 获取内网域名对应的IP 切换到代码示例获取完整的代码,相关依赖请参见SDK信息。 图7 获取相关代码
  • Python语言的函数中,中文注释报乱码错误 使用Python语言在线编辑代码,需要输出中文时,请在编辑器中增加如下代码: # -*- coding:utf-8 -*-import jsondef handler (event, context):output = 'Hello message: ' + json.dumps(event,ensure_ascii=False)return output 父主题: 配置函数
  • FunctionGraph的事件函数解析DNS内网域名 当前FunctionGraph函数无法直接解析华为云解析服务(DNS)的内网域名,当需要在函数中解析DNS域名,可参考本章节操作,通过调用DNS服务的接口,实现解析功能。 您需要提前创建VPC和DNS内网域名,再按照如下步骤操作。 内网域名关联VPC并添加记录集 登录云解析服务控制台,将内网域名关联VPC。 图1 关联VPC 点击进入域名并添加记录集,类型选择A。 图2 添加记录集 创建函数 创建一个运行时语言为Python 2.7版本的函数,代码示例如下: # -*- coding:utf-8 -*-import jsonimport osdef 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后稳定生效。
  • 为函数挂载文件系统时,报“failed to mount exist system path” 您可以将文件重新挂载在新的路径下。 用户/用户组ID: 可设置为1000之外的其他数字id,如果为-1默认设置为1003。用户/用户组ID用于对访问远端文件系统的目录权限进行控制。 文件系统/云服务器名称:选择创建的文件系统或者云服务器资源,注意函数配置的VPC和委托要有访问权限。 共享目录路径:如果选择ECS挂载需要配置远端共享目录,请参见ECS创建nfs共享目录。 函数访问路径:为本地文件系统挂载目录,不能是系统已存在目录。建议使用/mnt/ 下二级子目录,例如/mnt/test。 父主题: 配置函数
  • 使用FunctionGraph是否需要开通计算、存储、网络等服务? 用户使用FunctionGraph时,不需要开通或者预配置计算、存储、网络等服务,由FunctionGraph提供和管理底层计算资源,包括服务器CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡、安全升级、资源运行情况监控等,用户只需要按照FunctionGraph支持的编程语言提供程序包,上传即可运行。 父主题: 产品咨询
  • 创建rf_admin_trust委托(可选) 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“ 统一身份认证 ”菜单。 图3 控制台管理界面 图4 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图5 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“ RFS ”,单击“下一步”。 图6 创建委托 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果。 图7 选择策略 选择“所有资源”,并单击下一步完成配置。 图8 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图9 委托列表
  • 名词解释 基本概念、云服务简介、专有名词解释 弹性云服务器 ECS:是一种可随时自助获取、可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 弹性公网IP EIP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟VIP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。 虚拟私有云 VPC:是用户在云上申请的隔离的、私密的虚拟网络环境。用户可以自由配置VPC内的IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性IP搭建业务系统。 辅助弹性网卡:辅助弹性网卡是一种基于弹性网卡的衍生资源,用于解决单个云服务器实例挂载的弹性网卡超出上限,不满足用户使用需要的问题。辅助弹性网卡通过VLAN子接口挂载在弹性网卡上,您可以通过创建辅助弹性网卡,使单个云服务器实例挂载更多网卡,实现灵活、高可用的网络方案配置。
  • 资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,具体请参考华为云官网价格,实际以收费账单为准: 表1 资源和成本规划(按需计费) 华为云服务 配置示例 每月预估花费 弹性 云服务器ECS 按需计费:0.48元/小时 区域:华北-北京四 计费模式:按需计费 规格: 通用计算增强型 C7 | 2核 | 4GB 镜像:CentOS 7.9 64bit 系统盘:高IO | 100GB 购买量:1 343.44 元 弹性公网IP EIP 按需计费:0.32元/小时 区域:华北-北京四 计费模式:按需计费 产品类型:独享 线路:全动态BGP 公网带宽:按带宽计费 带宽:5Mbit/s 购买数量:3 723.60 元 辅助弹性网卡 购买数量:2 免费 合计 - 1067.04 元 表2 资源和成本规划(包年包月) 华为云服务 配置示例 每月预估花费 弹性云服务器ECS 区域:华北-北京四 计费模式:包月 规格: 通用计算增强型 C7 | 2核 | 4GB 镜像:CentOS 7.9 64bit 系统盘:高IO | 100GB 购买量:1 240.50 元 弹性公网IP EIP 区域:华北-北京四 计费模式:包月 产品类型:独享 线路:全动态BGP 公网带宽:按带宽计费 带宽:5Mbit/s 购买数量:3 345.00 元 辅助弹性网卡 购买数量:2 免费 合计 - 585.50元
  • 安全组规则修改(可选) 安全组实际是网络流量访问策略,包括网络流量入方向规则和出方向规则,通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。 如果您的实例关联的安全组策略无法满足使用需求,比如需要添加、修改、删除某个TCP端口,请参考以下内容进行修改。 添加安全组规则:根据业务使用需求需要开放某个TCP端口,请参考添加安全组规则添加入方向规则,打开指定的TCP端口。 修改安全组规则:安全组规则设置不当会造成严重的安全隐患。您可以参考修改安全组规则,来修改安全组中不合理的规则,保证云服务器等实例的网络安全。 删除安全组规则:当安全组规则入方向、出方向源地址/目的地址有变化时,或者不需要开放某个端口时,您可以参考删除安全组规则进行安全组规则删除。
  • 快速部署 本章节主要帮助用户快速部署该解决方案。 华北-北京四Region下创建的ECS默认在可用区一,用户在选择ECS规格时需要在ECS控制台确认该可用区下资源是否支持购买。亚太-香港默认可用区三,亚太-香港默认可用区一。 使用已有VPC资源部署方案的时候,请确保选择的子网剩余可用私网IP地址数量不少于需要绑定的EIP数量。 表1 参数填写说明(新建VPC版) 参数名称 类型 是否必填 参数解释 默认值 vpc_name String 必填 虚拟私有云 VPC名称,该模板使用新建VPC,不允许重名。取值范围:1-64个字符,仅支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 binding-multiple-ip-addresses-to-an-ecs-demo security_group_name String 必填 安全组名称,该模板新建安全组,安全组规则请参考安全组规则修改(可选)进行修改。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 binding-multiple-ip-addresses-to-an-ecs-demo ecs_name String 必填 弹性云服务器名称,不支持重名。取值范围:1-64个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 binding-multiple-ip-addresses-to-an-ecs-demo ecs_flavor String 必填 弹性云服务器规格,支持辅助弹性网卡的云服务器实例规格如:C7、S7、M7,其他支持辅助弹性网卡的规格请参考规格清单(x86)。 c7.large.2 ecs_password String 必填 弹性云服务器初始化密码。取值范围:长度为8-26个字符,密码至少包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{()}]:,./?~#*)中的三种,管理员账户默认root。 root_volume_type String 必填 云服务器系统盘类型,支持高IO(SAS)、极速型SSD(ESSD)、通用型SSD V2(GPSSD2)、超高IO(SSD)、通用型SSD(GPSSD)。 SAS root_volume_size String 必填 系统盘大小,以GB为单位,不支持缩盘。取值范围为40-1,024。 100 eip_size String 必填 弹性公网IP带宽大小,该模板计费方式为按带宽计费。取值范围:1-2,000Mbit/s。 5 eip_count String 必填 云服务器需要绑定的弹性公网IP数量,该值需结合上述填写的ECS规格支持的辅助弹性网卡数,上限不得超过ECS支持的最大辅助弹性网卡个数加一,取值范围:2-257。 3 charging_mode String 必填 计费模式,默认自动扣费。可选值为:postPaid(按需计费)、prePaid(包年包月)。 postPaid charging_unit String 必填 订购周期类型。仅当charging_mode为prePaid(包年/包月)生效,此时该参数为必填参数。可选值为:month(月),year(年)。 month charging_period Number 必填 订购周期,仅当charging_mode为prePaid(包年/包月)生效,此时该参数为必填参数。当charging_unit=month(周期类型为月)时,取值范围:1-9;当charging_unit=year(周期类型为年)时,取值范围:1-3。 1 表2 参数填写说明(已有VPC版) 参数名称 类型 是否必填 参数解释 默认值 subnet_id String 必填 已有子网ID,此模板将在该子网下创建云服务器,获请参考3.1准备工作步骤1。 security_group_id String 必填 已有安全组ID,此模板将在该安全组下创建云服务器,获取请参考3.1准备工作步骤2。 ecs_name String 必填 弹性云服务器名称,不支持重名。取值范围:1-64个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 binding-multiple-ip-addresses-to-an-ecs-demo ecs_flavor String 必填 弹性云服务器规格,支持辅助弹性网卡的云服务器实例规格如:C7、S7、M7,其他支持辅助弹性网卡的规格请参考规格清单(x86)。 c7.large.2 ecs_password String 必填 弹性云服务器初始化密码。取值范围:长度为8-26个字符,密码至少包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{()}]:,./?~#*)中的三种,管理员账户默认root。 root_volume_type String 必填 云服务器系统盘类型,支持高IO(SAS)、极速型SSD(ESSD)、通用型SSD V2(GPSSD2)、超高IO(SSD)、通用型SSD(GPSSD)。 SAS root_volume_size String 必填 系统盘大小,以GB为单位,不支持缩盘。取值范围为40-1,024。 100 eip_size String 必填 弹性公网IP带宽大小,该模板计费方式为按带宽计费。取值范围:1-2,000Mbit/s。 5 eip_count String 必填 云服务器需要绑定的弹性公网IP数量,该值需结合上述填写的ECS规格支持的辅助弹性网卡数,上限不得超过ECS支持的最大辅助弹性网卡个数加一,取值范围:2-257。 3 charging_mode String 必填 计费模式,默认自动扣费。可选值为:postPaid(按需计费)、prePaid(包年包月)。 postPaid charging_unit String 必填 订购周期类型。仅当charging_mode为prePaid(包年/包月)生效,此时该参数为必填参数。可选值为:month(月),year(年)。 month charging_period Number 必填 订购周期,仅当charging_mode为prePaid(包年/包月)生效,此时该参数为必填参数。当charging_unit=month(周期类型为月)时,取值范围:1-9;当charging_unit=year(周期类型为年)时,取值范围:1-3。 1 登录华为云解决方案实践,选择“基于辅助弹性网卡实现ECS绑定多IP”并单击,跳转至该解决方案实施库详情页。 图1 解决方案实施库 选择需要部署区域及模板,单击“一键部署”,跳转至该解决方案创建资源栈部署界面。下文将以华北-北京四区域的“新建VPC版”部署方式为例,说明如何进行快速部署。 图2 创建资源栈 单击“下一步”,参考表1完成自定义参数填写。 图3 参数配置 (可选,如果使用华为主账号或admin用户组下的IAM子账户可不选委托)在资源设置界面中,在权限委托下拉框中选择“rf_admin_trust”委托,单击“下一步”。 图4 资源栈设置 在配置确认界面中,单击“创建执行计划”。 图5 创建执行计划 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 单击“部署”,弹出执行计划提示信息,单击“执行”确认执行。 图7 执行计划确认 图8 确认执行 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考表2)请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图9 资源创建成功 在“输出”中可查看该模板创建的弹性云服务器已绑定的IP地址。 图10 输出 父主题: 实施步骤
  • 计费模式概述 分布式缓存服务提供包年/包月、按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于设备需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照缓存实例实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等设备需求量瞬间大幅波动的场景。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照缓存实例实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 变更计费模式 支持变更为按需计费模式。 但包年/包月资费模式到期后,按需的资费模式才会生效。 包年/包月转按需 支持变更为包年/包月计费模式。 按需转包年/包月 变更规格 支持变更实例规格。 支持变更实例规格。 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。 适用于计算资源需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
共99354条