Promise.all(function(){
for(var numb in req.body){
console.log(numb+":"+req.body[numb]);
checkValue(numb,function(err,result){
if(result){
console.log(result);
send[result]="true";
console.log(send);
}
if(err){console.log(err+"not");}
});
}
}).then(res.json(send));
Run Code Online (Sandbox Code Playgroud)
我想首先执行for循环然后再发送数据.我试图使用promise.all但我不确定它是否正确.有人可以帮帮我吗?
我们发现,部署Azure函数(AFRv1 / Node.JS)花费的时间非常长(15-25分钟)。造成这种情况的原因显然是node_modules中文件的数量,但是我觉得必须有一个更好的方法来解决这个问题,而我没有研究过。
我们使用Azure App Service DeployVSTS任务将应用程序和node_modules(预先安装了纱线)部署为zip包。
是否有使用不需要这么长时间的存档的优化部署方式?也许在差异部署中更好的东西?
如何在 Azure 功能中获取远程 IP 地址?
的MS_HttpContext属性中不存在该属性HttpRequestMessage,因此我无法在此处使用解决方案:How to get client IP address in Azure Functions C#?
获得 IP 地址的转发很容易(从标题中,如上面的链接所示),但我怎样才能获得远程 IP 地址?
所有,我正在开发我的第一个Azure功能。该功能的目的是使用Bing认知API接收文本并对其进行拼写检查。但是,我无法编译,因为代码中的字符串text = req.GetQueryNameValuePairs()...行,因为它指出HTTPRequestMessage不包含“ GetQueryNameValuePairs”的定义,并且没有扩展方法“ GetQueryNameValuePairs”接受第一个参数可以找到类型“ HttpRequestMessage”(您是否缺少using指令或程序集引用?)。
任何帮助,将不胜感激。
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs.Host;
using Newtonsoft.Json;
using System.Net;
using System;
using System.Net.Http;
using System.Linq;
using System.Collections.Generic;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace SpellCheck.Functions
{
public static class SpellCheck
{
[FunctionName("SpellCheck")]
//public async static Task Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequest req, TraceWriter log)
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
//List<KeyValuePair<string, string>> …Run Code Online (Sandbox Code Playgroud) 我尝试像这样读取请求的内容:
var translation = await req.Content.ReadAsStringAsync();
但得到这个例外:
严重性代码描述项目文件行抑制状态错误 CS1061“HttpRequest”不包含“Content”的定义,并且找不到接受“HttpRequest”类型的第一个参数的可访问扩展方法“Content”(您是否缺少 using 指令或装配参考?)
以下是我正在使用的库:
我究竟做错了什么?如何阅读内容正文?
这是周围的代码:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "OnTranslateSingleHttpTriggered")] HttpRequest req,
ILogger log)
{
var translation = await req.Content.ReadAsStringAsync();
//do work
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一些模拟数据推送到 azure iot hub,并使用 azure 函数(C#)将接收到的数据存储在 mongo db 中。接收 iot hub 消息到 azure 函数正在工作。当我尝试按如下方式将它们推送到 mongo db 时,它会出现以下错误。我在执行此操作时遵循了本教程。
我的运行.csx
using System;
using System.Runtime.Serialization;
using System.ServiceModel.Description;
using MongoDB.Bson.IO;
using MongoDB.Bson;
using MongoDB;
using MongoDB.Driver;
using System.Security.Authentication;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public static void Run(string myIoTHubMessage, TraceWriter log)
{
log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}");
string deviceId="",data="";
var raw_obj=JObject.Parse(myIoTHubMessage);
deviceId=(string)raw_obj["device_id"];
data=(string)raw_obj["Data"];
Cosmos cosmos= new Cosmos(deviceId,data);
cosmos.pushData();
}
//CosmosDB class
public class Cosmos
{
string deviceId="",data="";
public …Run Code Online (Sandbox Code Playgroud) 我知道我可以在 local.settings.json 的 value {} 部分下添加所有环境变量。然而,我正在努力保持家里整洁,并且希望我能做这样的事情。
本地.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "",
"Hello": "world"
},
"ClientConfiguration": {
"this": "that",
"SubscriberEndpoint": "",
"Username": "",
"Password": "",
"ObjectEndpoint": ""
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中我有
var config = JsonConvert.DeserializeObject<myConnectionObject> (Environment.GetEnvironmentVariable("ClientConfiguration"));
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我都无法让它发挥作用。为什么我至少无法获取 ClientConfiguration 的内容?只是不断返回空值。
如果我将 ClientConfiguration {} 添加到类似的值
..."Values" : { ...
"Hello":"world",
"ClientCOnfiguration" : {above}
}
Run Code Online (Sandbox Code Playgroud)
我最终得到一个错误,说找不到 azurewebjobsstorage 并且“功能设置列表”只是空的
我目前正在开发一些代码集,以使用Web前端显示指定Azure容器内的所有Blob。我期望最终输出是这样的:
我首先创建了一个虚拟存储帐户,并在其中填充了一些虚拟文件供我使用。
https://alicebob.blob.core.windows.net/documents
??? docx
? ??? 201801_Discussion.docx
? ??? 201802_Discussion.docx
??? xlsx
? ??? 201801_Summary.xlsx
? ??? 201802_Summary.xlsx
? ??? 201803_Summary.xlsx
??? 201801_Review.pdf
??? 201802_Review.pdf
??? 201803_Review.pdf
Run Code Online (Sandbox Code Playgroud)
为了开发文件列表功能,我从此处开始使用Azure Storage JavaScript客户端库,并将所有必需的代码(.html和.js文件)放入Azure静态网站$web容器中,并在和静态网站配置中设置index.html为Index document name和Error document path。
https://alicebob.z23.web.core.windows.net/
??? azure-storage.blob.min.js
??? azure-storage.common.min.js
??? index.html
Run Code Online (Sandbox Code Playgroud)
问题在于,执行列表的功能只能是listBlobsSegmentedWithPrefix或listBlobDirectoriesSegmentedWithPrefix。因此,以我为例,我认为以结构良好/树格式列出所有Blob和目录并不能直接工作。
我当前的方法是欺骗代码以继续使用,listBlobDirectoriesSegmentedWithPrefix直到内部不再列出目录,然后继续使用listBlobsSegmentedWithPrefix
到目前为止,我很满意我的代码可以在叶级别列出所有Blob,并且还可以列出所有目录(如果不在叶级别也可以列出所有目录)。您可以在此处查看blob列表,并可以随时通过“查看源代码”查看我到目前为止构建的代码。
我面临的唯一问题是,如果不在叶级别上,则这组代码无法列出Blob。例如,它无法列出alicebob存储帐户上的这些Blob :
??? 201801_Review.pdf …Run Code Online (Sandbox Code Playgroud) 我实现了 Azure 功能。
我有下一个案例:
将其他内容保存到另一个 dynamo db 集合(输出参数)
[FunctionName("myFunction")]
[return: Blob("images-text-out/{name}.txt")]
public static string Run([BlobTrigger("samples-workitems/{name}", Connection = "StorageConnection")]Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob myBlob,
string name,
string blobTrigger,
[CosmosDB(
databaseName: "my-db-cosmos",
collectionName: "CollectionA",
ConnectionStringSetting = "CosmosDBConnection")] out dynamic processedFirst,
[CosmosDB(
databaseName: "my-db-cosmos",
collectionName: "CollectionB",
ConnectionStringSetting = "CosmosDBConnection")] out dynamic processedSecond,
ILogger log,
ExecutionContext context)
{
// . . .
myBlob.DownloadToStreamAsync(memoryStream).Wait();
// . . .
}
Run Code Online (Sandbox Code Playgroud)这工作正常。问题只是我无法利用异步调用的优势。原因很清楚,因为带有输出参数的方法不能是异步方法。
如何利用异步调用的优势实现具有多个输出的 azure 功能?
谢谢
azure ×9
c# ×6
.net-core ×2
asp.net-mvc ×1
deployment ×1
javascript ×1
json ×1
mongodb ×1
node.js ×1
promise ×1