使用Terraform创建函数
Terraforms是一款开源工具,用于安全有效地构建、更改和版本控制基础设施。用户能够通过这些配置文件声明所需的基础设施最终状态,而不需要具体指定如何实现这个状态。
Terraform的优势:
- 提升架构一致性:减少手动配置过程中的错误和配置漂移。
- 降低运维成本:通过编程方式管理虚拟机,减少手动配置硬件及更新的需求。
- 提升操作效率:简化系统配置、维护和管理,加速软件开发和部署。
- 加快部署速度:将繁琐的配置工作转变为简单的脚本执行,缩短应用发布时间。
- 降低操作风险:支持版本控制,降低配置错误的风险。
本章节将指导开发者如何使用Terraform创建函数,方便开发者高效地创建函数资源。
前提条件
已获取访问密钥
获取访问密钥方式请参考访问密钥。建议使用安全性更高的临时访问密钥,具体请参考临时访问密钥(企业联邦用户)。
访问密钥(AK/SK,Access Key ID/Secret Access Key)包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,是您在华为云的长期身份凭证,您可以通过访问密钥访问华为云API。
创建访问密钥成功后,您可以在访问密钥列表中查看访问密钥ID(AK),在下载的.csv文件中查看访问密钥(SK)。
准备Terraform环境
- 安装Terraform执行环境。
Terraform提供了多种环境的安装包,具体可以参考Terraform官网。
下面以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命令详情,查看更多命令详情请参考Terraform CLI。
- 基础Terraform语法。
Terraform配置语言主要基于HCL语法,具有配置简单、可读性强等特点,并且兼容JSON语法。详情参见Terraform官网介绍。
编写函数资源脚本
华为云在Terraform已经注册了provider,函数作为资源挂在华为云的provider下,可参考文档huaweicloud_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 = "*******" #替换为获取访问密钥生成的密钥 secret_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=" }
使用Terraform命令创建函数
- 进入文件路径,执行以下命令初始化一个包含Terraform代码的工作目录。
terraform init
- 执行以下命令,将基础设施配置应用到函数。在Enter a value: 处输入yes。
terraform apply
- 执行成功代表函数创建完成。