如何将示例 war 文件部署到使用 terraform 创建的 azure 应用程序服务上

问题描述 投票:0回答:1

我正在尝试在 Azure Web 应用程序上部署 .war 文件。我通过 terraform 和存储容器创建了一个应用程序服务。我将示例 .war 文件上传到容器。我想从容器复制这个 .war 文件并部署到我创建的应用程序服务上。我怎样才能在 azure 和 terraform 中做到这一点。

感谢任何线索。enter image description here包含.war文件的存储容器Azure appservice created using terraform

请帮助我完成所有步骤。

我尝试通过部署到部署中心将文件从容器复制到azure appservice,但没有找到部署war文件的手动选项。所有这些都与 CI/CD 部署相关。如何在 azure 和 terraform 中内部部署 .war 文件。

azure terraform azure-web-app-service azure-virtual-machine azure-storage-account
1个回答
0
投票

不建议仅使用 Terraform 将

.war
文件从 Azure Blob 存储部署到 Azure Web 应用程序。 Terraform 非常适合创建和配置基础设施。对于部署,您仍然应该尝试使用部署脚本。下面是我要推荐的。

  1. Blob 存储:确保您的
    .war
    文件位于 Azure Blob 存储中。
  2. SAS 令牌:为 blob 生成共享访问签名 (SAS) 令牌以进行安全下载。
  3. Kudu REST API:使用通过 Kudu REST API 部署
    .war
    文件的脚本。
  4. 部署管道:使用 azure devops 或任何其他 CI/CD 工具中的部署管道来运行脚本并部署。

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"
© www.soinside.com 2019 - 2024. All rights reserved.