﻿
{"id":17052,"date":"2020-08-03T19:47:21","date_gmt":"2020-08-03T19:47:21","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=17052"},"modified":"2020-08-03T19:47:21","modified_gmt":"2020-08-03T19:47:21","slug":"azure-functions-serisi-3-visual-studio-ile-azure-function-olusturmak","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/azure-functions-serisi-3-visual-studio-ile-azure-function-olusturmak\/","title":{"rendered":"Azure Functions Serisi #3 &#8211; Visual Studio \u0130le Azure Function Olu\u015fturmak"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Visual Studio IDE&#8217;si ile nas\u0131l Azure Function olu\u015fturulur ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Ba\u015flarken<\/h3>\n<p>Visual Studio&#8217;da Azure Function olu\u015fturabilmek i\u00e7in ilk olarak ihtiyac\u0131m\u0131z olan <a href=\"https:\/\/www.gencayyildiz.com\/blog\/azure-storage-serisi-3-azure-sdk-nedir\/\" rel=\"noopener noreferrer\" target=\"_blank\">Azure Development Tool<\/a> ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/azure-storage-serisi-4-azure-storage-explorer\/\" rel=\"noopener noreferrer\" target=\"_blank\">Microsoft Azure Storage Explorer<\/a> toollar\u0131n\u0131 inceleyiniz ve kurulumlar\u0131n\u0131 ger\u00e7ekle\u015ftiriniz.<\/p>\n<h3>Azure Function Olu\u015fturma<\/h3>\n<p>Visual Studio ile Azure Function olu\u015fturabilmek i\u00e7in gerekli toollar\u0131 y\u00fckledikten sonra a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 s\u0131ras\u0131yla ger\u00e7ekle\u015ftiriniz;<\/p>\n<ul>\n<li><strong>Ad\u0131m 1<\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"370\" height=\"180\" class=\"alignleft size-full wp-image-17059\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak.jpg 370w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-300x146.jpg 300w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/a><br \/>\nVisual Studio edit\u00f6r\u00fcn\u00fc a\u00e7\u0131n\u0131z ve yeni bir proje olu\u015ftururken &#8216;Azure Functions&#8217; template&#8217;ini se\u00e7iniz ve &#8216;Next&#8217; butonuna t\u0131klay\u0131n\u0131z.<br \/>\n&nbsp;<br \/>&nbsp;<br \/>&nbsp;\n<\/li>\n<li><strong>Ad\u0131m 2<\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-1-300x136.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"300\" height=\"136\" class=\"alignleft size-medium wp-image-17060\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-1-300x136.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-1.jpg 571w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nProje ve solution ismini giriniz, lokasyonunu belirleyiniz ve &#8216;Create&#8217; butonuna bas\u0131n\u0131z.<br \/>\n&nbsp;<br \/>&nbsp;<br \/>&nbsp;<br \/>&nbsp;\n<\/li>\n<li><strong>Ad\u0131m 3<\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-2-300x172.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"300\" height=\"172\" class=\"alignleft size-medium wp-image-17070\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-2-300x172.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-2-768x440.jpg 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-2.jpg 944w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nProje ismini belirledikten sonra kar\u015f\u0131n\u0131za yandaki gibi trigger t\u00fcrleri gelecektir. Bu triggerlar\u0131n ne oldu\u011funa ve ne amaca hizmet etti\u011fine dair a\u00e7\u0131klamalar\u0131 sonraki makalelerimizde detaylar\u0131yla yapaca\u011f\u0131m\u0131zdan dolay\u0131 \u015fimdilik bu konuyu es ge\u00e7iyor ve sadece Visual Studio ile bir function olu\u015fturmaya odaklanarak genellikle kullanaca\u011f\u0131m\u0131z &#8216;Http trigger&#8217;\u0131 se\u00e7erek &#8216;Create&#8217; butonuna t\u0131kl\u0131yor ve konumuza devam ediyoruz.\n<\/li>\n<li><strong>Ad\u0131m 4<\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-3.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"254\" height=\"125\" class=\"alignleft size-full wp-image-17073\" \/><\/a><br \/>\nOlu\u015fan projenin kaynak dosyalar\u0131na g\u00f6z atarsan\u0131z e\u011fer yaz\u0131 dizimizin sonraki makalelerinde detayland\u0131raca\u011f\u0131m\u0131z bir\u00e7ok dosyan\u0131n yan\u0131nda &#8216;Function1.cs&#8217; isimli dosya g\u00f6receksiniz. Bu dosya i\u00e7erisinde function&#8217;\u0131 bar\u0131nd\u0131ran malum C# dosyas\u0131d\u0131r. Bir Azure Function projesi i\u00e7erisinde istenildi\u011fi kadar function olu\u015fturulabilir. Bunu da yaz\u0131 serimiz ileriki s\u00fcre\u00e7lerinde tam teferruatl\u0131 anlam\u0131\u015f ve g\u00f6rm\u00fc\u015f olacaks\u0131n\u0131z.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-4-300x183.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"300\" height=\"183\" class=\"alignright size-medium wp-image-17075\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-4-300x183.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-4-1024x624.jpg 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-4-768x468.jpg 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-4.jpg 1267w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u0130lgili dosyay\u0131 a\u00e7t\u0131\u011f\u0131n\u0131z zaman yandaki g\u00f6r\u00fcnt\u00fcde oldu\u011fu gibi &#8216;Run&#8217; metoduyla kar\u015f\u0131lacaks\u0131n\u0131z. Tabi&#8230; Esas\u0131nda i\u00e7eri\u011fimiz bu noktaya kadar makuld\u00fcr lakin bizler konumuzun s\u0131n\u0131rlar\u0131n\u0131 bir nebze a\u015farak birka\u00e7 tan\u0131mlama yaparak sonraki i\u00e7eriklere yat\u0131r\u0131mda bulunal\u0131m istiyorum.<\/p>\n<p>&#8216;Run&#8217; metodu, yap\u0131sal olarak farkl\u0131 isimlerde de tan\u0131mlanabilir bir metottur. Bunda bir mahzur yoktur. Bir metodun Azure a\u00e7\u0131s\u0131ndan function oldu\u011funu bildirebilmek i\u00e7in &#8216;FunctionName&#8217; attribute&#8217;u ile i\u015faretlenmesi gerekmektedir. \u0130lgili metodun, yap\u0131lan iste\u011fi yakalayarak bizlere getirecek olan &#8216;HttpRequest&#8217; t\u00fcr\u00fcnden &#8216;req&#8217; parametresine g\u00f6z atarsan\u0131z e\u011fer &#8216;HttpTrigger&#8217; attribute&#8217;u ile i\u015faretlenerek ne t\u00fcrden bir trigget oldu\u011funu, hangi HTTP fonksiyonlar\u0131yla tetiklenebildi\u011fini vs. ayarlayabilmekteyiz. Metodun g\u00f6vdesinde ise \u00f6rnek ama\u00e7l\u0131 loglamalar, query string&#8217;den de\u011fer okumalar vs. yap\u0131lmakta ve nihai olarak geriye bir mesaj d\u00f6nd\u00fcr\u00fclerek kullan\u0131c\u0131 bilgilendirilmektedir.\n<\/li>\n<li><strong>Ad\u0131m 5<\/strong><br \/>\nT\u00fcm bu i\u015flemler neticesinde test ama\u00e7l\u0131 ilgili projeyi derleyip, \u00e7al\u0131\u015ft\u0131r\u0131n\u0131z. Azure Function uygulamas\u0131n\u0131n local&#8217;de \u00e7al\u0131\u015fabilmesi i\u00e7in &#8216;Azure Function Core Tool&#8217;un y\u00fcklenmesi gerekmektedir. Bu tool &#8216;Azure Development Tool&#8217; ile otomatik olarak y\u00fcklenmi\u015f olacakt\u0131r. Dolay\u0131s\u0131yla bu noktaya kadar geldiyseniz e\u011fer g\u00f6n\u00fcl rahatl\u0131\u011f\u0131yla ilgili projeyi local&#8217;de \u00e7al\u0131\u015ft\u0131rabilirsiniz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5-566x1024.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"566\" height=\"1024\" class=\"aligncenter size-large wp-image-17086\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5-566x1024.jpg 566w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5-166x300.jpg 166w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5-768x1389.jpg 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5-849x1536.jpg 849w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-5.jpg 999w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/a>Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere bir console e\u015fli\u011finde Azure Function aya\u011fa kalkacak ve en altta function&#8217;\u0131 tetikleyebilece\u011fimiz endpoint&#8217;te bizlere sunulmu\u015f olacakt\u0131r.\n<\/li>\n<li><strong>Ad\u0131m 6<\/strong><br \/>\nVerilen endpoint&#8217;e herhangi bir taray\u0131c\u0131 yahut Postman \u00fczerinden istekte bulunman\u0131z \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 do\u011frulaman\u0131z i\u00e7in yeterli olacakt\u0131r.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-6.jpg\" alt=\"Azure Functions Serisi #3 - Visual Studio \u0130le Azure Function Olu\u015fturmak\" width=\"731\" height=\"119\" class=\"aligncenter size-full wp-image-17091\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-6.jpg 731w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-3-Visual-Studio-\u0130le-Azure-Function-Olu\u015fturmak-6-300x49.jpg 300w\" sizes=\"auto, (max-width: 731px) 100vw, 731px\" \/><\/a>\n<\/li>\n<\/ul>\n<p>Evet&#8230; B\u00f6ylece Azure Function&#8217;\u0131n Visual Studio edit\u00f6r\u00fcnde nas\u0131l olu\u015fturuldu\u011funu incelemi\u015f olduk.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Visual Studio IDE&#8217;si ile nas\u0131l Azure Function olu\u015fturulur ad\u0131m ad\u0131m inceleyece\u011fiz. Ba\u015flarken Visual Studio&#8217;da Azure Function olu\u015fturabilmek i\u00e7in ilk olarak ihtiyac\u0131m\u0131z olan Azure Development Tool ve Microsoft Azure Storage Explorer toollar\u0131n\u0131&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":17011,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3121],"tags":[3678,3679,3677,3661,3649,3676],"class_list":["post-17052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","tag-azure-development-tool","tag-azure-function-core-tool","tag-azure-function-visual-studio","tag-azure-functions","tag-microsoft-azure-storage-explorer","tag-visual-studio-ile-azure-function-olusturmak"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=17052"}],"version-history":[{"count":29,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17052\/revisions"}],"predecessor-version":[{"id":17092,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17052\/revisions\/17092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/17011"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=17052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=17052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=17052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}