gpt4 book ai didi

powershell - 使用 Azure Powershell 函数列出我的所有 Azure 网站

转载 作者:行者123 更新时间:2023-12-02 23:10:02 26 4
gpt4 key购买 nike

我正在测试新的 Azure 函数,并且想要编写一个返回我所有 Azure 网站的函数。但不用说我遇到了一些问题,而且文档仍然很少。

run.ps1

# Get the input request
$in = Get-Content $req -Raw | ConvertFrom-Json

Write-Output "Loading..."

Get-AzureRmSubscription -SubscriptionId $in.SubscriptionId | Select-AzureRmSubscription
$Result = Get-AzureWebsite
Write $Result

该函数以订阅 ID 作为参数,并应该列出可用的网站。但我得到了这个异常(exception)。

2017-06-13T12:43:57.763 Get-AzureRmSubscription : Run Login-AzureRmAccount to login.

所以我尝试添加 Login-AzureRmAccount 但后来我明白了。

2017-06-13T12:45:04.959 Login-AzureRmAccount : Error HRESULT E_FAIL has been returned from a call to a COM component.

这就是我现在的立场。

更新

在 @4c74356b41 的帮助下,我现在可以登录了。我的登录代码如下所示。

$subscriptionId = "<SubscriptionId>"
$tenantid = "<TenantId>"
$clientid = "<ApplicationId>"
$password = "<Password>"
$userPassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$userCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $clientid, $userPassword
Add-AzureRmAccount -TenantId $tenantid -ServicePrincipal -SubscriptionId $subscriptionId -Credential $userCredential

当我测试代码时,我可以看到这是有效的。但一旦我添加了这一行。

Select-AzureSubscription -Current -SubscriptionId $subscriptionId

我遇到了这个异常。

Select-AzureSubscription : The subscription id <SubscriptionId> doesn't exist.
Parameternavn: id
At line:11 char:1
+ Select-AzureSubscription -Current -SubscriptionId $subscriptionId
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Select-AzureSubscription], ArgumentException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.Profile.SelectAzureSubscriptionCommand

我也尝试添加这一行。

Get-AzureRmSubscription –SubscriptionId $subscriptionId | Select-AzureRmSubscription

看起来正在工作,它只发出警告警告:无法获取租户“Common”的 token ,但仍然列出正确的订阅详细信息,没有任何异常。

然后当我尝试时

Get-AzureWebsite

我遇到了这个异常。

Get-AzureWebsite : No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription.
At line:15 char:1
+ Get-AzureWebsite
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzureWebsite], ApplicationException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.Websites.GetAzureWebsiteCommand

最佳答案

那么,您希望如何在不进行身份验证的情况下使用您的订阅?您希望任何人都能够在没有任何验证的情况下修改您的资源吗?所以你需要在做任何事情之前进行身份验证。

在 Azure Function 中使用 powershell 与在计算机上使用 powershell 没有什么不同(模块管理除外)。

要登录,您可以使用 service principal auth ang 登录,例如:

Add-AzureRmAccount -TenantId $tenantid -ServicePrincipal -SubscriptionName $name `
-Credential ([pscredential]::new($clientid,(ConvertTo-SecureString -String $password -AsPlainText -Force)))

您可以用环境变量替换变量(在代码中硬编码)。

关于powershell - 使用 Azure Powershell 函数列出我的所有 Azure 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44522027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com