Azure函数连接到blob和sql存储

时间:2017-09-12 13:36:19

标签: c# azure azure-sql-database azure-functions

我认为这将是Azure功能的完美介绍测试用例。

我们在Azure中有一个SQL存储(SQL数据库)。

使用C#,VS 2017更新了Azure工作流程项。

我们还有一个Blob存储空间。 每天晚上我都需要一个进程来访问SQL数据库,根据条件收集一组记录,然后处理它们,生成一个存储在blob存储中的文件。

我似乎无法克服完成这两项任务的困难。所有教程似乎都是最基本的类型。

我在VS 2017中创建了一个函数,但第一步是连接到SQL数据库。

我去添加新项目:ADO.NET实体数据模型,它的行为就像创建模型正确但没有数据上下文?

所以,我决定尝试下一步 - 创建blob并使用硬编码的样本数据。再一次......找不到如何做到这一点的好指南。

我有一个" AzureWebJobsStorage"在local.setting.json文件中设置。

我有一个计时器功能:

 public static class Function1
{
    [FunctionName("Function1")]
    public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, TraceWriter log)
    {
        log.Info($"C# Timer trigger function executed at: {DateTime.Now}");



    }

只是有些指向正确的方向,我会继续抨击它......

1 个答案:

答案 0 :(得分:5)

所以,你需要一个带

的功能

这是我的功能草图:

[FunctionName("Function1")]
public static void Run(
    [TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, 
    [Blob("mycontainer/myblob.txt", FileAccess.Write)] out string outputBlob,
    TraceWriter log)
{
    var str = ConfigurationManager.ConnectionStrings["sqldb_connection"].ConnectionString;
    using (var conn = new SqlConnection(str))
    {
        conn.Open();
        var text = "SELECT count(*) FROM MyData";

        using (var cmd = new SqlCommand(text, conn))
        {
            // Execute the command and log the # rows affected.
            var rows = cmd.ExecuteScalar();
            outputBlob = $"{rows} rows found";
        }
    }
}

你的问题有点开放,所以请随时通过更多关于你的斗争的细节来更新它。