Best Practice for different regions

Does anyone have a suggestion on service ID’s for different regions(DEV, QA, PROD). I have to run a service in each region with different service ID’s.

service foo {
name = ‘foo’
credential = DEV|QA|PROD
}

Currently I have utilizing a separate configuration data file, but I’m open to anything.

Either configuration data file or a configuration database that you can build and query from. At some point, that database is probably going to be necessary for a lot of different tasks, so starting that build-out might be proactive.

You might also be able to address this using a Release Management solution. For example, I would approach this scenario in Visual Studio Team Services by setting those values as stored variables in the service, and then call them in each Environment for the Release definition.

More information about this approach is documented here (but not specifically for DSC, and it assumes you are well versed in VSTS):
https://www.visualstudio.com/en-us/docs/build/concepts/definitions/release/variables

There is a blog post series here as of April 2017, that introduces some of the concepts of how and why to use VSTS with DSC. I will reach out to the author and suggest a Release Management post would also be very helpful.
https://blogs.technet.microsoft.com/automagically/