简体   繁体   中英

Terraform GCP Cloud function using Github

I want to create a Google Cloud Function using Terraform but want to pull the source code from Github.

I managed to do this zipping up the function and copying it into Cloud Storage using Terraform, but I do not like this workflow as I have to run a script to kick things off. I rather just do a PR on Github and see the new code in GCP.

I already setup Google Cloud Source Repositories to source from my Github.

The Terraform doc to use the " source_repository " argument is not clear to me. What I would like to do is just grab the source from HEAD on the master branch.

This function source code is located under the sub-folder:

cloud-functions/training_data

There are two files inside the function folder:

  • “main.py”
  • “requirements.txt”

I just would like to know how to specify the “source_repository” argument in this case.

I recently came across this problem as well.

The documentation says to format the url value to be, https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*

To get this to work...hypothetically, say my source code and my repository had the following information...

project: kalefive-project
repo: kalefive-functions-repository
branch: master
directory_in_repo_with_src: src/functions/bin

Then the resulting url that worked for me was...

source_repository = {
  url = https://source.developers.google.com/projects/kalefive-project/repos/kalefive-functions-repository/moveable-aliases/master/paths/src/functions/bin
}

Hope this helps!

source_repository = {
  url = https://source.developers.google.com/projects/kalefive-project/repos/kalefive-functions-repository/moveable-aliases/master/paths/src/functions/bin
}

incase the above syntax is not working just use it without an equal sign.

resource "google_cloudfunctions_function" "js_function" {
    source_repository  {
      url = https://source.developers.google.com/projects/kalefive-project/repos/kalefive-functions-repository/moveable-aliases/master/paths/src/functions/bin
   }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM