gpt4 book ai didi

azure - 如何使用 zip 文件和 ARM 模板将机器人框架应用程序部署到 azure?

转载 作者:行者123 更新时间:2023-12-04 08:57:08 24 4
gpt4 key购买 nike

我们正在尝试通过 REST API 启动的 ARM 部署将预构建的机器人工件部署到租户中。鉴于所有文档都使用 az cli,我们正在努力从 VS Code/Visual Studio 复制基于 GUI 的部署操作。手动部署最终会得到一个包含顶层 dll 的应用程序,而我们当前的路线不包含构建的 dll。

我们生产机器人工件的管道是:

- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'

- task: AzureCLI@2
inputs:
azureSubscription: 'GoSmarter Azure Service Connection'
scriptType: 'ps'
scriptLocation: 'scriptPath'
scriptPath: 'az-Prepare.ps1'

其中 az-Prepare.ps1 包含 az bot prepare-deploy --lang Csharp --code-dir $codeDirectory --proj-file-path $projectFileName 以生成机器人应用程序的 zip这样我们就可以将其放入 blob 存储中以供 ARM 模板使用。

然后,我们使用 MSDeploy ARM 资源来部署此 zip 文件,作为更大的配置步骤的一部分。

    {
"name": "MSDeploy",
"type": "extensions",
"location": "[variables('resourcesLocation')]",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webAppName'))]"
],
"tags": {
"displayName": "deployArchive"
},
"properties": {
"packageUri": "[concat(variables('source'),'qnabotarchive.zip',parameters('SasToken'))]",
"dbType": "None",
"connectionString": ""
}
}

我们尝试将用于触发构建的 Kudu 应用程序设置设置为 true,但这似乎不适用于 MSDeploy 提供的 zip,因此不会升级 dll。

        {
"name": "SCM_DO_BUILD_DURING_DEPLOYMENT",
"value": "true"
}

有谁知道配置构建、应用程序和/或机器人部署的 ARM 模板以在顶层提供 dll 的正确方法是什么?

最佳答案

最终,我们选择使用 dotnet core 命令来构建机器人解决方案。

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'

- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '$(project)'
arguments: '--configuration $(BuildConfiguration) -p:langversion=latest'
displayName: "Build solution"

- task: DotNetCoreCLI@2
displayName: "Publish Build Output"
inputs:
command: 'publish'
publishWebProjects: true
arguments: '--configuration $(BuildConfiguration) -p:langversion=latest --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: false

- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'

- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/QnABot/*'
includeRootFolder: true
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/Chatbots/qnabotarchive.zip'
replaceExistingArchive: true

关于azure - 如何使用 zip 文件和 ARM 模板将机器人框架应用程序部署到 azure?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63764210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com