The Workflows standard library modules allow you to easily construct arguments for services and process responses. There is no need to import or load libraries in a workflow—library functions work out of the box.
All functions can be called using call
steps, but only non-blocking functions
can be used inside an expression. For example, HTTP calls, sys.sleep
, and
sys.log
cannot be used inside an expression. For more information, see
Blocking calls.
Workflows also includes frequently used functions, such as for data type and format conversions. See Expression helpers.
Generate random identifiers or numbers
You can use uuid.generate
to return a random 128‑bit universally unique identifier (UUID) in string
form.
You can use
sys.now
to generate multiple random numbers. (The function returns a floating point
number with nanosecond precision.)
If you need only one number, use
sys.get_env
to retrieve the workflow's execution identifier.If a unique ID is needed, you can use
string()
to convert the number returned fromsys.now
to a string and combine it with the execution ID; for example,some_execution_id1635892223.4459958
.
Optionally, you can use a Cloud Run function to generate a number and call the Cloud Run function from your workflow.
Expression helpers
Built-in expression helper functions.
Conversion functions
Convert values from one data type to another.
Functions | |
---|---|
double() |
Accepts an attribute of type string or integer and returns a double. |
int() |
Accepts an attribute of type string or double and returns an integer. |
string() |
Accepts an attribute of type integer, double, or boolean and returns a string. |
Data type functions
Operate on lists, maps, and strings.
Functions | |
---|---|
in() |
Checks whether a given key is present in a list or map. |
keys() |
Accepts an attribute of type map and returns a list of key elements in the map. |
len() |
Computes the length of value according to its type. |
Conditional functions
Support conditions within expressions.
Functions | |
---|---|
default(val, defaultVal) |
Returns a value if it is not null; otherwise returns a default value. |
if(condition, ifTrue, ifFalse) |
Evaluates a condition and returns one of two arguments depending on what the condition evaluates to. |
Type functions
Return data type.
Functions | |
---|---|
get_type(arg) |
Returns a string indicating the data type of the argument. |
Module: base64
Base64 encoding/decoding.
Functions | |
---|---|
decode |
Decodes given Base64-encoded string to bytes. |
encode |
Encodes given bytes to Base64 text. |
Module: events
Events support.
Functions | |
---|---|
await_callback |
Waits for a callback to be received at the given endpoint. |
create_callback_endpoint |
Creates a callback endpoint expecting the specified HTTP method. |
Module: experimental.executions
Execution management.
Instead of using experimental.executions.map
to support parallel work, we
recommend you
execute workflow steps in parallel.
If you are already using experimental.executions.map
, you can
migrate your workflow to use parallel steps.
Functions | |
---|---|
execution_error |
Raised when a workflow execution finishes with an error or is cancelled. |
map |
Starts workflow executions and waits for all of them to finish. |
run |
Starts a workflow execution and waits for it to finish. |
Module: hash
Common hashing algorithms.
Functions | |
---|---|
compute_checksum |
Computes checksum using a given hashing algorithm. |
compute_hmac |
Computes the hash-based message authentication code (HMAC) for data given a secret key and hashing algorithm. |
Module: http
HTTP/S request support.
Functions | |
---|---|
default_retry_predicate |
Simple default retry predicate for idempotent targets. |
default_retry_predicate_non_idempotent |
Simple default retry predicate for non-idempotent targets. |
delete |
Sends an HTTP DELETE request to the specified URL. |
get |
Sends an HTTP GET request to the specified URL. |
patch |
Sends an HTTP PATCH request to the specified URL. |
post |
Sends an HTTP POST request to the specified URL. |
put |
Sends an HTTP PUT request to the specified URL. |
request |
Sends an HTTP request. |
Objects | |
---|---|
default_retry |
Simple default retry policy for idempotent targets. |
default_retry_non_idempotent |
Simple default retry policy for non-idempotent targets. |
Module: json
JSON encoding/decoding.
Functions | |
---|---|
decode |
Decodes given JSON bytes (assuming UTF-8), or a string, into an object. |
encode |
Encodes given input object to JSON bytes, using UTF-8 charset. |
encode_to_string |
Encodes given object to a JSON string. |
Module: list
List utility.
Functions | |
---|---|
concat |
Creates a copy of a list with a new element concatenated at the end. |
prepend |
Creates a copy of a list with a new element added to the beginning. |
Module: map
Map utility.
Functions | |
---|---|
delete |
Takes a map, creates a copy of the map, and removes the item with the specified key. |
get |
Performs a safe lookup on a map, returning null if the key is not found. |
merge |
Takes two maps, creates a copy of the first map, and adds the items from the second map to the copy. |
merge_nested |
Takes two maps, creates a copy of the first map, and recursively adds items from the second map to the copy. |
Module: math
Math utility.
Functions | |
---|---|
abs |
Returns the absolute value of a number. |
floor |
Returns the floor of a number. |
max |
Returns the maximum of two numbers. |
min |
Returns the minimum of two numbers. |
Module: retry
Support for retries.
Functions | |
---|---|
always |
Convenience retry condition that retries on any error. |
never |
Convenience retry condition that retries on no error at all. |
Objects | |
---|---|
default_backoff |
Simple default truncated exponential backoff policy. |
Module: sys
Common system interface, with platform-dependent implementation.
Functions | |
---|---|
get_env |
Retrieves the value of the specified environment variable. |
log |
Writes one of data , text , or json to the log at specified severity. |
now |
Returns Unix time, as a floating-point number. |
sleep |
Suspends execution for the given number of seconds. |
sleep_until |
Suspends execution until the given time. |
Module: text
Text processing.
To concatenate a string, see Strings.
Functions | |
---|---|
decode |
Decodes given data to string, assuming the specified character set. |
encode |
Encodes given text to bytes, using the specified character set. |
find_all |
Finds the index of all instances of a substring in a string. |
find_all_regex |
Finds all matches of a regular expression in a string. |
match_regex |
Reports whether a string contains a match of a regular expression. |
replace_all |
Replaces all instances of a substring with a new string. |
replace_all_regex |
Replaces all matches of a regular expression with a new string. |
split |
Splits the source string into a list of all substrings between each instance of the separator. |
substring |
Extracts the substring between two zero-based indexes of a source string. |
to_lower |
Returns a string with all Unicode letters mapped to their lowercase. |
to_upper |
Returns a string with all Unicode letters mapped to their uppercase. |
url_decode |
Returns a string with pluses and percent-escaped characters converted to UTF-8. |
url_encode |
Returns a string with percent-encoded reserved characters, including spaces. |
url_encode_plus |
Returns a string with percent-encoded reserved characters, and spaces replaced by pluses (+ ). |
Module: time
Time-related utility functions.
Functions | |
---|---|
format |
Formats the given timestamp as a human-readable string. |
parse |
Parses the given RFC 3339-compatible string into a timestamp. |
Module: uuid
UUID utility.
Functions | |
---|---|
generate |
Returns a random universally unique identifier (UUID). |