Workflows connector that defines the built-in function used to access Cloud Functions within a workflow.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
YAML
# This workflow demonstrates how to use the Cloud Functions connector:
# Create a function using source code stored as a zip archive in a
# Cloud Storage bucket (gs://BUCKET_NAME/cloud-function-source.zip)
# Source code must be a properly structured Cloud Function
# Expected output: "SUCCESS"
main
:
params
:
[]
steps
:
-
init
:
assign
:
-
project
:
${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
-
location
:
"us-central1"
-
name
:
"example-function"
-
bucket
:
"BUCKET_NAME"
# replace BUCKET_NAME placeholder
-
sourceArchiveUrl
:
${"gs://" + bucket + "/cloud-function-source.zip"}
-
service_account
:
${project + "@appspot.gserviceaccount.com"}
# App Engine default service account
-
create_function
:
call
:
googleapis.cloudfunctions.v1.projects.locations.functions.create
args
:
location
:
${"projects/" + project + "/locations/" + location}
body
:
name
:
${"projects/" + project + "/locations/" + location + "/functions/" + name}
description
:
"Cloud
Function
for
Workflows
connector
testing"
entryPoint
:
"helloWorld"
runtime
:
"nodejs10"
serviceAccountEmail
:
${service_account}
sourceArchiveUrl
:
${sourceArchiveUrl}
httpsTrigger
:
securityLevel
:
"SECURE_OPTIONAL"
-
get_function
:
call
:
googleapis.cloudfunctions.v1.projects.locations.functions.get
args
:
name
:
${"projects/" + project + "/locations/" + location + "/functions/" + name}
result
:
function
-
grant_permission_to_all
:
call
:
googleapis.cloudfunctions.v1.projects.locations.functions.setIamPolicy
args
:
resource
:
${"projects/" + project + "/locations/" + location + "/functions/" + name}
body
:
policy
:
bindings
:
-
members
:
[
"allUsers"
]
role
:
"roles/cloudfunctions.invoker"
-
call_function
:
call
:
http.get
args
:
url
:
${function.httpsTrigger.url}
result
:
resp
-
verify_response
:
call
:
assert_response
args
:
expected_response
:
"success"
# function must return "success" when triggered
actual_response
:
${resp.body}
-
delete_function
:
call
:
googleapis.cloudfunctions.v1.projects.locations.functions.delete
args
:
name
:
${"projects/" + project + "/locations/" + location + "/functions/" + name}
-
the_end
:
return
:
"SUCCESS"
assert_response
:
params
:
[
expected_response
,
actual_response
]
steps
:
-
compare
:
switch
:
-
condition
:
${expected_response == actual_response}
next
:
end
-
fail
:
raise
:
${"Expected response is " + expected_response + ". Received " + actual_response + " instead."}
What's next
To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

