为什么通过S3 PUT发布lambda函数超时或有时无法完成?我试图增加时间和记忆。但是,当我尝试仅用20条记录替换列表时,它会发布,有时甚至花费很长时间,并且除非出现签名错误,否则调用永远不会结束。
我想做的是调用一个API并将响应数据保存为CSV。遍历httpwebrequest。我有一个动态列表,该列表也被另一个API调用,并传递到
下的URLList<string> list = contains 50 or more records
public async Task<List<string>> GetData(List<string> list,
X509Certificate2 certificate, string token, string
bucket, string key)
{
List<string> listofData = new List<string>();
MemoryStream fileStream = new MemoryStream();
listofData.Add("The headers go here");
for (int i = 0; i <= list.Count -1; i++)
{
try
{
//Can't include the real url
var URL = "https://sample"+list[i]+"/data";
string dataResponse = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Headers.Add("Authorization", "Bearer " + token);
request.Headers.Add("Connection", "Keep-Alive");
request.Headers.Add("Accept", "application/json");
request.ClientCertificates.Add(certificate);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
while (!sr.EndOfStream)
{
dataResponse = sr.ReadLine();
}
}
JObject parseData = JObject.Parse(dataResponse);
IList<JToken> outputSample = parseData["sampleData"].Children().ToList();
IList<SampleData> searchResults = new List<SampleData>();
foreach (JToken result in outputSample)
{
SampleData searchResult = result.ToObject<SampleData>();
searchResults.Add(searchResult);
}
foreach (SampleData card in searchResults)
{
//getter and setter for the Data
var output = string.Format(data.A + "," + data.B + "," + data.C + "," + data.C + "," + data.D + "," + data.E
data.A + "," + data.B + "," + data.C + "," + data.C + "," + data.D + "," + data.E
data.A + "," + data.B + "," + data.C + "," + data.C + "," + data.D + "," + data.E );
listofData.Add(output);
}
}
catch (Exception e)
{
context.Logger.Log(e.Message);
}
}
string convertToCSV = convertToCSV(listofData, fileStream);
string uploadToBucket = await uploadToBucket(bucket, key, fileStream);
return listofData;
}
如何迭代httpwebrequest并动态调用所有API,而又不会导致失败或超时?