Azure Function Apps: Kết nối SQL Server

Trong bài viết này, mình sẽ hướng dẫn các bạn cách kết nối SQL Server khi sử dụng Azure Function App trong Visual Studio

Tạo Project Azure Function Apps

Trong Visual Studio, bạn tạo mới project Azure Function Apps
Chọn Azure Functions 1 (Net Framework) => HttpTrigger. Hiện tại với Azure Functions 2 (preview), mình chưa kết nối thành công với SQL Server

 Bạn bấm Ok để tạo Project mới.

Kết nối với SQL Server

Mở file local.settings.json, thêm connection string:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
    "DbConnection": "data source=.;initial catalog=<your database>;integrated security=False;user id=<username>;password=<password>;multipleactiveresultsets=True;"
  }
}
Trong file Function1.cs, bạn thực hiện việc insert 1 person vào database thông qua Stored Procedure, và lấy giá trị ID sau khi insert data.

[FunctionName("Function1")]
public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
 log.Info("C# HTTP trigger function processed a request.");

 var str = ConfigurationManager.AppSettings["DbConnection"];
 log.Info(str);
 using (SqlConnection conn = new SqlConnection(str))
 {
  conn.Open();
  var text = "sp_insert_people";//stored procedure name

  using (SqlCommand cmd = new SqlCommand(text, conn))
  {
   cmd.CommandType = CommandType.StoredProcedure;
   cmd.Parameters.Add(new SqlParameter("@lastname", "an"));
   cmd.Parameters.Add(new SqlParameter("@firstname", "binh trong"));
   cmd.Parameters.Add(new SqlParameter("@address", "district 6"));
   cmd.Parameters.Add(new SqlParameter("@city", "hcm"));
   // Execute the command and log the # rows affected.
   var rdr = await cmd.ExecuteReaderAsync();
   while (rdr.Read())
   {
    log.Info(rdr[0].ToString());
   }                    
  }
 }            

 return req.CreateResponse(HttpStatusCode.OK);
}

ConfigurationManager.AppSettings: lấy giá trị từ appsettings.

Chúc các bạn thành công