如何在 Azure Function App 中使用 AZ Cli 或 Bash?
How to use AZ Cli or Bash inside Azure Function App?
是否可以在 Azure Function App 中调用 AZ Cli / Bash?
我的目标是在下班后自动关闭 ADX 集群,这样可以节省成本。
在身份验证方法使用用户分配身份 (UAI) 的情况下调用类似的东西会很好:
https://docs.microsoft.com/en-us/cli/azure/kusto/cluster?view=azure-cli-latest#az_kusto_cluster_stop
我会选择 python.mgmt.kusto API 但它与 UAI 缺乏联系:
编辑:
KustoManagementClient 中没有接口是不正确的。您需要使用具有接口(ManagedIdentityCredential、DefaultAzureCredential)的包 python-identity 从默认识别方法或通过传递 UAI id 显式生成凭证实例。 KustoManagementClients 可以使用凭据。
编辑2:
我想和你分享我的经验和我最终的解决方案。
如果您想将相同的代码用于本地测试或在云中,例如,生成凭证实例是最好的方法。在功能应用程序的开发过程中。通常 API DefaultAzureCredential 应该可以完成这项工作,但它没有正常工作。在我的例子中,对于本地测试,我明确地告诉它使用我的 CLI 登录:
from azure.identity import DefaultAzureCredential
credentials = DefaultAzureCredential(
exclude_environment_credential=True,
exclude_managed_identity_credential=True,
exclude_powershell_credential=True,
exclude_visual_studio_code_credential=True,
exclude_shared_token_cache_credential=True,
exclude_interactive_browser_credential=True,
exclude_cli_credential=False
)
在我不得不去的云站点上
credentials = ManagedIdentityCredential(client_id="******")
最后我的集群终于关闭了:
mclient = KustoManagementClient(credentials, SUBSCRIPTION_ID)
cluster_operations = mclient.clusters
cluster_operations.begin_start(RG, ADX)
我必须承认,我最后没有检查 python CLI 界面,但该线程中接受的答案显示了如何执行此操作。
谢谢!
是的,您可以 运行 Azure CLI 在函数应用程序中。 Azure CLI 是一个可执行 Python 包,您可以从 PyPI page.
中找到它
如果您按照官方教程Quickstart: Create an HTTP triggered Python function in Azure to create an Azure Function App for Python, you can try to install Azure CLI as a Python package via pip install azure-cli
, and then refer to the other SO thread 使用您的参数调用它来创建您想要的资源。
或者,要安装 Azure CLI,您可以按照下面的建议将整个 Azure CLI 目录从本地机器复制到 kudu 控制台 。
是否可以在 Azure Function App 中调用 AZ Cli / Bash?
我的目标是在下班后自动关闭 ADX 集群,这样可以节省成本。
在身份验证方法使用用户分配身份 (UAI) 的情况下调用类似的东西会很好:
https://docs.microsoft.com/en-us/cli/azure/kusto/cluster?view=azure-cli-latest#az_kusto_cluster_stop
我会选择 python.mgmt.kusto API 但它与 UAI 缺乏联系:
编辑: KustoManagementClient 中没有接口是不正确的。您需要使用具有接口(ManagedIdentityCredential、DefaultAzureCredential)的包 python-identity 从默认识别方法或通过传递 UAI id 显式生成凭证实例。 KustoManagementClients 可以使用凭据。
编辑2: 我想和你分享我的经验和我最终的解决方案。
如果您想将相同的代码用于本地测试或在云中,例如,生成凭证实例是最好的方法。在功能应用程序的开发过程中。通常 API DefaultAzureCredential 应该可以完成这项工作,但它没有正常工作。在我的例子中,对于本地测试,我明确地告诉它使用我的 CLI 登录:
from azure.identity import DefaultAzureCredential
credentials = DefaultAzureCredential(
exclude_environment_credential=True,
exclude_managed_identity_credential=True,
exclude_powershell_credential=True,
exclude_visual_studio_code_credential=True,
exclude_shared_token_cache_credential=True,
exclude_interactive_browser_credential=True,
exclude_cli_credential=False
)
在我不得不去的云站点上
credentials = ManagedIdentityCredential(client_id="******")
最后我的集群终于关闭了:
mclient = KustoManagementClient(credentials, SUBSCRIPTION_ID)
cluster_operations = mclient.clusters
cluster_operations.begin_start(RG, ADX)
我必须承认,我最后没有检查 python CLI 界面,但该线程中接受的答案显示了如何执行此操作。
谢谢!
是的,您可以 运行 Azure CLI 在函数应用程序中。 Azure CLI 是一个可执行 Python 包,您可以从 PyPI page.
中找到它如果您按照官方教程Quickstart: Create an HTTP triggered Python function in Azure to create an Azure Function App for Python, you can try to install Azure CLI as a Python package via pip install azure-cli
, and then refer to the other SO thread
或者,要安装 Azure CLI,您可以按照下面的建议将整个 Azure CLI 目录从本地机器复制到 kudu 控制台