azure-dev
azure-dev copied to clipboard
[Issue] Make it easy to find azd env path
- [X] Make sure you've installed the latest version using instructions in the wiki
I want to easily get the azd env path, so that I can load that into my Python program's environments without doing an export. This is what I'm doing now:
def load_azd_env():
"""Get path to current azd env file and load file using python-dotenv"""
result = subprocess.run("azd env list -o json", shell=True, capture_output=True, text=True)
if result.returncode != 0:
raise Exception("Error loading azd env")
env_json = json.loads(result.stdout)
env_file_path = None
for entry in env_json:
if entry["IsDefault"]:
env_file_path = entry["DotEnvPath"]
if not env_file_path:
raise Exception("No default azd env file found")
logger.info(f"Loading azd env from {env_file_path}")
load_dotenv(env_file_path, override=True)
@vhvb1989 suggested that perhaps azd could make an environment variable for the current path.
Options:
- Use
azd env listlike above - Use .azure/config.json:
- The default environment is listed in
.azure/config.jsonin thedefaultEnvironmentproperty. You could build the path based on that. Read in that file, read thedefaultEnvironmentproperty, and build.azure/{defaultEnvironment}/.env.
- The default environment is listed in
- New azd command to add env vars to current shell:
azd env set-context. You'd call it before your python call.azd env set-context && python app.py - Add
--querywith JMESPath support. - Publish azd libraries for each language that has utility functions like this.
Related: https://github.com/Azure/azure-dev/issues/1697
Hm the jmespath would be the easiest add, I imagine, and is similar to Azure CLI SDK command args. I'm a little unsure about whether I'm going to run into the same issues as exporting if I were to do an azd set-context.