Почему время ожидания лямбда-функции или иногда не заканчивается, когда я публикую его через S3 PUT?Я пытался увеличить время и память.Но когда я пытаюсь заменить список только 20 записями, он публикуется или иногда занимает много времени, и вызов никогда не заканчивается, пока не появится ошибка подписи.
Я пытаюсь вызвать API и сохранить данные ответов в CSV.Итерация по httpwebrequest.У меня есть динамический список, который также вызывается другим API и передается по URL-адресу ниже
List<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 без сбоев или истечения времени ожидания?