我正在尝试在 Azure Web 应用程序上部署 .war 文件。我通过 terraform 和存储容器创建了一个应用程序服务。我将示例 .war 文件上传到容器。我想从容器复制这个 .war 文件并部署到我创建的应用程序服务上。我怎样才能在 azure 和 terraform 中做到这一点。
请帮助我完成所有步骤。
我尝试通过部署到部署中心将文件从容器复制到azure appservice,但没有找到部署war文件的手动选项。所有这些都与 CI/CD 部署相关。如何在 azure 和 terraform 中内部部署 .war 文件。
不建议仅使用 Terraform 将
.war
文件从 Azure Blob 存储部署到 Azure Web 应用程序。 Terraform 非常适合创建和配置基础设施。对于部署,您仍然应该尝试使用部署脚本。下面是我要推荐的。
.war
文件位于 Azure Blob 存储中。.war
文件的脚本。Bash 脚本 (
deploy_war.sh
):
WEBAPP_NAME="your_webapp_name"
RESOURCE_GROUP="your_resource_group"
WAR_FILE_URL="https://your_storage.blob.core.windows.net/container/file.war?${SAS_TOKEN}"
PUBLISH_PROFILE=$(az webapp deployment list-publishing-profiles --name $WEBAPP_NAME --resource-group $RESOURCE_GROUP --query "[?publishMethod=='MSDeploy'].{user:userName,pass:userPWD}" -o tsv)
USERNAME=$(echo $PUBLISH_PROFILE | awk '{print $1}')
PASSWORD=$(echo $PUBLISH_PROFILE | awk '{print $2}')
curl -X POST -u $USERNAME:$PASSWORD -H "Content-Type: application/json" -d "{\"packageUri\":\"$WAR_FILE_URL\"}" "https://$WEBAPP_NAME.scm.azurewebsites.net/api/wardeploy"