[英]Deploy to an Azure Web App with a private endpoint
我已經配置了一個帶有私有端點的 Azure Web 應用程序,並希望使用 Azure DevOps 部署到它。 I have found this possibility using Azure Blob storage and Azure CLI: https://azure.github.io/AppService/2021/03/01/deploying-to-network-secured-sites-2.html
以下 Azure CLI webapp 部署命令:
az webapp deploy --name $WEBAPP --resource-group $GROUP --type zip --src-url $ZIP_URL --async false
但是給出了以下 Http 403 錯誤: The web app you have attempted to reach has blocked your access.
我正在使用服務主體登錄。
任何線索我在這里缺少什么?
我遇到了同樣的問題並打開了 Microsoft 支持票。 “az webapp deploy --src-url”有一個問題:它實際上不通過ARM API,而是直接到web-app的scm端點(由於私有端點而被阻止)。 報告了一個錯誤來解決此問題: https ://github.com/Azure/azure-cli/issues/21168
解決方案不是使用 Azure cli 命令“az webapp deploy”,而是直接調用 ARM API,如下所示:
az rest --method PUT --uri https://management.azure.com/subscriptions/${SUBSCRIPTIONID}/resourceGroups/${RESOURCEGROUP}/providers/Microsoft.Web/sites/${WEBAPP}/extensions/onedeploy?api-version=2022-03-01 --body '{"properties": {"type": "zip", "packageUri": ${ARTIFACTURL} }}'
此調用將通過 ARM 進行,不會被您的 Webapp 阻止
使用之前建議的解決方案,我遇到了以下錯誤:
"ERROR: Bad Request({"error":{"code":"BadRequest","message":"System.NullReferenceException: Object reference not set to an instance of an object.\r\n at Kudu.Services.Deployment.PushDeploymentController.<OneDeploy>d__13.MoveNext() in C:\\Kudu Files\\Private\\src\\master\\Kudu.Services\\Deployment\\PushDeploymentController.cs:line 187"}}"
我通過將"packageUri": ${ARTIFACTURL}
調整為"packageUri": "'"${ARTIFACTURL}"'"
解決了這個問題。
我的完整工作任務如下所示:
- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: 'customer a'
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
EXPIRY=$(date -u -d "$EXPIRY_TIME" '+%Y-%m-%dT%H:%MZ')
az storage blob upload -f $(Pipeline.Workspace)/**/*.zip --account-name $ACCOUNT -c $CONTAINER
ZIP_URL=$(az storage blob generate-sas --full-uri --permissions r --expiry $EXPIRY --account-name $ACCOUNT -c $CONTAINER -n s.zip | xargs)
az rest --method PUT --uri https://management.azure.com/subscriptions/${SUBSCRIPTIONID}/resourceGroups/${GROUP}/providers/Microsoft.Web/sites/${WEBAPP}/extensions/onedeploy?api-version=2022-03-01 --body '{"properties": {"type": "zip", "packageUri": "'"${ZIP_URL}"'" }}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.