问题标签 [kudu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1748 浏览

azure - Azure 网站上的 Kudu 部署非常缓慢

我有一个deploy.cmd用于部署 Azure 网站的自定义文件。它做了一些自定义的事情,比如安装 nodejs 版本的 Typescript 和一个 minifier,然后运行单元测试,然后再构建和部署网站本身。

我遇到的问题是运行这个脚本似乎需要越来越长的时间,至少在 Azure 上是这样。deploy.cmd在我的开发笔记本电脑上,运行脚本大约需要 90 秒。但是当我在 Azure 上推出它时,它需要 15-20 分钟才能运行(有时需要 30-40 分钟以上)。我对它在 Web 服务器上花费的时间更长并不感到惊讶——我对它花费的时间超过 10 倍感到有点惊讶。

这是最近部署的日志文件的精简版本:

显然,花费大部分时间的是两个构建步骤。我想我可以将它们合并到一个构建步骤中——尽管我不完全确定这将如何与 KuduSync 一起工作。

关于如何加快速度的任何其他建议?或者这基本上只是预期的?

0 投票
1 回答
548 浏览

node.js - 在部署之前或之后构建 Web 应用程序?

语境

  • Web 应用程序项目有一个/build(或)文件夹,其中包含在构建期间(由Gulp/dist生成)生成的前端文件。此文件夹不在源代码管理之下(例如,请参阅:React.js Starter Kit
  • 服务器端代码不需要捆绑或编译步骤,因此/src可以按原样部署项目中的文件夹(这些源文件用于运行 Node.js 或 ASP.NET vNext 服务器)
  • 通过 Git 部署 Web 应用程序(请参阅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
0 投票
1 回答
256 浏览

powershell - 如何使用 Azure REST API 创建一个与私有 Github 存储库集成的新 Azure 网站?

有许多简单的例子展示了在没有Github 集成的情况下如何做到这一点。Azure Powershell commandlet New-AzureWebsite支持公共存储库(可以从源代码 [1] 确认)。有没有人尝试通过连接到私人仓库来创建它?它似乎没有记录在任何地方。

更新:我意识到这可能是 Kudu 帮助我的事情。

[1] https://github.com/Azure/azure-powershell/blob/e06a22c22f7a1c8153e9c2fa7c159ae7b1fd1dab/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/GithubClient.cs#L124

0 投票
3 回答
1326 浏览

git - 如何使用 git 部署的 Windows Azure 网站呈现内部版本号/哈希?

我有一个通过 git (kudu) 部署的天蓝色网站。我希望能够在页脚中显示当前部署的 git 哈希 - 这可能吗?

我想我正在寻找的是在 git pull 之后但在编译之前挂接到 kudu 以编辑 CS 文件的某种方式——这在 WAWS 上是否可行?

0 投票
0 回答
857 浏览

node.js - 使用 Kudu 将 node.js 应用程序部署到 Azure 时如何调试 deploy.sh?

我正在尝试使用 Kudu 将 node.js 应用程序(只是一个简单的幽灵博客)部署到 Azure 网站。我的部署脚本中有以下几行(deploy.sh正确引用自.deployment):

当部署失败时,我查看 Azure 管理门户并查看失败日志。我在运行时得到了预期的输出npm install grunt-cli- 即它应该被全局安装的警告和一个表明它已经正确安装的子包列表。然后,紧接着我得到:

log.xmlKudu 部署转储中可用的部署中包含相同的序列(没有更多信息) 。

我应该如何解决这个问题?还有其他地方可以查找输出和错误吗?我可以更改我的脚本以输出更多错误信息吗?如果我这样做,它会去哪里?有什么方法可以使用 Kudu 远程控制台实用程序测试我的部署脚本吗?

0 投票
1 回答
178 浏览

git - Kudu 部署错误:ENOENT

我的应用程序基于 VS2013,我正在使用 Visual Studio Team Services 进行持续部署。由于我在同一个解决方案中有 API 和 Web 项目,因此开箱即用的功能不起作用,它仅部署作为解决方案中的第一个项目的 api。

在进行自定义之前,我想先测试默认的 deploy.cmd 文件,因为我发现自定义没有被识别。我正在尝试从 VS2012 x64 Cross Tools 命令提示符运行 deploy.cmd。我在文章之后生成了这个默认的 deploy.cmd。我收到如下错误。我会看到几篇关于 git hub 的文章,但关于 VS Team Services 的文章不多。任何人都可以提供一些解决方案吗?

https://github.com/projectkudu/kudu/wiki/Deployment-hooks

错误:

Kudu 从:'C:\Users\SYED\AppData\Local\Temp___deployTemp28127' 同步到:'C:\Users\syedsahabudeen\Source\Repos\Deployment..\artifacts\wwwroot' 错误:ENOENT,打开 'C:\Users \syed\Source\Repos\Deployment\artifacts\manifest' 失败 exitCode=1, command="C:\Users\syed\AppData\Roaming\npm\kuduSync .cmd" -v 50 -f "C:\Users\SYED \AppData\Local\Temp__deployTemp28127" -t "C:\Users\syed\Source\Repos\Deployment..\artifacts\wwwroot" -n "C:\Users\syed\Source\Repos\Deployment..\artifacts\manifest " -p "C:\Users\syed\Source\Repos\Deployment..\artifacts\man ifest" -i ".git;.hg;.deployment;deploy.cmd" 网站部署时出错。

0 投票
1 回答
515 浏览

c# - Deploying ASP.NET vNext beta 2 on Azure with Kudu

According to this blog post, I can deploy vNext apps to Azure using Kudu. I've successfully tried it with vNext beta 1. However, it does not work with vNext beta 2.

Why can't I deploy with vNext beta 2? I thought the whole idea with vNext is that everything (including the CLR) is downloaded as NuGet packages.

0 投票
0 回答
321 浏览

azure - 使用 .NET 4.5.2 的 Azure 网站

根据这里的半官方回答,Azure 网站现在支持 .NET 4.5.2:

https://stackoverflow.com/a/23554969/68231

但是,当我访问 Kudu 调试控制台时,它并没有显示 .NET 4.5.2 已安装:

在此处输入图像描述

事实上,当我尝试推出一个针对 .NET 4.5.2 的网站时,Kudu 拒绝构建和部署有问题的网站,并出现如下错误:

Areas\Integration\Controllers\TwitterController.cs(18,31):错误 CS0012:类型“System.Object”在未引用的程序集中定义。您必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用。[D:\home\site\repository\Payboard.Web\Payboard.Web.csproj]

我错过了什么?我需要做些什么来安装 4.5.2 吗?或者...?

0 投票
2 回答
1143 浏览

batch-file - Kudu post-deployment commands not running

I'm trying to run some scripts after my site is deployed to azure (via kudu)

I have the following directory structure

.deployment looks like this:

deploy.cmd is unmodified from the one generated by azure site deploymentscript --aspWAP pathToYourWebProjectFile.csproj -s pathToYourSolutionFile.sln (http://blog.amitapple.com/post/38418009331/azurewebsitecustomdeploymentpart2/#.VPYd_PmUeTI)

However test.bat is not getting called.

I have tried setting both POST_DEPLOYMENT_ACTION_DIR and SCM_POST_DEPLOYMENT_ACTIONS_PATH (see https://github.com/projectkudu/kudu/issues/1154)

0 投票
1 回答
362 浏览

azure - 作为 kudu 部署的一部分执行 azure 站点交换

我想构建我的部署,以便在部署结束时将新站点交换到生产环境中。我正在使用部署槽,所以命令azure site swap mysite应该执行我之后的操作

为此,我在我的 kudu 部署脚本中尝试了此操作,例如:

但似乎 kudu 中没有安装 azure CLI。

'azure' 不是内部或外部命令、可运行程序或批处理文件。换成产品

有没有办法在我的部署脚本中做到这一点?