Относительный путь к файлу Json в AWS Lambda - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть класс доступа, который извлекает необходимые данные из файла Json.Путь кажется правильным, когда я тестировал проект консольного приложения в .Net FrameWork.

Но при использовании лямбды в Aws Lex возникает ошибка, только когда я пытаюсь запустить эту функцию доступа Json (даже если не используюданные, которые были возвращены вообще).

Мне кажется, что относительный путь, который работал локально, отличается, когда лямбда загружается в AWS.

Это класс доступа, который работает локально вприложение cosole в проекте .NetFramwork.И файл Json, и класс DataAccess находятся в папке с именем «Accessors»:

public class DataAccess
{
      public static List<string> access(int maxPrice, string Shape)
            {

            List<string> diList = new List<string>();

            string filepath = "../../../Accessors/DiData.json";
            string result = string.Empty;
            string str = string.Empty;
            using (StreamReader r = new StreamReader(filepath))
            {


                var json = r.ReadToEnd();


                JObject jObject = JObject.Parse(json);
                JToken jUser = jObject["data"]["dResult"][0]["dID"];


                var searchResults = from r1 in jObject["data"]["dResult"]
                                    where r1["shape"].ToString() == Shape  && r1["price"].Value<System.Int32>() <= maxPrice
                                    select r1;

                foreach (var r1 in searchResults)
                {
                    diList.Add(r1["dID"].ToString());
                }
            }

            return diList;
        }

}

Здесь я вызываю эту функцию:

List<string>jsonDataList= Accessors.DataAccess.access(600, "Round");

Один только этот вызов приноситошибка в Amazon Lex после использования этой лямбды в качестве перехвата кода.

1 Ответ

0 голосов
/ 10 декабря 2018

Похоже, вы загружаете файл JSON из макета вашей папки dev / source.В Lambda вы отправляете zip-версию структуры папок, созданной из команды dotnet publish в проекте Lambda.Это биты вашего скомпилированного проекта.

Убедитесь, что DiData.json настроен для копирования в выходную папку сборки, а затем вы можете загрузить файл относительно корня папки публикации, где находится файл DiData.jsonкопируется в папку публикации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...