Open furnivall opened 1 year ago
Hi @furnivall,
2.50.0 is not the latest Azure CLI(2.51.0).
Please upgrade to the latest Azure CLI version by following https://learn.microsoft.com/en-us/cli/azure/update-azure-cli.
Thank you for opening this issue, we will look into it.
Thank you for opening this issue, we will look into it.
No problem, if you need anything specific about my setup I am happy to provide. Just spent the day bashing my head against the computer to work out why I wasn't able to connect keyvault to my local environment!
Here's a screenshot of the relevant debugging output
Hi @furnivall,
2.50.0 is not the latest Azure CLI(2.51.0).
Please upgrade to the latest Azure CLI version by following https://learn.microsoft.com/en-us/cli/azure/update-azure-cli.
Also, your bot is broken - it's physically impossible for MacOS users with Homebrew to upgrade to this version at current. No idea where to raise a bug ticket but might be worth doing something about.
edit: scratch that, have raised https://github.com/Azure/azure-cli/pull/27112
I'll also raise a sister issue on azure-sdk-for-python so they're aware of it too.
I believe you are talking about https://github.com/Azure/azure-sdk-for-python/issues/31493
You are seeing the New Azure CLI version available. Running 'az upgrade' to update automatically.
warning because you have enabled Automatic Update. You may turn it off following https://learn.microsoft.com/en-us/cli/azure/update-azure-cli
az config set auto-upgrade.enable=no
See https://github.com/Azure/azure-cli/issues/17886#issuecomment-862044518
Azure CLI's Automatic Update is indeed guarded by a verify_is_a_tty
check:
When Python SDK subprocesses az
, it connects the stdin
of itself to the subprocess az
:
kwargs: Dict[str, Any] = {
"stderr": subprocess.PIPE,
"cwd": working_directory,
"universal_newlines": True,
"timeout": timeout,
"env": dict(os.environ, AZURE_CORE_NO_COLOR="true"),
}
return subprocess.check_output(args, **kwargs)
https://docs.python.org/3/library/subprocess.html#frequently-used-arguments
stdin, stdout and stderr: With the default settings of None, no redirection will occur; the child’s file handles will be inherited from the parent.
See https://github.com/Azure/azure-cli/issues/17886#issuecomment-1669382495
Describe the bug
Preface: This may well be intended behaviour, so I apologise if so. However, I am currently unable to upgrade Azure CLI locally due to https://github.com/Homebrew/homebrew-core/pull/138158 & https://github.com/Azure/azure-cli/issues/27047 so I did a bit of digging. I'll also raise a sister issue on azure-sdk-for-python so they're aware of it too.
Description: DefaultAzureCredential runs through a bunch of options, including AzureCliCredential.
When it reaches this line within AzureCliCredential, it will always fail the timeout with an outdated software version.
This is because the cli prompt returned by
az account get-access-token --output json --resource <whatever>
embedded within that file will always return the following, which requires a user response to complete.Steps to reproduce: I have been able to confirm this on a minimal reproduction here. It will require the replacement of some env vars:
func start
to startreturn subprocess.check_output(args, **kwargs)
venv/lib/python3.10/site-packages/azure/identity/_credentials/azure_cli.py
- github link to specific linecurl http://localhost:7071/api/hello
to trigger the http functionRelated command
All azure commands that trigger an update notification, but specifically
az account get-access-token --output json --resource <whatever>
in this instanceErrors
Executing 'Functions.AzureTrigger' (Reason='This function was programmatically called via the host APIs.', Id=df95b1b4-cdce-4775-abe4-71e6f6cab282) DefaultAzureCredential failed to retrieve a token from the included credentials. Attempted credentials:
Issue script & Debug output
N/A, description covers it.
Expected behavior
Auth token to be generated as standard.
Environment Summary
Additional context
I am fairly certain this won't just be hitting the python sdk, and definitely not just function apps.