Go对Google云功能的支持刚刚发布了顶级Beta。
我一直在搜索有关将Google CloudFunctions(专门用于golang)与Terraform结合使用以及所需工作流程(包括使用CloudBuild来构建,测试和部署到GCP)的任何示例/教程。
有人知道这个例子/博客并且可以共享链接吗?我知道go是新的beta版,所以不太可能。我是GCP工具链的新手(来自AWS CloudFormation,代码管道/构建和Lambda / Go),因此渴望看到GCP端到端工作流程的最佳实践设置。如果有经验的人很热衷,那将是一个很棒的帖子!
谢谢
答案 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。