App函数的基于文件的工件

时间:2017-08-08 20:51:45

标签: azure azure-functions

我是app-functions的新手。但我已经成功创建了一个可以接受一些JSON的自定义应用程序功能。

当我的JSON上传时,我的app-function将要根据模式验证它。 JSON将在POST请求的主体中,以更准确地描述正在发生的事情。

http://www.newtonsoft.com/json/help/html/JsonSchema.htm

以下是验证的基本代码:

string schemaJson = @"{
  'description': 'A person',
  'type': 'object',
  'properties':
  {
    'name': {'type':'string'},
    'hobbies': {
      'type': 'array',
      'items': {'type':'string'}
    }
  }
}";

JsonSchema schema = JsonSchema.Parse(schemaJson);

JObject person = JObject.Parse(@"{
  'name': 'James',
  'hobbies': ['.NET', 'Blogging', 'Reading', 'Xbox', 'LOLCATS']
}");


IList<string> messages;
bool valid = person.IsValid(schema, out messages);

上述代码的位置

string schemaJson

我想保存一个本地文件,我加载并验证。

实际上,我将有几个文件,http-request中的一个参数将触发我用于json-schema-validate的文件。

让我们在http-request(或查询字符串或其他)的标题中传递“mycustomerid”的图像,mycustomerid的值将驱动我想要验证输入json的模式。

所以我会有几个文件。

customer_1.jsonschema 
customer_2.jsonschema 
customer_3.jsonschema

我的相当简单的应用功能需要存储这些文件的最佳做法是什么?

public static async Task<object> Run(HttpRequestMessage req, TraceWriter log)
{

APPEND:

这是我最后的答案,使用此处接受的答案以及我在此处找到的内容:How to get local file system path in azure websites

            string rootDirectory = string.Empty;
            if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("HOME")))
            {
                /* running in azure */
                rootDirectory = Environment.GetEnvironmentVariable("HOME") + "\\site\\wwwroot";
            }
            else
            {
                /* in visual studio, local debugging */
                rootDirectory = ".";
            }
        string path = rootDirectory + "\\MySubFolder\\MyFile.jsonschema";

1 个答案:

答案 0 :(得分:3)

步骤1.使用Kudu控制台在'D:\ home \ site \ wwwroot \ HttpTriggerCSharp1'中创建文件'schema.json' https://github.com/projectkudu/kudu/wiki/Kudu-console

步骤2.将HttpTrigger的代码读取为字符串:

<form method="post" action="{% url "commentform_create" %}">
    {{ form }}
</form>