我有this Azure Powershell script,它成功地将SQL Azure数据库备份到Azure Blob。
目前的形式,它要求我通过AD登录。
我现在需要实现此脚本以特定间隔通过Azure功能执行。
脚本的第一个片段:
$subscriptionId = "YOUR AZURE SUBSCRIPTION ID"
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionId $subscriptionId
因此我不需要使用Login-AzureRmAccount,而是将其替换为不需要人工输入的方法。
我找到了这个链接:
https://cmatskas.com/automate-login-for-azure-powershell-scripts/
这是一次性手动创作 - 非常完美。
然后,作者登录到这个新创建的应用程序
$psCred = New-Object System.Management.Automation.PSCredential($azureAccountName, $azurePassword)
Add-AzureRmAccount -Credential $psCred -TenantId e801a3ad-3690-4aa0-a142-1d77cb360b07 -ServicePrincipal
我的问题:
这是我应该做些什么才能自动化我的应用程序并阻止人类登录?
在步骤1中创建的Azure AD应用 - 我可以将此应用作为我的Azure功能的起点吗?
答案 0 :(得分:5)
答案 1 :(得分:1)
要在Azure Functions中使用Azure PowerShell,您可以在另一个SO线程中引用以下响应。示例是HTTP-Trigger,但您可以修改它以使用Timer-Trigger作为用例。这是链接:
Azure Function role like permissions to Stop Azure Virtual Machines
答案 2 :(得分:0)
以管理员身份运行PowerShell,您需要在PowerShell中安装AzureRM,
Login-AzureRmAccount
Get-AzureRmSubscription
Select-AzureRmSubscription -SubscriptionId xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Save-AzureRmProfile -Path "C:\AzureScripts\profile.json"
Select-AzureRmProfile -Path "C:\AzureScripts\profile.json"
将此行置于.ps1文件之上, 您不需要人工输入 。
参考:http://www.smartcoding.in/blog/auto-login-azure-power-shell