问题描述
我创建了一个docker容器并生成了我的azure函数应用代码的最终工件。容器中已经安装了Azure Cli。是否可以使用Azure Cli部署到Azure并传递凭据?
我尝试了以下命令(示例凭据):
az functionapp deployment user set --user-name "MY_USER" --password "MY_PASS" --subscription "MY_SUBSCRIPTION"
但是会导致以下错误:
Subscription 'MY_SUBSCRIPTION' not recognized. ValidationError: Please run 'az login' to setup account.
如果我登录(需要输入浏览器的密码),则上面的命令似乎有效。
这将是CI / CD的一部分,并且手动登录不是解决方案。有什么想法吗?
解决方法
是的,您需要进行身份验证。这里有几个身份验证选项:Sign in with Azure CLI
使用服务主体进行身份验证是编写安全脚本或程序的最佳方法
Sign in with a service principal
,您将需要使用service principle进行身份验证。但是由于您提到您正在使用Jenkins,所以幸运的是,如果您在Jenkins仪表板中进行设置,则rich set of plugins available for different Azure resources可以为您处理身份验证。例如,在这种情况下,您使用的是az cli
,可以为其安装https://plugins.jenkins.io/azure-cli/