2016-01-03 110 views
0

我有一個在Azure上託管的webjob。 webjob我們可以按需運行。 我有一個人(不同部門/不同公司) 每當他想要這個webjob運行,他必須運行它。但沒有訪問天藍色的網站,我們不允許他訪問天藍色。通過URL運行Azure Webjob

所以我在想,如果有一些URL,如果他訪問它,webjob將開始直接運行。否則,這個人會一直要求我爲他跑這個網絡工作。

我們無法連續或按計劃進行,因爲有些日子我們根本不需要它運行,有些日子我們想要運行它可能是200次。我們永遠不會知道。

+1

是否可以通過監視Azure隊列來觸發作業?您可以向用戶提供一個簡單的站點,只需將消息轉儲到隊列中,Webjob就會將其選中。 – Crowcoder

回答

2

有幾種方法可以運行WebJob OnDemand。但是,目前所有這些都需要訪問Azure帳戶和/或Web App。如果你想讓某人訪問運行只有的工作,那麼你可以創建一個簡單的UI網站,讓他們調用這個工作,在那裏你實現你想要的任何網站認證方案。

然後站點實現可以通過HTTP POST請求使用this post中描述的特製「觸發器URI」來調用作業。如您所見,該URI包含Web App的基本身份驗證憑據,因此您不能直接告訴他們直接調用該憑據。

另一個有趣的選擇是使用IFTTT。您可以創建一個簡單的「配方」,通過HTTP POST來調用作業,如上所述,使用「Maker Channel」作爲「That」動作,但重要的是,您可以根據許多不同的輸入配置「This」源,例如當一封電子郵件被髮送,或者短信,電話等等。然後你可以設置它,這樣你的朋友只需要發送一封電子郵件或一個文本來觸發這項工作。這樣他們就無法訪問任何Web App憑據。對於您自己,您也可以使用手機上的IFTTT "Do Button" app通過點擊手機上的按鈕來觸發該作業!

+1

它實際上可以使用RBAC(基於角色的訪問控制)進行設置,儘管它稍有涉及。如果您願意,我可以在單獨的答案中概述步驟。 –