I used to run an Apply() on a resource group to get it's ID as a string, so that I could instantiate a helper class. I changed the helper class to use Output<string> values everywhere - meaning that the async nature of the construction can be mostly ignored in the rest of my code.