У меня есть приложение azure, которое я использую для простого тестирования. Чтобы (полу) автоматически запускать некоторые тесты, я хочу иметь возможность автоматически загружать набор функциональных приложений в azure из скрипта python.
Поэтому я os.chdir()
в соответствующую папку, а затем попробуйте запустить команду publi sh.
Если я запускаю команду publi sh вручную (func azure functionapp publish <name> --python --build remote
), все работает нормально. Однако, если я вызываю команду из PyCharm, я всегда получаю сообщение об ошибке (здесь усечено)
The format of value 'Bearer eyJ0eXAiO...
' is invalid
Мой python код выглядит следующим образом:
import subprocess
import shutil
try:
result = subprocess.run([
shutil.which('func'),
'azure', 'functionapp',
'publish', azure_function_app_resource_name,
'--python',
'--build remote'
], text=True)
if result.returncode > 0:
print('Failed')
else:
print('OK')
except FileNotFoundError:
print('Failed')
Перед выполнением этого I Убедитесь, что функции azure cli / core доступны, запустив и оценив выходные данные следующих операторов. Это работает безупречно.
subprocess.run([shutil.which('az'), '--version'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
subprocess.run([shutil.which('func'), '--version'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
Я также могу без проблем получить настройки приложения-функции в python, поэтому проблема не в том, чтобы не войти в систему:
result = subprocess.run([
shutil.which('az'), 'functionapp', 'config', 'appsettings', 'list',
'--name', azure_function_app_resource_name,
'--resource-group', azure_resource_group_name
], capture_output=True, text=True)
Обновление : Это на Windows 10, Python 3.7, PyCharm 2019.3.4
У кого-нибудь есть идея или рабочий код?
Примечание : я знаю , что azure.core.cli
существует, однако он плохо документирован и не помогает с инструментами основных функций azure.