0

我剛剛進入Azure函數,剛剛通過了TimerTrigger for Sql ConnectionBlobTrigger for Azure Blob。我厭倦了該演示對我的工作很好。 接下來我試着對這兩者進行組合。在Azure中上傳文件時觸發單個Azure函數,然後在Azure SQL中插入blob名稱

當在特定Blob Container.I中上載/添加的文件應該在我的Azure SQL數據庫表中寫入blob名稱。

我該如何在單一Azure功能中實現此功能?

另外我有一個疑問,如果我們創建一個blob觸發蔚藍功能,那麼這個功能將始終在後臺運行?我的意思是它會消耗後臺運行成本?

我在考慮一個blob觸發器的azure函數在運行過程中會消耗 的開銷。不是嗎?

可能有人能幫我解決這個

回答

1

我該如何在單一Azure功能中實現這一點?

你可以使用blob觸發器來實現它。您將從函數參數[name]獲得blob名稱。然後,您可以將此值保存到您的Azure SQL數據庫。下面的示例代碼供您參考。

public static void Run(Stream myBlob, string name, TraceWriter log) 
{ 
    var str = "connection string of your sql server"; 
    using (SqlConnection conn = new SqlConnection(str)) 
    { 
     conn.Open(); 
     var text = "insert into mytable(id, blobname) values(@id, @blobname)"; 

     using (SqlCommand cmd = new SqlCommand(text, conn)) 
     { 
      cmd.Parameters.AddWithValue("id", 1); 
      cmd.Parameters.AddWithValue("blobname", name); 
      // Execute the command and log the # rows affected. 
      var rows = cmd.ExecuteNonQuery(); 
      log.Info($"{rows} rows were updated"); 
     } 
    } 
} 

我想,對於一個blob觸發蔚藍功能會消耗只在它的運行成本。不是嗎?

您將需要在創建Azure功能時選擇託管計劃。

enter image description here

如果選擇應用服務計劃,您將需要支付的應用服務計劃,這是取決於你選擇的層級。如果您選擇消費計劃,您的功能將根據兩件事情進行計費。資源消耗和執行。

資源消耗是通過平均內存大小(千兆字節)乘以執行該功能所需的時間(以秒爲單位)來計算的。您需要爲您的功能消耗的CPU和內存支付費用。執行意味着你的函數處理的請求數。請注意,消費計劃定價還包括每月免費授予每月100萬次請求和400,000 GB-s資源消耗。

我們也可以在插入命令的地方調用Sp(如Exec spname)?對吧?

是的,我們可以通過將CommandType設置爲StoredProcedure來調用sp。以下代碼供您參考。

using (SqlCommand cmd = new SqlCommand("StoredProcedure Name", conn)) 
{ 
    cmd.CommandType = System.Data.CommandType.StoredProcedure; 
} 
+0

由於@Amor -MSFT.Just在管線3 瓦爾STR = ConfigurationManager.ConnectionStrings [ 「連接字符串」]的ConnectionString一個編輯請求。 – Jayendran

+0

-MSFT我們也可以在插入命令的地方調用Sp(如Exec spname)?對吧? – Jayendran

+0

如果我們想給我們的Sp的參數?更新後的答案僅包含沒有參數的Sp名稱 – Jayendran

0

當然,你應該使用一滴觸發您的方案。

如果您使用消費計劃,則只會在每個事件執行時更改。沒有背景成本將適用。