c# - 连接到 blob 和 sql 存储的 Azure 函数

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

我有一个我认为完美的 Azure 函数介绍测试用例。

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

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

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

我似乎无法克服完成这些任务中的任何一个的困难。所有教程似乎都是最基本的类型。

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

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

因此,我决定尝试下一步 - 创建 blob 并仅使用硬编码的示例数据。再次...找不到关于如何做到这一点的好的指南。

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

我有一个定时器功能如下:

 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}");



    }

只要有人指出正确的方向,我就会继续努力......

最佳答案

所以,你需要一个函数

  • 计时器触发器 - 正如您已经所做的那样
  • Blob 输出绑定(bind)(保存输出 Blob)- 请参阅 Blob storage bindings 中的“使用 Blob 输出绑定(bind)”部分
  • SQL 查询 - Azure 函数不为此提供绑定(bind),只需使用您通常在 C# 项目中使用的任何内容。 Use Azure Functions to connect to an Azure SQL Database给出了 ADO.NET 的示例。

这是我为您的函数绘制的草图:

[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";
        }
    }
}

您的问题有点开放式,因此请随时更新它,提供有关您遇到的困难的更多详细信息。

关于c# - 连接到 blob 和 sql 存储的 Azure 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46177915/

相关文章:

azure - ADF 翻滚窗口触发器

asp.net - 后台数据的 Azure 辅助角色部署

azure-sql-database - SQL Azure transient 故障与数据访问应用程序 block 6.0

Azure Function 访问私有(private)资源

c# - 在对象成员内部使用变量

c# - .net图表清除并重新添加

c# - 在属性网格中编辑集合的正确方法是什么

azure - 如何通过 Azure 门户查找虚拟机上的 Windows 版本

sql - 'dbo' 用户不应用于正常的服务操作

c# - 这是解析 XML 的低效方法吗?