更新时间:2025-08-18 GMT+08:00

使用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命令创建函数

  1. 进入文件路径,执行以下命令初始化一个包含Terraform代码的工作目录。
    terraform init

  2. 执行以下命令,将基础设施配置应用到函数。在Enter a value: 处输入yes。
    terraform apply

  3. 执行成功代表函数创建完成。