【发布时间】:2021-11-22 12:03:53
【问题描述】:
我一直在尝试为我的密钥保管库设置托管服务标识策略,但我无法在我的 yml.xml 中创建所需的变量。根据管道输出,以下代码中的变量“indentity”被填充,但变量 WEB_APP_MANAGED_IDENTITY 没有。因此,最后一个任务“为函数应用添加设置策略”自然会失败。我做错了什么?
parameters:
serviceConnector: ''
appResourceGroupName: ''
appName: ''
appPlan: ''
appInsightsName: ''
location: ''
planSkuName: ''
PostgresServerName: ''
AdminUserName: ''
AdminPassWord: ''
pgSkuName: ''
subscriptionId: ''
keyVaultName: ''
devOpsServicePrincipalObjectId: ''
verkkoGroupServicePrincipalObjectId: ''
stages:
- stage: 'CREATE_SERVICE_APP'
displayName: 'Create Osakeekstra service app'
jobs:
- job:
steps:
- checkout: none
- task: AzureCLI@2
displayName: 'Create and configure web app'
inputs:
azureSubscription: '$(serviceConnector)'
scriptLocation: 'inlineScript'
scriptType: 'bash'
failOnStandardError: false
inlineScript: |
echo ">>>> Create app service plan"
az appservice plan create \
--name $(appPlan) \
--resource-group $(appResourceGroupName) \
--location $(location) \
--sku $(planSkuName) \
--is-linux 2>/dev/null
# create web app
echo ">>>> Create web app"
az webapp create \
--resource-group $(appResourceGroupName) \
--name $(appName) \
--runtime "Python|3.7" \
--plan $(appPlan)
# enable managed identity
echo ">>>> Enable managed identity"
identity=`az webapp identity assign \
--name $(appName) \
--resource-group $(appResourceGroupName) \
--query principalId -o tsv`
echo "##vso[task.setvariable variable=WEB_APP_MANAGED_IDENTITY]$identity"
echo $WEB_APP_MANAGED_IDENTITY
echo $identity
echo ">>>> Enabled managed identity"
- task: AzureCLI@2
displayName: 'Create key vault'
inputs:
scriptType: bash
azureSubscription: '$(serviceConnector)'
scriptLocation: 'inlineScript'
inlineScript: |
echo ">>>> Create key vault"
az keyvault create \
--name $(keyVaultName) \
--resource-group $(appResourceGroupName) \
--location $(location) \
--no-self-perms \
--sku standard \
--enable-soft-delete true \
2>&1
# add set policy for managed service identities
echo ">>>> Add set policy for function app"
az keyvault set-policy \
--name $(keyVaultName) \
--secret-permissions get \
--object-id $(FUNCTION_APP_MANAGED_IDENTITY)
failOnStandardError: true
我把最后一个命令改成了这个
# enable managed identity
echo ">>>> Enable managed identity"
identity=`az webapp identity assign \
--name $(appName) \
--resource-group $(appResourceGroupName) \
--query principalId -o tsv`
# add set policy for managed service identities
echo ">>>> Add set policy for function app"
az keyvault set-policy \
--name $(keyVaultName) \
--secret-permissions get \
--object-id $(indentity)
我收到错误:indentity: command not found 错误:参数--object-id:需要一个参数
【问题讨论】:
标签: azure-devops azure-web-app-service azure-keyvault