标签: kudu

在部署之前或之后构建Web应用程序?

上下文

  • Web应用程序项目具有一个/build(或/dist)文件夹,其中包含在构建期间生成的前端文件(由Gulp生成).此文件夹不在源代码管理下(例如,参见:React.js Starter Kit)
  • 服务器端代码不需要捆绑或编译步骤,因此/src可以按原样部署项目中的文件夹(这些源文件用于运行Node.js或ASP.NET vNext服务器)
  • Web应用程序通过Git部署(参见HerokuWindows Azure中基于Git的部署选项)

问题

  1. 在部署之前或之后构建(捆绑和缩小)前端文件是否更好?
    • 如果之前,您可能最终拥有一个单独的存储库(或分支),/build源控件下的文件夹与其余的项目文件一起.此repo仅用于部署目的.
    • 如果之后,部署时间可能会增加 - 下载构建过程中使用的其他npm模块所需的时间,服务器的CPU在构建过程中可能会高达100%,这可能会损害Web应用程序的响应能力.
  2. 在运行KuduSync命令之前或之后,在远程服务器上构建前端文件是否更好?
  3. 如果使用Kudu将Web应用程序部署到Windows Azure,部署脚本是否应仅将/build文件夹的内容(包括.js,.html,.css等公共前端文件)复制到/wwwroot?与复制所有项目文件(服务器端源代码和前端软件包)相反,默认情况下它是这样做的.
  4. 默认情况下,Azure的部署脚本会复制所有项目文件,从D:\home\site\repository文件夹到D:\home\site\wwwroot文件夹,然后从那里启动Node.js应用程序.这是必要的一步吗?为什么不从D:\home\site\repository文件夹启动Node.js(或ASP.NET vNext)应用程序?如果它确实应该被复制到一个单独的文件夹,为什么要放入源文件wwwroot,也许最好将它们复制到另一个文件夹,在外面wwwroot

deployment heroku azure node.js kudu

5
推荐指数
1
解决办法
421
查看次数

如何以编程方式重新启动Azure Web App

有没有办法以编程方式重新启动Azure Web App,即Kudu或其他类型?

我发现可以使用管理库,但它不适用于我,因为我无法在AD中创建应用程序.

c# azure kudu

5
推荐指数
1
解决办法
3499
查看次数

如何在Azure上重置Kudu缓存部署

我以前在Azure Web App上有一个Node应用程序,现在是Go应用程序.问题是当我部署时我从Kudu得到这个:

Using cached version of deployment script (command: 'azure -y --no-dot-deployment -r "D:\home\site\repository" -o "D:\home\site\deployments\tools" --node --sitePath "D:\home\site\repository"').

这显然后来抱怨没有找到server/app.js文件.

所以我尝试为我的应用程序生成一个部署脚本azure site deploymentscript --go.

即使我在应用程序的设置中有GO15VENDOREXPERIMENT = 1,它也在抱怨依赖关系.我的所有依赖项都出现在/ vendor文件夹中.

我将此变量设置在deploy.cmdazure site deploymentscript命令生成的文件中.

仍然抱怨一个依赖关系不存在.请注意,现在它正在搜索本地供应商树,但依赖关系在那里,我可以在Github仓库中看到它,我也在本地看到它.

我有其他的Go应用程序在Azure上部署了很好的销售依赖项,但是这个是一个Node应用程序以前根本就没有工作.

我甚至试图评论依赖性getter deploy.cmd,因为所有都是本地的,这个步骤不是必需的.但即使这样也行不通,因为go build失败的抱怨不依赖于依赖.它位于供应商文件夹中,并GO15VENDOREEXPERIMENT在cmd文件和应用程序应用程序设置中设置为1.

那么我的选择是什么?

我怎么能告诉Kudu使用Go默认部署,也许Azure中的那个可以工作,因为我的其他应用程序没有本地.deployementdeploy.cmd文件.

编辑

我刚刚将测试部署到一个全新的Azure Web应用程序,默认情况下该应用程序被检测为Node应用程序.我猜这是因为在根目录中存在一个package.json,我还有一个main.go package main作为包名.

所以也许只是deploy.cmdazure site deploymentscript那些不是最新的东西产生的东西?(我刚刚更新了我对azure-cli的验证,因为起初我没有--go标志).

为了完整性,这里是Kudu在新创建的应用程序上部署时的输出,得到与Node 1相同的错误:

remote: Resolving dependencies remote: # cd .; git clone https://github.com/org/mypkg D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg …

azure go azure-web-sites kudu

4
推荐指数
1
解决办法
1998
查看次数

如何在Azure应用服务中运行Python shell

Azure App Service中,我知道有一个Kudu调试控制台,如下所示:

在此输入图像描述

可用于在该控制台中触发命令.

但是如果我触发这样的python shell,我发现这个控制台会被卡住:

d:\家\网站\ wwwroot的\ ENV \脚本> python.exe

在此输入图像描述

是否可以在像Heroku这样的天蓝应用服务下使用交互式python shell ?谢谢.

python azure azure-web-sites kudu

4
推荐指数
1
解决办法
620
查看次数

Kudu 调试控制台 Bash 与 SSH

在 Azure 中使用 Linux(节点)上的应用程序服务时,Kudu 顶部有一个菜单:调试控制台。“调试控制台”必须选择:Bash 和 SSH。

它们之间有什么区别?看起来他们跟随不同的环境。在此处输入图片说明

azure kudu

4
推荐指数
2
解决办法
1976
查看次数

使用 Kudu 构建服务部署 asp.net 核心应用程序时出现 UnauthorizedAccessException

我已经使用 Kudu 构建服务(通过 GitHub 直接连接)设置了我的 aspnet core 2.2 应用程序的持续部署。直到前天都很好,但是UnauthorizedAccessException当我从昨天开始尝试部署任何东西时就开始了。不过,我的应用程序没有任何变化。知道这里有什么问题吗?

这是详细的异常:

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling ASP.NET Core Web Application deployment.
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
   at Internal.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)
   at Internal.Win32.RegistryKey.SetValue(String name, String value)
   at System.Environment.SetEnvironmentVariableFromRegistry(String variable, String value, Boolean fromMachine)
Failed exitCode=1, command=dotnet restore "D:\home\site\repository\myproject.sln"
   at System.Environment.SetEnvironmentVariable(String variable, String value, EnvironmentVariableTarget target)
An error has occurred during web site deployment.
   at Microsoft.DotNet.Cli.Utils.EnvironmentProvider.SetEnvironmentVariable(String variable, String value, EnvironmentVariableTarget target)
   at Microsoft.DotNet.ShellShim.WindowsEnvironmentPath.AddPackageExecutablePathToUserPath()
   at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure()
   at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel, IAspNetCertificateSentinel aspNetCertificateSentinel, …
Run Code Online (Sandbox Code Playgroud)

kudu azure-web-app-service asp.net-core

4
推荐指数
1
解决办法
881
查看次数

Azure网站Git部署在SCM_BUILD_ARGS中删除"/"

描述

我们目前正在使用基于MVC4/Umbraco的项目,使用Azure网站来托管它.

我们使用SCM_BUILD_ARGS在不同的构建设置之间进行更改,具体取决于我们部署到Azure的哪个站点(Test and Prod).

这是通过在UI中定义应用程序设置来完成的:

SCM_BUILD_ARGS =/p:环境=测试

之前我们使用Bitbucket Integration进行部署,这里的设置就像一个冠军.

我们现在已经切换到使用Git Deployment,在测试通过后从我们的构建服务器推送更改.但是当我们这样做时,我们会得到一个可爱的错误.

"MSB1008:只能指定一个项目."

尝试从Azure上的UI重新部署相同的失败部署.

经过一些试验和错误,我结束了进入deploy.cmd并输出%SCM_BUILD_ARGS%脚本中的值.它似乎/从SCM_BUILD_ARGS中删除,但仅在使用Git部署时,而不是Bitbucket Integration或从UI重新部署.

解决方法

作为解决方法我现在已经添加了一个/到前面的deploy.cmd脚本%SCM_BUILD_ARGS%,但这当然会中断重新部署,因为我们//p:Environment=Test%SCM_BUILD_ARGS%插入值时在MSBuild命令中有.

:: 2. Build to the temporary path
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
:: Added / to SCM_BUILD_ARGS
  %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\www\www.csproj" [....]  /%SCM_BUILD_ARGS%
) ELSE (
  %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\www\www.csproj" [....] /%SCM_BUILD_ARGS%
)
Run Code Online (Sandbox Code Playgroud)

任何人都知道这个问题的更好的解决方案或者它可能是Kudu的一个错误?我们希望从Git和Redeploy部署工作.

azure azure-web-sites kudu

3
推荐指数
1
解决办法
1053
查看次数

部署到Azure网站时,Microsoft.VisualStudio.QualityTools.UTFResources的FileNotFoundException

我正在使用Azure网站git deploy(通过Kudu),一切都很顺利,直到今天.当我执行新的git push并尝试部署时,我在测试运行时收到此错误消息:

错误:System.IO.FileNotFoundException:无法加载文件或程序集"Microsoft.VisualStudio.QualityTools.UTFResources,Version = 10.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.

在上次成功推送和我开始收到此错误之间,我没有添加或删除我的解决方案中的任何库或其他引用.谷歌搜索没有任何结果.该文件位于我的本地GAC中,但我无法在我的解决方案中的任何位置直接引用它.

重新部署我的解决方案的版本 - 在当天早​​些时候正确部署的版本 - 失败,并显示相同的错误消息.

如果我不知道更好的话,我会认为MS改变了一些东西而且打破了kudu.

有关解决此问题的任何想法,不愿意用Azure打开票证吗?

编辑 - 更多详情:

运行单元测试时失败了.这是我的deploy.cmd的相关部分:

:: 1. Build to the temporary path
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
  %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\Payboard.Web\Payboard.Web.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS%
) ELSE (
  %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\Payboard.Web\Payboard.Web.csproj" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS%
)

IF !ERRORLEVEL! NEQ 0 (
    echo Build failed with ErrorLevel !0!
    goto error
)

:: 2. Building test projects
rem echo Building …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-sites kudu

3
推荐指数
1
解决办法
2490
查看次数

Azure webjobs 部署和工作目录

我对将 webjobs 部署到 azure 感到困惑。

我正在使用 .net core,因此我在deploy.cmd文件中手动发布我的网络作业,例如如下所示:

call :ExecuteCmd dotnet publish "%DEPLOYMENT_SOURCE%\My.WebJobs\Mt.WebJobs.csproj" --output "%DEPLOYMENT_TEMP%\App_Data\Jobs\Continuous\MyWebJobs" --configuration Release

然后将 webjob 部署到该deployment_temp文件夹​​。之后,KuduSync 启动并同步,如果我查看的DEPLOYMENT_TARGETd:\home\site\wwwroot,我可以看到那里有一个App_Data\Jobs\Continuous\MyWebJobs文件夹,并且我的所有文件都已正确部署并同步到该文件夹​​。

但是,当我运行 webjob 时,它报告它正在从完全不同的位置运行 ( D:\local\Temp\jobs\continuous\MyCustomerIO\bp003r3f.h2g)。当我查看该文件夹时,我看到了大部分部署的 webjob 文件,但其中的一些 JSON 配置文件App_Data...丢失了。

那么 - 为什么我的网络作业从这里运行?为什么我部署的一些文件丢失了?

deployment azure kudu azure-webjobs

3
推荐指数
1
解决办法
6147
查看次数

Azure 功能:部署后仍在运行的旧代码

现在,即使通过 KUDU 进行 zip 部署返回成功,我也再次面临在 Azure Function App 上使用旧代码的问题。

当然,我希望新代码在大约 30 分钟后加载,而不是立即加载。

该问题已标记为已关闭。

在这种情况下被认为是最佳实践:

  1. 以编程方式强制 Function App 重新启动,例如通过 Azure CLI 或 Powershell Az 模块?
  2. 或者有另一种方法来缓解这个问题?

azure kudu azure-functions azure-functions-runtime

3
推荐指数
1
解决办法
2067
查看次数