标签: azure-cli

为什么某些 Azure CLI 命令需要 az login

在我们的 VSTS 发布管道中,我们想要调用一个 powershell 脚本,该脚本为我的 Azure 函数之一添加函数密钥(使用密钥管理 rest API)。

我根据这篇文章创建了一个脚本:https : //www.markheath.net/post/managing-azure-function-keys

Param(
    [string] [Parameter(Mandatory=$true)] $ResourceGroup,
    [string] [Parameter(Mandatory=$true)] $AppName,
    [string] [Parameter(Mandatory=$true)] $FunctionName,
    [string] [Parameter(Mandatory=$true)] $KeyName,
    [string] [Parameter(Mandatory=$true)] $KeyValue
    )

    function getAuthenticationToken([string]$appName, [string]$resourceGroup)
    {
    $user = az webapp deployment list-publishing-profiles -n $appName -g $resourceGroup `
            --query "[?publishMethod=='MSDeploy'].userName" -o tsv

    $pass = az webapp deployment list-publishing-profiles -n $appName -g $resourceGroup `
            --query "[?publishMethod=='MSDeploy'].userPWD" -o tsv

    $pair = "$($user):$($pass)"
    $encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))

    $jwt = Invoke-RestMethod -Uri "https://$appName.scm.azurewebsites.net/api/functions/admin/token" -Headers @{Authorization=("Basic {0}" -f $encodedCreds)} …
Run Code Online (Sandbox Code Playgroud)

powershell azure azure-cli azure-devops azure-pipelines

5
推荐指数
1
解决办法
1181
查看次数

用于创建应用注册的服务主体权限

我使用服务主体作为 azure cli 的登录项。此服务主体的角色是“所有者”。

我正在尝试运行:

az ad app list
Run Code Online (Sandbox Code Playgroud)

 az ad app create --display-name "Test application 2" 
Run Code Online (Sandbox Code Playgroud)

并得到错误:

当前用户注册应用程序需要目录权限。有关如何配置,请参阅“ https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal ”。原始错误:权限不足,无法完成操作。

我应该为这个服务主体分配什么角色?

azure azure-active-directory azure-cli service-principal

5
推荐指数
1
解决办法
1605
查看次数

从 azure CLI 获取租户名称

我想THIS-THING-HERE.onmicrosoft.com使用 Azure CLI检索租户名称。我真的无法在文档中找到。

编辑:当我调用 azure 帐户列表时,我没有在提供的域中获得用户名,因为我使用公司电子邮件登录:

[
  {
    "cloudName": "AzureCloud",
    "id": "46ee2f65-7112-4c96-ad0a-3ff6ca22a615",
    "isDefault": true,
    "name": "Visual Studio Professional",
    "state": "Enabled",
    "tenantId": "1caf5d6b-58cb-40e6-88b3-eb9ab9c0c010",
    "user": {
      "name": "a.krajniak@avanade.com",
      "type": "user"
    }
  },
  {
    "cloudName": "AzureCloud",
    "id": "1efd84d6-173f-42cc-80db-7b2c17eb0edd",
    "isDefault": false,
    "name": "Microsoft Azure Enterprise",
    "state": "Enabled",
    "tenantId": "c48d02ad-7efd-4910-9b51-ebb7a4b75379",
    "user": {
      "name": "a.krajniak@avanade.com",
      "type": "user"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

azure azure-cli

5
推荐指数
3
解决办法
4767
查看次数

如何使用 CLI 获取 VMSS 的私有 IP

我正在尝试自动化一些我们的 BAT 脚本,为此我们的脚本需要知道每个 VMSS 实例的私有 IP(实例没有公共 IP)。

有没有办法使用 azure cli 查询特定 VMSS 下所有实例的私有 IP。我尝试了 LB 和 VMSS 的几个命令,但还没有找到解决方案。

az vmss show -g <rg> -n <vmss>
az vmss list-instances -g <rg> -n <vmss>
az vmss nic list-vm-nics -g <rg> --vmss-name <vmss> --ids <id>
az network lb address-pool list -g <rg> --lb-name <lb>
az vmss list-instance-connection-info -g <rg> -n <vmss>
Run Code Online (Sandbox Code Playgroud)

任何帮助都是非常可观的,我不是在寻找 powershell。

azure azure-cli azure-vm-scale-set

5
推荐指数
1
解决办法
1974
查看次数

Azure DevOps:无法识别 Powershell“Get-AzSubscription”

我正在使用 Azure PowerShell 从 azure DevOps 部署 ARM 模板,如下所示。

在此处输入图片说明

这是订阅级部署。我得到低于错误。

术语“Get-AzSubscription”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

Install-Module -Name Az -AllowClobber -Scope CurrentUser
Import-Module Az
$context = Get-AzSubscription -SubscriptionId xxxxxxxx
Set-AzContext $context


New-azdeployment -Name "SKL" -Location westeurope -TemplateFile .\delegatedResourceManagement.json -TemplateParameterFile .\delegatedResourceManagement.parameters.json
Run Code Online (Sandbox Code Playgroud)

日志:

##[section]Starting: Azure PowerShell script: InlineScript
==============================================================================
Task         : Azure PowerShell
Description  : Run a PowerShell script within an Azure environment
Version      : 3.153.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-powershell
==============================================================================
##[command]Import-Module -Name C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1 -Global
##[command]Clear-AzureRmContext -Scope Process
##[command]Disable-AzureRmContextAutosave -ErrorAction Stop
##[command]Add-AzureRMAccount -ServicePrincipal …
Run Code Online (Sandbox Code Playgroud)

azure azure-cli azure-devops azure-pipelines

5
推荐指数
1
解决办法
1万
查看次数

从 ACR 存储库获取最新的图像标签

我需要在管道中使用 bash 命令从 Azure 容器注册表 (ACR) 获取最新的映像标签,并使用该标签进行容器部署。以下是我可以使用 Azure cli 找到的内容:

  $ az acr repository show-tags --name myacr --repository myrepo --top 1
Run Code Online (Sandbox Code Playgroud)

然而,这返回了我最旧的标签。

如何从 ACR 存储库获取最新推送的标签?

azure-cli azure-pipelines acr

5
推荐指数
1
解决办法
6950
查看次数

使用 Azure CLI 和 PublishSettings 将 Net Core 应用发布到 azurewebsites.net

我正在尝试myapp.PublishSettings使用 Azure CLI将 .Net Core 应用程序发布到 Azure ,但找不到执行此操作的命令

我认为它可能与az webapp update但我看不到在哪里可以输入我的 PublishSettings 阅读官方文档

.net azure azure-cli .net-core azure-web-app-service

5
推荐指数
1
解决办法
166
查看次数

是否有一些工具/命令可以从 powershell 运行 azcli 文件?

我正在使用 VS Code,为了在编写 azure cli 脚本时获得一些智能感知,我将所有内容都放在一个.azcli文件中。我现在的问题是如何从 powershell 终端执行该文件?此外,是否可以在这样的脚本中使用参数,例如:

az servicebus topic create -g $resourceGroup -n $topicName --namespace-name $namespace
Run Code Online (Sandbox Code Playgroud)

是否可以调用一个azcli类似于上面的文件并$resourceGroup, $topicName, $namespace从 powershell 提供 as 参数?

powershell azure azure-cli

5
推荐指数
1
解决办法
768
查看次数

将带有标签的 Azure 资源组导出到 csv

我对 Powershell 有点陌生,我正在尝试制作一个脚本,该脚本从 Azure 资源组(包括标签)获取所有数据并将输出导出到 CSV。

据我所知,有几种方法可以做到,AzureCLI、AzureRM(Powershell) 和 Az(Powershell)。

示例 1:此“单行脚本”完成工作,但需要输入实际标签,而不是从 Azure 自动检索

$resourceGroupList = Get-AzResourceGroup | select-Object -Property ResourceGroupName,Location,ResourceId,ProvisioningState,@{N='Enviroment (Tag)'; E={$_.Tags.Enviroment}} ,@{N='Ownership (Tag)'; E={$_.Tags.Ownership}} 
$resourceGroupList | export-csv test.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

csv输出

我发现的另一种方法是使用 AzureCLI

$resourceGroupList = az group list --query "[].{ResourceGroupName:name,Location:location,ResourceType:type,provisioningState:properties,Tags:tags,ResourceGroupID:id}" -o json | convertfrom-json
$resourceGroupList | Export-Csv test.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

这是输出:

我真的很纠结数组以及如何将它们格式化为以示例 1 的格式导出到 CSV。

任何帮助/想法将不胜感激!

谢谢!

powershell azure azure-cli

5
推荐指数
1
解决办法
2685
查看次数

github 操作 azure/login@v1 无法在自托管 git runner 上工作?

有人熟悉这个问题吗?https://github.com/Azure/cli中的示例不适用于自托管 github 运行器,看起来是这样az is missing

gitaction.yml

name: auzure-deployment

on:
  push:
    branches: [ main ]

jobs:
  myjob:
    runs-on: [self-hosted, linux]
    steps:
    - uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    - uses: azure/CLI@v1
      with:
        azcliversion: 2.0.72
        inlineScript: |
          az account list
Run Code Online (Sandbox Code Playgroud)

错误

Runner group name: 'Default'
Machine name: '98de1add3979'
GITHUB_TOKEN Permissions
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'azure/login@v1'
Download action repository 'azure/CLI@v1'
0s
Run azure/login@v1
Error: Az CLI Login failed. Please …
Run Code Online (Sandbox Code Playgroud)

github azure-cli github-actions

5
推荐指数
1
解决办法
8018
查看次数