沪ICP备19023181号-1
Collect from网页模板
Modified by Sprite小站

Terraform for alicloud

Terraform command

# 初始化云平台的客户端,./terraform
- terraform init
# 读取main.tf中声明的资源
- terraform plan -lock=false
# import existed cloud resource
- terraform import alicloud_fc_function.default nomad-marketing-sms-production:cronjob-function
- terraform import alicloud_fc_trigger.default nomad-marketing-sms-production:cronjob-function:cronjob-timer
# destroy existed resources
- terraform destroy -lock=false -auto-approve
# apply new cloud resources
- terraform apply -lock=false -auto-approve

Terraform file for Ali cloud function compute

main.tf:terraform 入口,可以声明需要的资源,变量等
output.tf:定义资源的ID
output "fc_function_id" {
  value = "${alicloud_fcv2_function.default.id}/${alicloud_fcv2_function.default.function_name}"
}

variables.tf:定义变量
variable "alicloud_region" {
  type        = string
  description = "Alicloud region"
  default     = "cn-shanghai"
}

variable "shanghai_access_key" {
  type        = string
  description = "Alicloud access key"
  nullable    = false
  sensitive   = true
}

variable "shanghai_secret_key" {
  type        = string
  description = "Alicloud secret key"
  nullable    = false
  sensitive   = true
}

./terraform:初始化云平台的客户端
terraform.tfstate:云资源在本地的状态
main.tf 

provider "alicloud" {
  access_key = var.shanghai_access_key
  secret_key = var.shanghai_secret_key
  region     = var.alicloud_region
}

locals {
  service_name         = "service_name"
  function_name        = "cronjob-function"
  image_name_cronjob   = "image_name_cronjob"
  cronjob_trigger_name = "cronjob-timer"
}

resource "alicloud_fcv2_function" "default" {
  service_name  = local.service_name
  function_name = local.function_name
  description   = "cron-job description"
  runtime       = "custom-container"
  timeout       = 60
  handler       = "index.handler"

  environment_variables = {
    CRYPT_KEY           = var.crypt_key
  }
  custom_container_config {
    image           = "registry-intl-vpc.cn-shanghai.aliyuncs.com/samarkand/${local.image_name_cronjob}:${var.image_tag}"
    command         = null
    args            = null
    web_server_mode = false
  }
}

resource "alicloud_fc_trigger" "default" {
  service    = local.service_name
  function   = local.function_name
  depends_on = [
    alicloud_fcv2_function.default,
  ]
  # 定时触发器的配置  
  name   = local.cronjob_trigger_name
  type   = "timer"
  config = <<EOF
    {
    "enable": true,
    "payload": "",
    "cronExpression": "CRON_TZ=Asia/Shanghai 0 19 * * * *"
  }
EOF  
}

Refer


发表评论

评论列表,共 0 条评论

    暂无评论