azure-dev icon indicating copy to clipboard operation
azure-dev copied to clipboard

[Issue] Make it easy to find azd env path

Open pamelafox opened this issue 1 year ago • 1 comments

  • [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.

pamelafox avatar Jul 03 '24 21:07 pamelafox

Options:

  1. Use azd env list like above
  2. Use .azure/config.json:
    • The default environment is listed in .azure/config.json in the defaultEnvironment property. You could build the path based on that. Read in that file, read the defaultEnvironment property, and build .azure/{defaultEnvironment}/.env.
  3. 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
  4. Add --query with JMESPath support.
  5. Publish azd libraries for each language that has utility functions like this.

jongio avatar Jul 05 '24 19:07 jongio

Related: https://github.com/Azure/azure-dev/issues/1697

jongio avatar Jul 08 '24 15:07 jongio

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.

pamelafox avatar Jul 08 '24 20:07 pamelafox