【问题标题】:URI of Azure Web Jobs output file with node.js带有 node.js 的 Azure Web 作业输出文件的 URI
【发布时间】:2014-02-27 17:27:53
【问题描述】:

今天我开始使用运行 node.js 脚本的 Azure Web 作业,该脚本在同一目录中输出一个 json 文件。我现在想使用 http 使用该文件,但是我无法弄清楚正确的 uri 是什么。 我认为它必须类似于日志的位置(顺便说一句,告诉我作业成功运行),但我似乎找不到 json 文件。 不应该是这样的吗? https://SiteName.scm.azurewebsites.net/JobName/output.json

编辑: 我刚刚使用 Webmatrix 打开了该站点,虽然我可以找到作业文件(在 /App_Data/jobs/triggered/JobName 下),但似乎没有保存 json 文件,尽管日志显示是这样。任何人都知道您是否可以在这样的网络作业中保存文件?

fs.writeFile(outputFilename, JSON.stringify(output, null, 4), function(err) {
    if(err) {
        console.log(err);
    } else {
        console.log("JSON saved to " + outputFilename);
    }
});  

顺便说一句。如果要使用 Azure 提供静态 JSON,则必须编辑 Web.config: http://blogs.msdn.com/b/africaapps/archive/2013/06/07/how-to-serve-static-json-files-from-a-windows-azure-website.aspx

【问题讨论】:

    标签: node.js azure azure-webjobs


    【解决方案1】:

    文件不在 WebJob 的二进制文件旁边的原因是,在调用 WebJob 之前,它首先被复制到临时目录 (%temp%\jobs\triggered\jobName\randomName) 并从那里运行,这样没有文件被锁定,您可以更新WebJob 的二进制文件。

    通过 WebJob 持久化文件时使用的适当路径是使用 WEBROOT_PATH 环境变量,因为它具有指向您的 wwwroot 的路径。

    如果您希望此文件只能私下访问(因为 wwwroot 是公开可见的),您可以上一层,例如:%WEBROOT_PATH%/../output.json

    另一个选项是使用:d:\home,因为上下文 wwwroot 位于:d:\home\site\wwwroot

    要访问该文件,请使用以下网址:https://SiteName.scm.azurewebsites.net/vfs/site/output.json,您需要提供部署凭据。

    【讨论】:

    • 这会起作用,但您确实不应该将文件写入您网站的文件系统。而是将其写入 Blob 存储。
    • 谢谢,我能够使用这样的 uri 实现我想要的: var outputFilename = 'd:\\home\\site\\wwwroot\\output.json'; %WEBROOT_PATH% 对我不起作用(我可能以错误的方式使用它......)@MarkRendle 在这种情况下使用 blob 有什么好处?是否仍然可以使用对 uri 的简单 http 请求来使用 json?
    • @Thomas,看来您不能将环境变量用作常规路径的一部分。 (至少不使用我尝试的 Path 类方法。)但是,您可以通过 Environment.GetEnvironmentVariable("WEBROOT_PATH") 获取值或使用 Environment.ExpandEnvironmentVariables() 解析字符串。
    • 根据docs in place 选项默认为 Node.js 脚本启用,因此脚本不会复制到临时位置。但是,这是一个旧答案,所以很可能行为已经改变(或者 OP 覆盖了这个)。
    • 尝试写入WEBROOT_PATH 会导致UnauthorizedAccessException
    猜你喜欢
    • 2016-03-22
    • 2016-01-25
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多