Google Cloud Functions(Golang)和Terraform

时间:2019-01-18 06:42:20

标签: go google-cloud-functions terraform

Go对Google云功能的支持刚刚发布了顶级Beta。

我一直在搜索有关将Google CloudFunctions(专门用于golang)与Terraform结合使用以及所需工作流程(包括使用CloudBuild来构建,测试和部署到GCP)的任何示例/教程。

有人知道这个例子/博客并且可以共享链接吗?我知道go是新的beta版,所以不太可能。我是GCP工具链的新手(来自AWS CloudFormation,代码管道/构建和Lambda / Go),因此渴望看到GCP端到端工作流程的最佳实践设置。如果有经验的人很热衷,那将是一个很棒的帖子!

谢谢

1 个答案:

答案 0 :(得分:1)

我在GCP和Go的云功能部门工作。

我还没有测试完整的流程,但是希望这能为您指明正确的方向,然后再获得完整的演练/博客文章。

您可以使用来自https://www.terraform.io/docs/providers/google/r/cloudbuild_trigger.html的以下代码段创建Cloud Build触发器:

resource "google_cloudbuild_trigger" "build_trigger" {
  project  = "my-project"
  trigger_template {
    branch_name = "master"
    project     = "my-project"
    repo_name   = "some-repo"
  }
  filename = "cloudbuild.yaml"
}

通过该触发器,您可以使用根据https://cloud.google.com/functions/docs/bestpractices/testing#continuous_testing_and_deployment中的示例改编的cloudbuild.yaml:

steps:
- name: 'gcr.io/cloud-builders/go:latest'
  args: ['test', '[YOUR_FUNCTION_PACKAGE]']
  env: 'GOPATH=.'
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['functions', 'deploy', '[YOUR_DEPLOYED_FUNCTION_NAME]', '[YOUR_FUNCTION_TRIGGER]', '--runtime', 'go111', '--entry-point', '[YOUR_FUNCTION_NAME_IN_CODE]']
  dir: 'functions/autodeploy'

有关配置Cloud Build for Go的示例,请参见https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/go。此设置将从Cloud Build部署功能,而不是使用google_cloudfunctions_function with Terraform