Handle errors with custom predicate

Defines a custom error handler, including a custom predicate and custom backoff parameters.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

YAML

  # Define a custom error handler, custom predicate, and custom backoff parameters 
 # The `my_own_predicate` subworkflow accepts a map as an argument and defines the 
 # exception; it returns true if a retry; false, otherwise 
 # Expected outcome: the execution fails and returns an HTTP 404 Not Found error 
 main 
 : 
  
 steps 
 : 
  
 - 
  
 read_item 
 : 
  
 try 
 : 
  
 call 
 : 
  
 http.get 
  
 args 
 : 
  
 url 
 : 
  
 https://example.com/someapi 
  
 result 
 : 
  
 api_response 
  
 retry 
 : 
  
 predicate 
 : 
  
 ${my_own_predicate} 
  
 max_retries 
 : 
  
 5 
  
 backoff 
 : 
  
 initial_delay 
 : 
  
 2 
  
 max_delay 
 : 
  
 60 
  
 multiplier 
 : 
  
 2 
  
 - 
  
 last_step 
 : 
  
 return 
 : 
  
 "OK" 
 my_own_predicate 
 : 
  
 params 
 : 
  
 [ 
 e 
 ] 
  
 steps 
 : 
  
 - 
  
 log_error_tags 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 data 
 : 
  
 ${e.tags} 
  
 severity 
 : 
  
 "INFO" 
  
 - 
  
 log_error_message 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 data 
 : 
  
 ${e.message} 
  
 severity 
 : 
  
 "INFO" 
  
 - 
  
 log_error_code 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 data 
 : 
  
 ${e.code} 
  
 severity 
 : 
  
 "INFO" 
  
 - 
  
 what_to_repeat 
 : 
  
 switch 
 : 
  
 - 
  
 condition 
 : 
  
 ${e.code == 202} 
  
 return 
 : 
  
 true 
  
 - 
  
 otherwise 
 : 
  
 return 
 : 
  
 false 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: