我正在使用 PowerShell 中的 Azure CLI 2.0 来管理存储帐户。我有一个 SAS 令牌(我将其存储在一个变量中)并且我想在命令中使用它。这是我正在运行的脚本:
$sasToken = 'st=2017-11-13T10%3A55%3A06Z&se=2017-11-13T11%3A27%3A06Z&sp=w&spr=https&sv=2017-04-17&sr=c&sig=%2BA6LDTwHes6JdxEAHXSvbYc70y30OcznjMVSyFbCXog%3D'
az storage blob upload `
--account-name mystorageaccount `
--container-name mycontainer `
--file c:\temp\file.txt `
--name file.txt `
--sas-token $sasToken
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到这个错误:
The specified resource does not exist.
'se' is not recognized as an internal or external command,
operable program or batch file.
'sp' is not recognized as an internal or external command,
operable program or batch file.
'spr' is not recognized as an internal or external command,
operable program …Run Code Online (Sandbox Code Playgroud) 我想使用Powershell splatting有条件地控制用于某些 Azure CLI 调用的参数。专门用于创建 CosmosDb 集合。
目标是这样的:
$params = @{
"db-name" = "test";
"collection-name"= "test2";
# makes no difference if I prefix with '-' or '--'
"-key" = "secretKey";
"url-connection" = "https://myaccount.documents.azure.com:443"
"-url-connection" = "https://myaccount.documents.azure.com:443"
}
az cosmosdb collection create @params
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只适用于db-name和collection-name。其他参数失败并显示此错误:
az : ERROR: az: error: unrecognized arguments: --url-connection:https://myaccount.documents.azure.com:443
--key:secretKey
Run Code Online (Sandbox Code Playgroud) 我正在构建我的 Azure 逻辑应用程序工作流,它应该检查一些条件并按照 Powershell 运行:
Stop-AzureWebsiteJob -Name MyWebsite -JobName MyWebJob
Start-AzureWebsiteJob -Name MyWebsite -JobName MyWebJob -JobType Continuous
Run Code Online (Sandbox Code Playgroud)
问题是:在 Azure 逻辑应用程序中调用此类脚本的最简单方法是什么?Powershell 似乎没有内置块/连接器,所以我想知道有哪些可能性。或者,使用类似的操作运行 az CLI 命令可能会更容易
我需要存储 AZ cli 命令的输出,该命令将获取我的私有 IP 作为变量。
我在 bash 脚本中使用以下内容:
echo "Fetching Monitoring Server IP"
SERVER_IP=$(az vm show -n ${THIS_VM_NAME} -g ${RSC_GRP_NAME} --query privateIps -o tsv)
echo "$SERVER_IP
Run Code Online (Sandbox Code Playgroud)
看起来这不起作用,因为当我回显该变量时,它返回空。
+ THIS_VM_NAME=XXXX-XX-XX-XX-XX
+ echo 'Fetching Monitoring Server IP'
Fetching Monitoring Server IP
++ az vm show -n XXXX-XX-XX-XX-XX3 -g XXXX-XX-XX-XX-XX --query privateIps -o tsv
+ SERVER_IP=
+ echo ''
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何对此的指示
我们的 Azure AD 租户中有一个企业应用程序,用于将用户配置到另一个 SaaS 平台。目前它只设置了“仅同步分配的用户和组”选项,因为我们不希望整个目录都被带过来。
我的问题很简单,有没有办法使用 az-cli(目前安装了 2.0.60 版)将用户添加到该企业应用程序中?
我检查了:
我希望会运行一个简单的角色分配命令,通过 upn/objectId 将用户添加到企业应用程序。
我团队中的每个人都在使用 Mac,如果有更好的支持,我们可以使用 PowerShellCore。
谢谢!
我在 Azure Devops 上的 CLI 任务中运行以下内容(内联)
rem Create the Service Plan
call az appservice plan create --resource-group %RESOURCE_GROUP% --name %SERVICE_NAME% --sku B1
Run Code Online (Sandbox Code Playgroud)
哪个工作得很好。但是,我必须滚动才能看到整个内容,而且我还有其他更长的命令。所以我试图把它分成多行,这样我就可以更清楚地看到发生了什么。
查看Microsoft Docs,看起来解决方案是在每一行的末尾加上一个反斜杠。所以我试过:
我试过了:
rem Create the Service Plan
call az appservice plan create \
--resource-group %RESOURCE_GROUP% \
--name %APP_SERVICE_NAME% \
--sku B1
Run Code Online (Sandbox Code Playgroud)
这没有用。然后我阅读了一些建议在每行末尾使用反引号/反引号的内容:
rem Create the Service Plan
call az appservice plan create `
--resource-group %RESOURCE_GROUP% `
--name %APP_SERVICE_NAME% `
--sku B1
Run Code Online (Sandbox Code Playgroud)
这也不起作用。非常感谢任何帮助。
如果您在第二步中输入,则取决于microsoft 网站上的 IoT 中心教程:
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
Run Code Online (Sandbox Code Playgroud)
在您的 cli 中,出现错误: *Invalid PartitionCount 4 - 值必须介于 2 和 2 之间。如果您联系支持代表,请包含此相关标识符:******-f9a8-4b36-a566-**** **,时间戳:2019-06-04 14:32:30Z,错误代码:IH400016.*
请参阅下面的答案以进行修复;)
由于 terraform azurerm 提供程序缺少对 azure webapp 访问限制的支持(请参阅 github 问题)。我们使用null_resourcewithlocal-exec来应用访问限制:
provisioner "local-exec" {
command = <<COMMAND
az webapp config access-restriction add --subscription ${self.triggers.subscription_id} --resource-group ${self.triggers.resource_group} \
--name ${self.triggers.web_app_name} --rule-name 'allow application gateway' --action Allow --vnet-name ${self.triggers.vnet_name} \
--subnet ${self.triggers.subnet_name} --priority 100
COMMAND
}
Run Code Online (Sandbox Code Playgroud)
我们的 terraform 代码稍后由 Azure DevOps 管道运行,该管道使用服务连接(使用服务主体)向 Azure 进行身份验证。以下任务正在尝试应用 terraform 资源:
provisioner "local-exec" {
command = <<COMMAND
az webapp config access-restriction add --subscription ${self.triggers.subscription_id} --resource-group ${self.triggers.resource_group} \
--name ${self.triggers.web_app_name} --rule-name 'allow application gateway' …Run Code Online (Sandbox Code Playgroud) 我主要使用脚本Az CLI中的命令bash来管理Azure资源。有时,我需要使用这些PowerShell core命令,因为Az CLI版本不存在。
我想在 shell 中同时使用Az CLI和PS core命令bash。我的意思是,我想要only onebash 脚本并在其中执行所有必需的命令。
您知道直接在 bash 脚本中运行PowerShell core命令的方法吗?
我想从我的 Azure DevOps Pipeline 执行 AZ cli 命令。在我的 YAML 文件中,我有这个:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Updating pip to latest
- script: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Updating to latest Azure CLI version.
- script: pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge
displayName: 'upgrade azure cli'
- script: az --version
displayName: 'Show Azure CLI version'
- script: az extension add -n azure-devops
displayName: …Run Code Online (Sandbox Code Playgroud)