当标准逻辑应用程序包含在Azure服务环境(ASEv3(中的应用程序服务计划中时,我找不到将工作流部署到标准逻辑应用的方法
标准逻辑应用程序WIHOUT ASE
当我使用不带ASE的标准逻辑应用程序时,其内容(工作流、映射、架构…(存储在与标准逻辑应用软件关联的存储帐户的FileShare中(位于site\wwwroot下(因此,为Logic应用程序更新或创建新的工作流非常容易,只需更新文件workflow.json或使用新文件workflow.json创建一个额外的文件夹即可。
我可以使用CLI上传一个包含所有工作流和工件的zip文件。
az logicapp deployment source config-zip --name $LogicApp --resource-group $RG --subscription $Subscription --src $artifactszip
这很好。
带有ASE的标准逻辑应用程序
但是,当我在与ASE关联的应用程序服务计划中对标准逻辑应用程序进行同样的尝试时,这是不起作用的。
- 没有与标准逻辑应用程序关联的FileStorage
az logicapp deployment source config-zip
失败,并出现以下错误:
az:警告:正在获取zip部署的scm站点凭据警告:正在启动zip部署。此操作可能需要一段时间才能完成。。。错误:命令失败,出现意外错误。以下是回溯:错误:HTTPSConnectionPool(主机='mylame.scm.myasename.appserviceenvironment.net',端口=443(:url超过了最大重试次数:/api/zipdeploy?isAsync=true(由NewConnectionError引起('<urlib3.connection.HTTPSConnection对象位于0x068F51C0>:无法建立新连接:[Erno11001]getaddrinfo失败'((
在这两种情况下(不带ASE和带ASE(,目标逻辑应用程序都是无状态逻辑应用程序。
我还尝试了az部署组创建和armclient
我也试过az deployment group create --resource-group $RG --template-file .myarmfile.json
这适用于:
- 应用程序服务环境-Microsoft.Web/hostingEnvironments
- 应用程序服务计划-Microsoft.Webserverfarms
- 标准逻辑应用程序-Microsoft.Web.sites
但不适用于
- 标准逻辑应用程序中的工作流-Microsoft.Web/sites/Workflow
我使用ARMCLIENT获取Microsoft.Websites/workflow 的arm文件示例
armclient.exe get https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{LAresourceGroup}/providers/Microsoft.Web/sites/la-main-dev/workflows/wf-main-dev?api-version=2018-11-01
这返回了一个不错的arm文件,但我找不到将其上传到Azure的方法。
解决方案是设置DNS专用区域,如Microsoft Learn中所述(https://learn.microsoft.com/en-us/azure/app-service/environment/create-ilb-ase):
在Azure DNS专用区域中配置DNS:
- 创建一个名为.appserviceenvironment.net的Azure DNS专用区域
- 在该区域中创建一个指向*ILB IP地址的A记录
- 在该区域中创建一个指向@的ILB IP地址的A记录
- 在该区域中创建一个指向*.scm的ILB IP地址的A记录
当这个DNS区域被创建并且我链接到它时:
- 我的ASE网络
- 我的机器的网络
然后我可以通过成功部署工作流和其他工件(参数、映射、架构(
- Visual Studio代码-标准逻辑应用程序的扩展
或
- PowerShell脚本
az-webapp部署源配置zip--名称$LA--资源组$RG-订阅$订阅-src$artifactszip