Demonstrate variable scope in a parallel step
Stay organized with collections
Save and categorize content based on your preferences.
Demonstrates the scope of a shared variable, as well as variables that are local to their respective branch scopes.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Demonstrate variable scope in a parallel step\n\nDemonstrates the scope of a shared variable, as well as variables that are local to their respective branch scopes.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Parallel steps](/workflows/docs/reference/syntax/parallel-steps)\n\nCode sample\n-----------\n\n### YAML\n\n - assignStep: # these variables can be read by any branch\n assign:\n - input: [\"apples\", \"oranges\"]\n - my_result: {}\n - parallelStep:\n parallel:\n shared: [my_result] # my_result is now writable by any branch\n branches:\n - getStock:\n steps:\n - callGetStock:\n call: http.get\n args:\n url: ${\"http://mystore.com/getStock/\" + input[0]}\n result: local_result # local_result is local to this branch scope\n - assignResult1:\n assign:\n - my_result[\"getStock\"]: ${local_result.body.some.entry} # ok, my_result has shared scope and is writable\n - temp: 1 # ok, variable is local to branch scope\n - temp2: \"foo\" # ok, variable is local to branch scope\n # - input: 5 # deployment error, defined in the parent scope but not marked \"shared\"\n - orderStock:\n steps:\n - callOrderStock:\n call: http.get\n args:\n url: ${\"http://mystore.com/orderStock/\" + input[1]}\n result: local_result # local_result is local to this branch\n - assignResult2:\n assign:\n - my_result[\"orderStock\"]: ${local_result.body.some.entry} # ok, my_result has shared scope and is writable\n - temp: 2 # ok, variable is local to branch scope\n # - temp: ${temp2} # deployment error, temp2 is not defined in this branch\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=workflows)."]]