在Azure App Service中,我知道有一个Kudu调试控制台,如下所示:
可用于在该控制台中触发命令.
但是如果我触发这样的python shell,我发现这个控制台会被卡住:
d:\家\网站\ wwwroot的\ ENV \脚本> python.exe
是否可以在像Heroku这样的天蓝应用服务下使用交互式python shell ?谢谢.
我们的 Blob 存储帐户结构:
\n\n容器名称:简单
\n\n在这个容器内我们有 blob:
\n\naa/one.zip\naa/two.zip\nbb/ss.zip\nbb/dd.zip\nRun Code Online (Sandbox Code Playgroud)\n\n是否可以生成对 aa \xe2\x80\x9cdirectory\xe2\x80\x9d 有写权限的 SAS,但对 bb \xe2\x80\x9cdirectory\xe2\x80\x9d 无访问权限?
\n\n使用 Amazon AWS,我们可以轻松创建基于对象/blob 前缀名称的限制,但我在用于 java 的 azure storage sdk 中找不到类似的功能。
\n我无法使用节点文件系统模块的azure函数工作.
我创建了一个全新的功能应用程序,具有最基本的HTTP触发功能,并包含'fs'模块:
var fs = require('fs');
module.exports = function (context, req, res) {
context.log('function triggered');
context.log(req);
context.done();
}
Run Code Online (Sandbox Code Playgroud)
这很好用.我在实时流日志和函数调用列表中看到了完整的请求.
但是,只要我添加实际使用文件系统的代码,它就会崩溃 azure函数. 它既不会完成也不会抛出错误.它似乎也没有出现在天蓝色的函数调用列表中,这是可怕的,因为这是失败信息的丢失,我可能认为我的服务在实际崩溃时运行正常.
var fs = require('fs');
module.exports = function (context, req, res) {
context.log('function triggered');
context.log(req);
fs.writeFile('message.txt', 'Hello Node.js', (err) => {
if (err) throw err;
console.log('It\'s saved!');
context.done();
});
}
Run Code Online (Sandbox Code Playgroud)
在fs.writeFile直接从node.js的网站采取代码:
https://nodejs.org/dist/latest-v4.x/docs/api/fs.html#fs_fs_writefile_file_data_options_callback
我context.done()在回调中添加了该代码,但该代码段在正常开发环境中应该没有问题.
这提出了一些问题:
根据我的理解,即使这被认为是无服务器计算,仍然有一个VM/Azure网站应用服务,其下面有一个文件系统.我可以使用Kudu控制台并导航并查看/ wwwroot和/ home/functions/secrets文件中的所有文件.
想象一下这样一种场景,即编写azure函数来编写具有唯一名称的文件而不执行清理,最终会占用主机VM上的所有磁盘空间并降低性能.这可能是由开发人员意外发生的,并且可能会被忽视,直到为时已晚.
这让我想知道是不是设计不使用文件系统,或者我的函数是否写错了?
我是使用Microsoft Azure的新手.我的应用程序需要在服务器上安装composer,如何在App服务系统上安装它?应用程序是PHP.
我在azure windows server 2012 vm上有一个基于php的webapp.到目前为止一切都很好.从一天开始,每当我尝试通过RDP连接时,都会显示一个完整的黑屏,并在一段时间后自动关闭RDP窗口.在Azure门户上,VM看起来很好.我尝试重新部署,重新启动,仍然没有成功,并且虚拟机仍在工作(webapp可访问且正常工作),并且IP是静态的.我该怎么做才能解决这个问题?
我的数据库实例包含一些具有以下模式的文档:
{
id: <someGuid>
myJsonArray: [
{
subId: SmallUniqueId1,
val: <someValue>
},
{
subId: SmallUniqueId2,
val: <someOtherValue>
}
]
}
Run Code Online (Sandbox Code Playgroud)
我有一个生成新SubIds的Web API(您可以将它们视为随机生成的base64字符串,其最大长度为5个字符).
我想查询我的数据库,以验证新创建的SubId在我的所有文档中都不存在.
我认为解决方案可能涉及将新的subId值插入WHERE子句(我通过REST API访问CosmosDB).这是我不知道的:
如果我知道将数据加载到Azure SQL数据仓库的各种方法,那就太好了.
我可以使用Ubuntu机器上的JDBC连接到Azure SQL DW.
有没有直接的方法从Azure Blob存储加载到Azure SQL DW而不使用Azure数据工厂?
将数据从Ubuntu加载到Azure SQL DW的方法.
用于与Azure通信的Java API.
直接将数据从HDInsights加载到SQL DW.
谢谢
我目前正在尝试实现我们正在使用的库的身份验证部分,但我偶然发现了一个奇怪的数据签名问题,NodeJS 中的 crypto.createHmac 的输出大约是 hash_hmac 的一半在 PHP 中,这是 PHP 和 NodeJS 之间唯一不同的数据部分(我们需要在这里使用 NodeJS)
用于在 NodeJS 中创建签名的确切代码是,
authorization["oauth_signature"] = crypto.createHmac('SHA256', process.env.SECRET).update(toSign).digest('base64');
Run Code Online (Sandbox Code Playgroud)
对于 PHP,它是
$authorization["oauth_signature"] = base64_encode(hash_hmac("SHA256", $signatureString . $signingKey, $secret));
Run Code Online (Sandbox Code Playgroud)
但是 NodeJS 版本的输出是
7LkQP+qKR1gSdPq/AgH/3No3ps7EtZXnqwjivMixvM8=
Run Code Online (Sandbox Code Playgroud)
对于 PHP,它是
NmQ0MWIzYmJiMjI2YzFlMDhiYzY3NzVmMWY0MzEwNDlhNDU3NDI0ZGJlMzU3NjJhYmMwYjgwYzZjMDE4NDM4OA==
Run Code Online (Sandbox Code Playgroud)
其中有超过两倍的数据
我是否必须为 NodeJS 版本使用不同的库,而不是在一个库中构建?顺便说一句,我们在 Microsoft Azure 上托管我们的 NodeJS 后端,不确定这是否相关,但至少值得一提。
编辑:
我发现了这个问题,PHP中的hash_hmac自动将其数据导出为十六进制数据,crypto.createHmac将其数据导出为我直接转换为base64的原始二进制数据,我需要做的就是首先将数据导出为十六进制然后转换到base64。
我有一个 Node.js timerTriggerAzure 函数,它处理一个集合并将处理结果排队以供进一步处理(通过 Node.jsqueueTrigger函数)。
代码类似于以下内容:
module.exports = function (context, myTimer) {
collection.forEach(function (item) {
var items = [];
// do some work and fill 'items'
var toBeQueued = { items: items };
context.bindings.myQueue = toBeQueued;
});
context.done();
};
Run Code Online (Sandbox Code Playgroud)
这段代码只会将最后toBeQueued一个排队,而不是我要排队的每一个。
有没有办法让多个项目排队?
更新
需要明确的是,我指的是toBeQueued在 的每次迭代中对a进行排队forEach,而不仅仅是对数组进行排队。是的,Azure Functions 存在一个问题,因此我无法对数组进行排队,但我有一个解决方法;即,{ items: items }。
我发现了很多有关如何将Angle App部署到Azure Web App的文章。但是没有工作。我找到了一个解决方案,其中创建了一个Visual Studio Web项目,从Visual Studio Code Project复制dist文件,然后从Visual Studio进行部署。但是,这并不真正有效。我猜该Web应用程序需要一些web.config文件..没有比这更好的方法了吗?我希望直接从Visual Studio Code进行部署,而无需使用asp.net Web项目。如果我只是部署,导航到页面时出现以下错误:
Cannot GET /
Run Code Online (Sandbox Code Playgroud)
在本文中,您似乎所需要的只是一个更高版本的NodeJS:
https://dzone.com/articles/deploy-an-angular-app-from-visual-studio-code-to-a-1
但剂量似乎起作用。