我在尝试运行 Azure 函数(位于 PowerShell 中)时收到此错误。 PowerShell 脚本在本地运行时可以正常工作。
错误:
[Error] ERROR: No subscription found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Connect-AzAccount to login
在requirements.ps1中:
@{
'Az.Accounts' = '1.9.0'
'Az.Resources' = '1.1.2'
'AzTable' = '2.0.3'
'Az.Storage' = '1.7.0'
'Az.KeyVault' = '1.5.1'
}
在run.ps1
中,我添加了Import-Module
命令:
Import-Module Az.Resources
Import-Module Az.Accounts
Import-Module Az.KeyVault
Import-Module AzTable
“run.ps1
”中的前几行:
$activeKey = Get-AzKeyVaultManagedStorageAccount -VaultName $keyVaultName -Name $storageAccountName
# Get Storage Account Key
$key = (Get-AzStorageAccountKey -ResourceGroupName $rgName -Name $storageAccountName)
在profile.ps1
中:
if ($env:MSI_SECRET) {
Disable-AzContextAutosave
Connect-AzAccount -Identity
}
谢谢!
最佳答案
请确保:
- Enable a managed identity 。使用系统分配的身份更容易,使用用户分配的身份需要 one more step .
- Assign appropriate roles在身份的目标订阅上。
- 在
run.ps1
代码中,调用Set-AzContext
以选择目标订阅。
通常不需要在 run.ps1
中显式导入模块。
关于azure - 运行在 PowerShell 中编码的 Azure Functions 时出现 Connect-AzAccount 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63888082/