- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
-
最佳实践
- FunctionGraph最佳实践汇总
-
数据处理类实践
- 使用FunctionGraph函数对OBS中的图片进行压缩
- 使用FunctionGraph函数为OBS中的图片打水印
- 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable
- 使用FunctionGraph函数实现通过API方式上传文件
- 使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换
- 使用FunctionGraph函数对OBS中的文件进行加解密
- 使用FunctionGraph函数识别LTS中的异常业务日志并存储到OBS
- 使用FunctionGraph函数对LTS中的日志进行实时过滤
- 使用FunctionGraph函数流对OBS中的图片进行旋转
- 使用FunctionGraph函数流对图片进行压缩和打水印
- 功能应用类实践
- 函数构建类实践
- 开发指南
- API参考
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询
- 使用FunctionGraph是否需要开通计算、存储、网络等服务?
- 使用FunctionGraph开发程序之后是否需要部署?
- FunctionGraph为函数分配的磁盘空间有多少?
- 是否支持在函数中启动TCP的监听端口,通过EIP接收外部发送过来的TCP请求?
- 函数发起HTTP请求的源地址如何获取?
- FunctionGraph是否支持对上传的zip文件进行反编译?
- FunctionGraph的函数是否支持功能扩展?
- FunctionGraph中的代码是如何隔离的?
- 函数常规信息中的“应用”如何理解?
- 用户需要为函数的冷启动时间付费吗?
- 函数计费中的调用次数,是某一账号下在不同region的所有函数的调用次数总和吗?
- Python语言的函数从V1版本迁移到V2版本时需注意哪些兼容性问题?
- FunctionGraph函数支持哪些编程语言?
- 创建函数
-
配置函数
- 能否在函数环境变量中存储敏感信息?
- FunctionGraph的函数如何读写上传的文件?
- 为函数挂载文件系统时,报“failed to mount exist system path”
- FunctionGraph如何实现域名解析?
- FunctionGraph如何通过域名访问专享版APIG中注册的接口?
- FunctionGraph函数通过域名访问APIG中注册的接口时,报域名无法解析?
- 使用定制运行时语言的函数能操作哪些目录?
- FunctionGraph的函数支持哪些中文字体?
- 能否在函数代码中使用线程和进程?
- 函数如何访问MySQL数据库?
- 函数无法通过VPC连接对应的Redis?
- 如何读取函数的请求头?
- Python语言的函数中,中文注释报乱码错误
-
调用函数
- FunctionGraph的函数执行需要多长时间?
- FunctionGraph的函数执行包含了哪些过程?
- FunctionGraph函数长时间不执行时,相关的实例会如何处理?
- 如何获取函数运行过程中的内存使用量信息?
- 为什么首次调用函数时速度会比较慢?
- 为什么函数实际使用内存大于预估内存,甚至触发内存溢出OOM?
- 函数执行失败返回“runtime memory limit exceeded”时,如何查看内存占用大小?
- 自定义镜像函数执行失败报“CrashLoopBackOff”
- 同步调用函数时,未收到调用响应的可能原因?
- 函数中os.system("command &")命令的执行日志未采集,应如何处理?
- 函数执行超时的可能原因有哪些?
- 使用APIG触发器调用一个返回String的FunctionGraph函数时,报500错误
- Python2.7在执行reload(sys)后无法通过print打印日志
- 运行函数时报错error while loading shared libraries时如何处理?
- 配置触发器
- 配置依赖包
-
产品咨询
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用Terraform创建函数
Terraforms是一款开源工具,用于安全有效地构建、更改和版本控制基础设施。用户通过这些配置文件声明他们想要的基础设施最终状态,而不需要具体指定如何实现这个状态。
Terraform的优势:
- 提升架构一致性:减少手动配置过程中的错误和配置漂移。
- 降低运维成本:通过编程方式管理虚拟机,减少手动配置硬件及更新的需求。
- 提升操作效率:简化系统配置、维护和管理,加速软件开发和部署。
- 加快部署速度:将繁琐的配置工作转变为简单的脚本执行,缩短应用发布时间。
- 降低操作风险:支持版本控制,降低配置错误的风险。
本章节将指导开发者如何使用Terraform创建函数,方便开发者高效的创建函数资源。
前提条件
获取访问密钥
获取访问密钥方式请参考访问密钥。
访问密钥(AK/SK,Access Key ID/Secret Access Key)包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,是您在华为云的长期身份凭证,您可以通过访问密钥访问华为云API。
创建访问密钥成功后,您可以在访问密钥列表中查看访问密钥ID(AK),在下载的.csv文件中查看访问密钥(SK)。
准备Terraform环境
- 安装Terraform执行环境
Terraform提供了多种环境的安装包,具体可以参考官网(https://developer.hashicorp.com/terraform/downloads)。
下面以Linux CentOS (系统需要有访问公网权限)为例指导安装Terraform。
使用root用户登录系统,新建目录/home/Terraform,cd到Terraform目录执行如下命令:
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install terraform
- 基本的Terraform命令
执行Terraform后会显示Terraform命令详情,查看更多命令详情请参考https://developer.hashicorp.com/terraform/cli。
- 基础Terraform语法
Terraform配置语言主要基于HCL语法,具有配置简单、可读性强等特点,并且兼容JSON语法。详情参见官网介绍https://developer.hashicorp.com/terraform/language,此文不做赘述。
编写函数资源脚本
华为云在Terraform已经注册了provider,函数作为资源挂在华为云的provider下。参考文档https://registry.terraform.io/providers/huaweicloud/huaweicloud/latest/docs/resources/fgs_function。
提供如下样例:
在服务器创建一个main.tf文件,将如下脚本拷贝到main.tf上并保存。
terraform { required_providers { huaweicloud = { source = "huaweicloud/huaweicloud" version = ">= 1.40.0" } } } provider "huaweicloud" { region = "cn-east-3" #实际的区域 access_key = "*******" #前面获取的key secret_key = "*******" #前面获取的key } resource "huaweicloud_fgs_function" "fgs_function" { name = "test_func_rf" app = "default" agency = "function-admin" description = "function test" handler = "index.handler" memory_size = 128 timeout = 3 runtime = "Python3.6" code_type = "inline" func_code = "aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=" }
access_key secret_key 需要替换为获取访问密钥生成的密钥。
使用Terraform命令创建函数
进入文件路径,执行terraform init命令初始化一个包含Terraform代码的工作目录。
执行terraform apply命令,在Enter a value: 处输入yes。
执行成功代表函数创建完成。