{"id":31015,"date":"2025-10-04T19:03:34","date_gmt":"2025-10-04T16:03:34","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/"},"modified":"2025-10-04T19:03:34","modified_gmt":"2025-10-04T16:03:34","slug":"aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/","title":{"rendered":"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB"},"content":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS&#8217;in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?<\/p>\n<p>Her g\u00fcn y\u00fcz binlerce, hatta milyonlarca belge i\u015fleyen bir \u015firket d\u00fc\u015f\u00fcn\u00fcn: finans kurulu\u015flar\u0131 kredi ba\u015fvurular\u0131n\u0131, sa\u011fl\u0131k sekt\u00f6r\u00fc hasta kay\u0131tlar\u0131n\u0131, lojistik firmalar\u0131 sevk irsaliyelerini, hukuk b\u00fcrolar\u0131 s\u00f6zle\u015fmeleri\u2026 T\u00fcm bu belgelerin i\u00e7erisindeki bilgileri manuel olarak \u00e7\u0131karmak, s\u0131n\u0131fland\u0131rmak ve ilgili sistemlere aktarmak, insan hatas\u0131na a\u00e7\u0131k, yava\u015f ve operasyonel maliyetleri ciddi \u00f6l\u00e7\u00fcde art\u0131ran bir s\u00fcre\u00e7tir. Bu durum, \u00e7al\u0131\u015fanlar\u0131n daha stratejik g\u00f6revlere odaklanmas\u0131n\u0131 engellerken, karar alma s\u00fcre\u00e7lerini de yava\u015flatabilir. Ayr\u0131ca, b\u00fcy\u00fck veri setlerinin analizi i\u00e7in gerekli olan yap\u0131sal veriye ula\u015fmak, manuel i\u015flemlerle neredeyse imkans\u0131zd\u0131r.<\/p>\n<p>\u00d6rne\u011fin, b\u00fcy\u00fck bir bankan\u0131n g\u00fcnl\u00fck olarak on binlerce kredi ba\u015fvuru formunu i\u015fledi\u011fini varsayal\u0131m. Her bir formdan ad, soyad, TC kimlik numaras\u0131, adres, gelir bilgisi gibi kritik verilerin \u00e7\u0131kar\u0131lmas\u0131, do\u011fruluk kontrol\u00fc ve ard\u0131ndan bankan\u0131n ana sistemlerine girilmesi gerekiyor. Bu i\u015flem, y\u00fczlerce ki\u015finin mesaisini alan, y\u00fcksek maliyetli ve hata potansiyeli y\u00fcksek bir operasyon demektir. Belgelerdeki farkl\u0131 formatlar, el yaz\u0131lar\u0131 veya d\u00fczensiz yap\u0131lar, bu s\u00fcreci daha da karma\u015f\u0131k hale getirebilir. \u0130\u015fte tam da bu noktada, Ak\u0131ll\u0131 Belge \u0130\u015fleme (IDP &#8211; Intelligent Document Processing) teknolojileri devreye giriyor. AWS, makine \u00f6\u011frenimi ve yapay zeka destekli servisleriyle, bu t\u00fcr belge ak\u0131\u015flar\u0131n\u0131 otomatikle\u015ftirerek hem zamandan hem de maliyetten tasarruf etmemizi sa\u011fl\u0131yor. Bu makalede, AWS S3, Textract, Comprehend ve DynamoDB servislerini bir araya getirerek u\u00e7tan uca, \u00f6l\u00e7eklenebilir ve ak\u0131ll\u0131 bir belge i\u015fleme hatt\u0131n\u0131 ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131m\u0131z\u0131 ke\u015ffedece\u011fiz. B\u00f6ylece, manuel i\u015flemlerin neden oldu\u011fu darbo\u011fazlar\u0131 a\u015farak, i\u015fletmelerin daha verimli \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131yaca\u011f\u0131z.<\/p>\n<h2 id=\"temel-aws-servisleri-nelerdir-ve-neden-onlari-secmeliyiz\">Temel AWS Servisleri Nelerdir ve Neden Onlar\u0131 Se\u00e7meliyiz?<\/h2>\n<p>Ak\u0131ll\u0131 belge i\u015fleme hatt\u0131m\u0131z\u0131n temelini olu\u015fturacak AWS servislerini anlamak, bu mimarinin neden bu kadar g\u00fc\u00e7l\u00fc oldu\u011funu kavramak i\u00e7in kritik \u00f6neme sahiptir. Her bir servis, belirli bir ihtiyac\u0131 kar\u015f\u0131lamak \u00fczere tasarlanm\u0131\u015ft\u0131r ve bir araya geldiklerinde kusursuz bir i\u015f ak\u0131\u015f\u0131 sunarlar. Bu servisler, sunucusuz mimarileri sayesinde y\u00fcksek \u00f6l\u00e7eklenebilirlik, d\u00fc\u015f\u00fck maliyet ve kolay y\u00f6netim avantajlar\u0131 sunar.<\/p>\n<h3 id=\"amazon-s3-belge-depolamanin-guvenli-ve-olceklenebilir-yolu-nedir\">Amazon S3: Belge Depolaman\u0131n G\u00fcvenli ve \u00d6l\u00e7eklenebilir Yolu Nedir?<\/h3>\n<p>Amazon Simple Storage Service (S3), internet \u00f6l\u00e7e\u011finde \u00f6l\u00e7eklenebilen, son derece dayan\u0131kl\u0131, y\u00fcksek eri\u015filebilirli\u011fe sahip bir nesne depolama servisidir. Belge i\u015fleme hatt\u0131m\u0131z\u0131n ba\u015flang\u0131\u00e7 noktas\u0131 olarak S3&#8217;\u00fc se\u00e7memizin bir\u00e7ok nedeni vard\u0131r. Her \u015feyden \u00f6nce, S3, neredeyse s\u0131n\u0131rs\u0131z depolama kapasitesi sunar; bu da \u015firketlerin b\u00fcy\u00fckl\u00fc\u011f\u00fc veya belge hacmi ne olursa olsun, t\u00fcm belgelerini tek bir merkezi yerde saklayabilecekleri anlam\u0131na gelir. Dayan\u0131kl\u0131l\u0131\u011f\u0131 %99.999999999 (on bir dokuz) gibi \u015fa\u015f\u0131rt\u0131c\u0131 bir orandad\u0131r, yani verilerinizin kaybolma riski neredeyse yok denecek kadar azd\u0131r. Bu durum, \u00f6zellikle hassas finansal veya ki\u015fisel veriler i\u00e7eren belgeler i\u00e7in hayati \u00f6neme sahiptir. Ayr\u0131ca, S3&#8217;\u00fcn versiyonlama, \u00e7o\u011faltma ve farkl\u0131 depolama s\u0131n\u0131flar\u0131 gibi \u00f6zellikleri, veri y\u00f6netimi ve maliyet optimizasyonu a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck esneklik sa\u011flar. \u00d6rne\u011fin, s\u0131k eri\u015filmeyen ar\u015fiv belgelerini daha d\u00fc\u015f\u00fck maliyetli Glacier veya S3 Infrequent Access s\u0131n\u0131flar\u0131na ta\u015f\u0131yarak depolama maliyetlerini d\u00fc\u015f\u00fcrebiliriz. G\u00fcvenlik taraf\u0131nda ise, S3, \u015fifreleme (hem depolama an\u0131nda hem de aktar\u0131m s\u0131ras\u0131nda), eri\u015fim kontrol listeleri (ACL&#8217;ler), kova politikalar\u0131 ve IAM (Kimlik ve Eri\u015fim Y\u00f6netimi) entegrasyonu ile g\u00fc\u00e7l\u00fc g\u00fcvenlik mekanizmalar\u0131 sunar. Bu \u00f6zellikler sayesinde, belge i\u015fleme hatt\u0131m\u0131za y\u00fcklenen t\u00fcm belgelerin g\u00fcvenli bir \u015fekilde sakland\u0131\u011f\u0131ndan emin olabiliriz. S3 ayn\u0131 zamanda, y\u00fcklendi\u011finde otomatik olarak bir Lambda fonksiyonunu tetikleyebilir, bu da belge i\u015fleme ak\u0131\u015f\u0131m\u0131z\u0131 ba\u015flatmak i\u00e7in ideal bir yoldur.<\/p>\n<h3 id=\"amazon-textract-belgelerden-veri-cikarmak-icin-nasil-kullanilir\">Amazon Textract: Belgelerden Veri \u00c7\u0131karmak \u0130\u00e7in Nas\u0131l Kullan\u0131l\u0131r?<\/h3>\n<p>Amazon Textract, taranm\u0131\u015f belgelerden veya PDF&#8217;lerden metin, el yaz\u0131s\u0131 ve verileri otomatik olarak \u00e7\u0131karan bir makine \u00f6\u011frenimi servisidir. Geleneksel Optik Karakter Tan\u0131ma (OCR) teknolojilerinden \u00e7ok daha fazlas\u0131n\u0131 sunar \u00e7\u00fcnk\u00fc sadece metni \u00e7\u0131karmakla kalmaz, ayn\u0131 zamanda belgelerdeki yap\u0131sal bilgiyi de (formlar, tablolar) anlayabilir ve \u00e7\u0131karabilir. Bu, Textract&#8217;\u0131 ak\u0131ll\u0131 belge i\u015fleme hatt\u0131m\u0131z\u0131n kalbinde konumland\u0131rmam\u0131z\u0131 sa\u011flar. \u00d6rne\u011fin, bir kredi ba\u015fvuru formundaki &#8220;Ad\u0131:&#8221;, &#8220;Soyad\u0131:&#8221;, &#8220;Adres:&#8221; gibi anahtar-de\u011fer \u00e7iftlerini veya bir tablodaki sat\u0131r ve s\u00fctun verilerini do\u011fru bir \u015fekilde alg\u0131lay\u0131p \u00e7\u0131karabilir. Bu yetenek, manuel veri giri\u015fi ihtiyac\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ortadan kald\u0131r\u0131r ve insan hatas\u0131 olas\u0131l\u0131\u011f\u0131n\u0131 minimize eder. Textract&#8217;\u0131n iki ana API i\u015flemi vard\u0131r: <code>detect_document_text<\/code> (belgedeki t\u00fcm metni alg\u0131lar) ve <code>analyze_document<\/code> (formlar\u0131 ve tablolar\u0131 alg\u0131lar ve yap\u0131sal veri \u00e7\u0131kar\u0131r). <code>analyze_document<\/code> i\u015flemi, form verilerini anahtar-de\u011fer \u00e7iftleri olarak, tablo verilerini ise sat\u0131r ve s\u00fctunlar halinde sunarak, \u00e7\u0131kar\u0131lan verilerin programatik olarak i\u015flenmesini kolayla\u015ft\u0131r\u0131r. Textract, \u00e7e\u015fitli belge t\u00fcrlerini (faturalar, makbuzlar, kimlikler, finansal tablolar vb.) destekler ve s\u00fcrekli olarak geli\u015ftirilmektedir. Bu sayede, farkl\u0131 belge formatlar\u0131yla kar\u015f\u0131la\u015fan i\u015fletmeler i\u00e7in tek bir \u00e7\u00f6z\u00fcm sunar. Hassas verilerin i\u015flenmesi konusunda da Textract, y\u00fcksek g\u00fcvenlik standartlar\u0131na uyar ve verilerinizin i\u015fleme s\u00fcreci boyunca korunmas\u0131n\u0131 sa\u011flar. Bu \u00f6zellikler, Textract&#8217;\u0131 belge i\u015fleme hatt\u0131m\u0131z i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline getirir.<\/p>\n<h3 id=\"amazon-comprehend-metinleri-anlamak-ve-anlamlandirmak-nasil-mumkun-olur\">Amazon Comprehend: Metinleri Anlamak ve Anlamland\u0131rmak Nas\u0131l M\u00fcmk\u00fcn Olur?<\/h3>\n<p>Amazon Comprehend, metinlerden anlam ve i\u00e7g\u00f6r\u00fc \u00e7\u0131karmak i\u00e7in makine \u00f6\u011frenimini kullanan bir Do\u011fal Dil \u0130\u015fleme (NLP) servisidir. Textract ile metni \u00e7\u0131kard\u0131ktan sonra, Comprehend bu metni daha derinlemesine analiz ederek anlamland\u0131r\u0131r. Bu, \u00f6zellikle serbest metin alanlar\u0131 veya yap\u0131sal olmayan metinler i\u00e7eren belgeler i\u00e7in \u00e7ok de\u011ferlidir. Comprehend, a\u015fa\u011f\u0131daki gibi temel NLP g\u00f6revlerini yerine getirebilir:<\/p>\n<ul>\n<li><strong>Varl\u0131k Tan\u0131ma (Entity Recognition):<\/strong> Ki\u015filer, yerler, kurulu\u015flar, tarihler, \u00fcr\u00fcnler gibi \u00f6nemli varl\u0131klar\u0131 metinden \u00e7\u0131kar\u0131r. \u00d6rne\u011fin, bir s\u00f6zle\u015fme metninden \u015firket isimlerini, ilgili ki\u015fileri veya tarihleri otomatik olarak tespit edebilir.<\/li>\n<li><strong>Anahtar \u0130fade \u00c7\u0131karma (Key Phrase Extraction):<\/strong> Metnin ana konular\u0131n\u0131 veya \u00f6nemli ifadeleri belirler. Bu, belgenin i\u00e7eri\u011fini h\u0131zl\u0131ca \u00f6zetlemek veya kategorize etmek i\u00e7in kullan\u0131labilir.<\/li>\n<li><strong>Duygu Analizi (Sentiment Analysis):<\/strong> Metnin genel duygu tonunu (olumlu, olumsuz, n\u00f6tr, karma) belirler. M\u00fc\u015fteri geri bildirimleri veya \u015fikayet mektuplar\u0131 gibi belgelerde bu \u00f6zellik \u00e7ok faydal\u0131 olabilir.<\/li>\n<li><strong>Dil Tespiti (Language Detection):<\/strong> Metnin yaz\u0131ld\u0131\u011f\u0131 dili otomatik olarak alg\u0131lar. Uluslararas\u0131 belgelerle \u00e7al\u0131\u015fan \u015firketler i\u00e7in bu \u00f6zellik kritik olabilir.<\/li>\n<li><strong>Ki\u015fisel Tan\u0131mlay\u0131c\u0131 Bilgi (PII) Tespiti:<\/strong> Metin i\u00e7indeki hassas ki\u015fisel bilgileri (ad, adres, kredi kart\u0131 numaras\u0131, TC kimlik numaras\u0131 vb.) bulur. Bu, veri maskeleme veya g\u00fcvenlik uyumlulu\u011fu a\u00e7\u0131s\u0131ndan \u00f6nemlidir.<\/li>\n<\/ul>\n<p>Comprehend, karma\u015f\u0131k dilsel analizleri \u00f6nceden e\u011fitilmi\u015f modellerle kolayca yapabilmemizi sa\u011flar, bu da kendi NLP modellerimizi geli\u015ftirme ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r. Finansal bir senaryoda, bir kredi ba\u015fvurusundaki ek a\u00e7\u0131klama alan\u0131ndaki metni analiz ederek, ba\u015fvurucunun niyetini veya olas\u0131 risk fakt\u00f6rlerini daha iyi anlayabiliriz. Bu sayede, Textract&#8217;tan gelen yap\u0131sal veriye ek olarak, Comprehend&#8217;den gelen anlamsal verilerle belge i\u015fleme hatt\u0131m\u0131z\u0131 daha ak\u0131ll\u0131 ve kapsaml\u0131 hale getiririz. T\u00fcrk\u00e7e dahil bir\u00e7ok dili desteklemesi, Comprehend&#8217;i global \u00f6l\u00e7ekteki belge i\u015fleme \u00e7\u00f6z\u00fcmleri i\u00e7in de uygun k\u0131lar.<\/p>\n<h3 id=\"amazon-dynamodb-yapisal-verileri-hizli-ve-esnek-bir-sekilde-nasil-saklariz\">Amazon DynamoDB: Yap\u0131sal Verileri H\u0131zl\u0131 ve Esnek Bir \u015eekilde Nas\u0131l Saklar\u0131z?<\/h3>\n<p>Amazon DynamoDB, herhangi bir \u00f6l\u00e7ekte tek haneli milisaniye performans sunan, h\u0131zl\u0131, esnek, tamamen y\u00f6netilen bir NoSQL veritaban\u0131 servisidir. Belge i\u015fleme hatt\u0131m\u0131zdan \u00e7\u0131kar\u0131lan yap\u0131sal verileri depolamak i\u00e7in m\u00fckemmel bir se\u00e7imdir. Geleneksel ili\u015fkisel veritabanlar\u0131n\u0131n aksine, DynamoDB \u015femas\u0131z (schema-less) bir yap\u0131ya sahiptir, bu da farkl\u0131 belgelerden \u00e7\u0131kar\u0131lan ve farkl\u0131 \u00f6zelliklere sahip olabilecek verileri esnek bir \u015fekilde depolayabilece\u011fimiz anlam\u0131na gelir. \u00d6rne\u011fin, bir kredi ba\u015fvurusundan \u00e7\u0131kar\u0131lan veriler ile bir sevk irsaliyesinden \u00e7\u0131kar\u0131lan veriler farkl\u0131 alanlara sahip olabilir ve DynamoDB bu esnekli\u011fi do\u011fal olarak destekler.<\/p>\n<p>DynamoDB&#8217;nin temel avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Y\u00fcksek Performans:<\/strong> Tutarl\u0131 ve h\u0131zl\u0131 yan\u0131t s\u00fcreleri sunar. Bu, i\u015flenen belge say\u0131s\u0131n\u0131n artmas\u0131yla bile performans\u0131n d\u00fc\u015fmemesini sa\u011flar.<\/li>\n<li><strong>Otomatik \u00d6l\u00e7eklendirme:<\/strong> Uygulaman\u0131z\u0131n trafik talebine g\u00f6re otomatik olarak \u00f6l\u00e7eklenir, bu da manuel m\u00fcdahaleye gerek kalmadan de\u011fi\u015fen i\u015f y\u00fcklerini y\u00f6netebilece\u011finiz anlam\u0131na gelir.<\/li>\n<li><strong>Tamamen Y\u00f6netilen:<\/strong> Altyap\u0131 y\u00f6netimi (yama, yedekleme, g\u00fcncelleme vb.) AWS taraf\u0131ndan yap\u0131l\u0131r, b\u00f6ylece geli\u015ftiriciler veritaban\u0131 bak\u0131m\u0131 yerine uygulama geli\u015ftirmeye odaklanabilir.<\/li>\n<li><strong>Dayan\u0131kl\u0131l\u0131k ve G\u00fcvenilirlik:<\/strong> Veriler otomatik olarak birden fazla eri\u015filebilirlik b\u00f6lgesinde depolan\u0131r ve yedeklenir, bu da y\u00fcksek dayan\u0131kl\u0131l\u0131k ve kesintisiz eri\u015fim sa\u011flar.<\/li>\n<li><strong>Maliyet Etkinli\u011fi:<\/strong> Kulland\u0131\u011f\u0131n\u0131z kadar \u00f6dersiniz modeliyle \u00e7al\u0131\u015f\u0131r, bu da ba\u015flang\u0131\u00e7 maliyetlerini d\u00fc\u015f\u00fcr\u00fcr ve sadece ihtiya\u00e7 duydu\u011funuz kaynaklar i\u00e7in \u00f6deme yapman\u0131z\u0131 sa\u011flar.<\/li>\n<\/ul>\n<p>Belge i\u015fleme hatt\u0131m\u0131zda, Textract ve Comprehend&#8217;den gelen t\u00fcm \u00e7\u0131kar\u0131lm\u0131\u015f ve zenginle\u015ftirilmi\u015f verileri (anahtar-de\u011fer \u00e7iftleri, tablo verileri, varl\u0131klar, duygu puanlar\u0131 vb.) DynamoDB tablolar\u0131na kaydedebiliriz. Bu, bu verilere h\u0131zl\u0131 ve programatik eri\u015fim sa\u011flamak i\u00e7in merkezi bir depo olu\u015fturur. \u00d6rne\u011fin, bir belge ID&#8217;si veya ba\u015fvuru numaras\u0131 gibi birincil anahtar kullanarak, belirli bir belgenin t\u00fcm i\u015flenmi\u015f verilerini kolayca \u00e7ekebilir ve ba\u015fka bir i\u015f uygulamas\u0131nda kullanabiliriz. Ayr\u0131ca, DynamoDB Streams kullanarak veritaban\u0131na yap\u0131lan de\u011fi\u015fiklikleri izleyebilir ve bu de\u011fi\u015fiklikler \u00fczerine ba\u015fka i\u015f ak\u0131\u015flar\u0131 tetikleyebiliriz, bu da hatt\u0131m\u0131z\u0131n geni\u015fletilmesine olanak tan\u0131r.<\/p>\n<h2 id=\"aws-ile-akilli-belge-isleme-hatti-adim-adim-nasil-kurulur-uygulamali-bolum\">AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Ad\u0131m Ad\u0131m Nas\u0131l Kurulur? (Uygulamal\u0131 B\u00f6l\u00fcm)<\/h2>\n<p>\u015eimdi teoriden prati\u011fe ge\u00e7elim ve AWS servislerini kullanarak ak\u0131ll\u0131 belge i\u015fleme hatt\u0131m\u0131z\u0131 ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131m\u0131z\u0131 inceleyelim. Bu b\u00f6l\u00fcm, okuyucunun konuyu s\u0131f\u0131rdan \u00f6\u011frenebilece\u011fi \u015fekilde kademeli olarak ilerleyecektir. Mimari genel olarak \u015fu ad\u0131mlar\u0131 i\u00e7erecektir:<\/p>\n<ol>\n<li>Belge S3&#8217;e y\u00fcklenir.<\/li>\n<li>S3 y\u00fcklemesi bir AWS Lambda fonksiyonunu tetikler.<\/li>\n<li>Lambda, belgeyi Textract ile i\u015fler.<\/li>\n<li>Textract \u00e7\u0131kt\u0131s\u0131 Comprehend ile analiz edilir (opsiyonel).<\/li>\n<li>\u0130\u015flenmi\u015f veriler DynamoDB&#8217;ye kaydedilir.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131 birle\u015ftiren basit bir mimariyi hayal edelim:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/example.com\/aws_idp_pipeline_flowchart.png\" alt=\"AWS Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Ak\u0131\u015f \u015eemas\u0131\" title=\"AWS Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Ak\u0131\u015f \u015eemas\u0131\"><\/p>\n<p><em>Yukar\u0131daki hayali ak\u0131\u015f \u015femas\u0131, belgelerin S3&#8217;e y\u00fcklenmesinden, Lambda, Textract, Comprehend \u00fczerinden ge\u00e7erek DynamoDB&#8217;ye kaydedilmesine kadar olan s\u00fcreci g\u00f6rselle\u015ftirmektedir.<\/em><\/p>\n<h3 id=\"s3-tetikleyicileri-ile-otomatik-akisi-baslatma-yontemleri-nelerdir\">S3 Tetikleyicileri ile Otomatik Ak\u0131\u015f\u0131 Ba\u015flatma Y\u00f6ntemleri Nelerdir?<\/h3>\n<p>Belge i\u015fleme hatt\u0131m\u0131z\u0131n ilk ad\u0131m\u0131, yeni bir belgenin sisteme y\u00fcklendi\u011fini alg\u0131lamak ve i\u015fleme s\u00fcrecini otomatik olarak ba\u015flatmakt\u0131r. AWS S3 ve Lambda&#8217;n\u0131n entegrasyonu sayesinde bu olduk\u00e7a basittir. Bir S3 kovas\u0131na (bucket) bir dosya y\u00fcklendi\u011finde (Put eventi), bu olay bir Lambda fonksiyonunu tetikleyecek \u015fekilde yap\u0131land\u0131r\u0131labilir. Bu, sunucusuz mimarinin g\u00fcc\u00fcn\u00fc g\u00f6sterir; \u00e7\u00fcnk\u00fc siz sadece fonksiyonunuzu yazars\u0131n\u0131z, geri kalan altyap\u0131 y\u00f6netimi AWS taraf\u0131ndan yap\u0131l\u0131r.<\/p>\n<p>\u0130lk olarak, belgelerimizi y\u00fckleyece\u011fimiz bir S3 kovas\u0131 olu\u015ftural\u0131m. Ad\u0131 &#8220;idp-belgeler&#8221; olabilir. Ard\u0131ndan, bu kova \u00fczerindeki &#8216;Put&#8217; olaylar\u0131n\u0131 dinleyecek bir Lambda fonksiyonu olu\u015fturmam\u0131z gerekecek. Bu fonksiyon, S3 olay\u0131 taraf\u0131ndan tetiklendi\u011finde \u00e7al\u0131\u015facak ve olay\u0131n detaylar\u0131ndan y\u00fcklenen dosyan\u0131n ad\u0131n\u0131 ve kova ad\u0131n\u0131 alabilecektir.<\/p>\n<p>\u0130\u015fte basit bir Python Lambda fonksiyonu \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-python\">\nimport json\nimport os\nimport boto3\n\ns3_client = boto3.client('s3')\nlambda_client = boto3.client('lambda') # E\u011fer ba\u015fka bir lambda tetikleyeceksek\n\ndef lambda_handler(event, context):\n    print(\"S3 tetikleyicisi taraf\u0131ndan olay al\u0131nd\u0131.\")\n    \n    # Olaydan kova ad\u0131n\u0131 ve nesne anahtar\u0131n\u0131 (dosya yolu) \u00e7\u0131kar\n    for record in event['Records']:\n        bucket_name = record['s3']['bucket']['name']\n        object_key = record['s3']['object']['key']\n        file_size = record['s3']['object']['size']\n        \n        print(f\"Kova Ad\u0131: {bucket_name}, Nesne Anahtar\u0131: {object_key}, Dosya Boyutu: {file_size} bayt\")\n        \n        # Sadece belirli uzant\u0131lar\u0131 i\u015flemek i\u00e7in kontrol eklenebilir\n        if not object_key.lower().endswith(('.pdf', '.png', '.jpg')):\n            print(f\"Desteklenmeyen dosya format\u0131: {object_key}. \u0130\u015fleme atlan\u0131yor.\")\n            continue\n            \n        try:\n            # Buradan sonra Textract veya ba\u015fka bir i\u015fleme ba\u015flayabiliriz\n            # \u00d6rne\u011fin, dosyay\u0131 Textract'a g\u00f6nderecek ba\u015fka bir Lambda fonksiyonunu tetikleyebiliriz.\n            # Veya do\u011frudan Textract \u00e7a\u011fr\u0131s\u0131n\u0131 burada yapabiliriz.\n            \n            # Daha mod\u00fcler bir yakla\u015f\u0131m i\u00e7in, i\u015fleme mant\u0131\u011f\u0131n\u0131 ba\u015fka bir fonksiyona devredebiliriz\n            process_document(bucket_name, object_key)\n            \n        except Exception as e:\n            print(f\"Belge i\u015flenirken bir hata olu\u015ftu: {e}\")\n            # Hata y\u00f6netimi ve DLQ kullan\u0131m\u0131 burada devreye girebilir\n            \n    return {\n        'statusCode': 200,\n        'body': json.dumps('Belge i\u015fleme ba\u015flat\u0131ld\u0131.')\n    }\n\ndef process_document(bucket_name, object_key):\n    # Bu fonksiyon Textract ve Comprehend \u00e7a\u011fr\u0131lar\u0131n\u0131 i\u00e7erecek\n    print(f\"Belge '{object_key}' i\u015fleme al\u0131n\u0131yor...\")\n    # ... Sonraki ad\u0131mlarda Textract ve Comprehend entegrasyonu yap\u0131lacak ...\n    pass\n\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kodda, <code>lambda_handler<\/code> fonksiyonu S3 olay\u0131n\u0131 al\u0131r, kova ad\u0131n\u0131 ve dosya anahtar\u0131n\u0131 \u00e7\u0131kar\u0131r. Ard\u0131ndan, <code>process_document<\/code> adl\u0131 yard\u0131mc\u0131 bir fonksiyonu \u00e7a\u011f\u0131rarak belge i\u015fleme mant\u0131\u011f\u0131n\u0131 ba\u015flat\u0131r. Bu yap\u0131, Lambda fonksiyonumuzu daha d\u00fczenli ve y\u00f6netilebilir k\u0131lar. S3 tetikleyicisini AWS Konsolu \u00fczerinden Lambda fonksiyonunuza kolayca ekleyebilirsiniz. Bu sayede, her yeni belge y\u00fcklemesi otomatik olarak i\u015fleme hatt\u0131n\u0131 \u00e7al\u0131\u015ft\u0131racak ve manuel m\u00fcdahale ihtiyac\u0131n\u0131 ortadan kald\u0131racakt\u0131r.<\/p>\n<h3 id=\"textract-ve-comprehend-ile-veri-cikarma-ve-anlamlandirma-sureci-nasil-isler\">Textract ve Comprehend ile Veri \u00c7\u0131karma ve Anlamland\u0131rma S\u00fcreci Nas\u0131l \u0130\u015fler?<\/h3>\n<p>S3'ten tetiklenen Lambda fonksiyonumuzun i\u00e7inde, as\u0131l belge i\u015fleme ad\u0131mlar\u0131n\u0131 ger\u00e7ekle\u015ftirece\u011fiz: Textract ile verileri \u00e7\u0131karacak ve Comprehend ile metinleri anlamland\u0131raca\u011f\u0131z. Bu iki servis, bir belgeden hem yap\u0131sal hem de anlamsal bilgiyi elde etmemizi sa\u011flar.<\/p>\n<p>\u00d6ncelikle, Textract ile belgeyi analiz edelim. \u00c7o\u011fu zaman formlar veya tablolar i\u00e7eren belgeleri i\u015fleyece\u011fimiz i\u00e7in <code>analyze_document<\/code> API'sini kullanmak en iyisidir. Bu i\u015flem e\u015fzamans\u0131z (asynchronous) olarak da \u00e7al\u0131\u015fabilir, bu da b\u00fcy\u00fck belgeler i\u00e7in ve Lambda'n\u0131n 15 dakikal\u0131k \u00e7al\u0131\u015fma s\u00fcresi s\u0131n\u0131r\u0131n\u0131 a\u015fmamak i\u00e7in \u00f6nemlidir. Ancak, k\u0131sa ve orta \u00f6l\u00e7ekli belgeler i\u00e7in senkronize (synchronous) i\u015flem de kullan\u0131labilir. Biz \u00f6rnek i\u00e7in senkronize yakla\u015f\u0131m\u0131 kullanaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-python\">\nimport json\nimport os\nimport boto3\n\ntextract_client = boto3.client('textract')\ncomprehend_client = boto3.client('comprehend')\ndynamodb = boto3.resource('dynamodb')\n\n# Ortam de\u011fi\u015fkenlerinden tablo ad\u0131n\u0131 al\nDYNAMODB_TABLE_NAME = os.environ.get('DYNAMODB_TABLE_NAME', 'ProcessedDocuments')\n\ndef process_document(bucket_name, object_key):\n    print(f\"Textract ile belge '{object_key}' analiz ediliyor...\")\n    \n    # Textract ile belgeyi analiz et\n    response = textract_client.analyze_document(\n        Document={\n            'S3Object': {\n                'Bucket': bucket_name,\n                'Name': object_key\n            }\n        },\n        FeatureTypes=['FORMS', 'TABLES'] # Form ve tablo verilerini \u00e7\u0131kar\n    )\n    \n    extracted_data = {}\n    full_text = []\n    \n    # Form verilerini i\u015fle (anahtar-de\u011fer \u00e7iftleri)\n    for block in response['Blocks']:\n        if block['BlockType'] == 'KEY_VALUE_SET':\n            if 'KEY' in block['EntityTypes'] and 'VALUE' in block['EntityTypes']:\n                key_text = get_text_from_block(block['Id'], response['Blocks'])\n                value_text = get_text_from_block(block['Id'], response['Blocks'])\n                if key_text and value_text:\n                    extracted_data[key_text] = value_text\n            elif 'VALUE' in block['EntityTypes'] and 'BlockType' in block and block['BlockType'] == 'WORD':\n                full_text.append(get_text_from_block(block['Id'], response['Blocks']))\n\n        elif block['BlockType'] == 'LINE':\n            full_text.append(block['Text'])\n\n    # Tablo verilerini i\u015flemek daha karma\u015f\u0131k olabilir, bu \u00f6rnekte anahtar-de\u011ferlere odaklan\u0131yoruz.\n    # Tam bir tablo \u00e7\u0131karma i\u00e7in Textract'\u0131n daha detayl\u0131 \u00e7\u0131kt\u0131 parsing'i gereklidir.\n\n    print(\"Textract'tan \u00e7\u0131kar\u0131lan anahtar-de\u011fer \u00e7iftleri:\", extracted_data)\n    \n    # Tam metni birle\u015ftir\n    document_text = \" \".join(full_text)\n    print(\"Textract'tan \u00e7\u0131kar\u0131lan tam metin (ilk 500 karakter):\", document_text[:500])\n\n    # Comprehend ile metni analiz et\n    if document_text:\n        print(\"Comprehend ile metin analiz ediliyor...\")\n        comprehend_response = comprehend_client.detect_entities(\n            Text=document_text,\n            LanguageCode='tr' # Belgenin dilini burada belirtmeliyiz, gerekirse dinamik yap\u0131labilir\n        )\n        \n        entities = comprehend_response['Entities']\n        extracted_entities = [{'Text': ent['Text'], 'Type': ent['Type'], 'Score': ent['Score']} for ent in entities]\n        print(\"Comprehend'ten \u00e7\u0131kar\u0131lan varl\u0131klar:\", extracted_entities)\n\n        # Duygu analizi de yap\u0131labilir\n        sentiment_response = comprehend_client.detect_sentiment(\n            Text=document_text,\n            LanguageCode='tr'\n        )\n        sentiment = sentiment_response['Sentiment']\n        sentiment_score = sentiment_response['SentimentScore']\n        print(f\"Duygu: {sentiment}, Puanlar: {sentiment_score}\")\n\n        extracted_data['comprehend_entities'] = extracted_entities\n        extracted_data['document_sentiment'] = sentiment\n        extracted_data['sentiment_scores'] = sentiment_score\n    \n    # Son olarak, \u00e7\u0131kar\u0131lan verileri DynamoDB'ye kaydet\n    save_to_dynamodb(bucket_name, object_key, extracted_data)\n\ndef get_text_from_block(block_id, blocks):\n    # Bu basit bir yard\u0131mc\u0131 fonksiyondur. Ger\u00e7ek bir implementasyon daha karma\u015f\u0131k olabilir.\n    # Textract \u00e7\u0131kt\u0131s\u0131n\u0131 daha detayl\u0131 parse etmek i\u00e7in AWS SDK'n\u0131n yard\u0131mc\u0131 fonksiyonlar\u0131 veya\n    # \u00f6zel bir parser kullan\u0131labilir (\u00f6rne\u011fin textract-trp k\u00fct\u00fcphanesi).\n    for block in blocks:\n        if block['Id'] == block_id and 'Text' in block:\n            return block['Text']\n    return \"\"\n\n<\/pre>\n<p><\/code><\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: B\u00fcy\u00fck belgeler i\u00e7in Textract&#39;\u0131n e\u015fzamans\u0131z (<code>StartDocumentAnalysis<\/code>) API&#39;sini kullanmak, Lambda&#39;n\u0131n \u00e7al\u0131\u015fma s\u00fcresi s\u0131n\u0131rlar\u0131n\u0131 a\u015fmamak ve daha iyi hata y\u00f6netimi sa\u011flamak i\u00e7in \u00f6nemlidir. Bu durumda, Textract i\u015fi tamamlad\u0131\u011f\u0131nda bir SNS konusu yay\u0131mlar ve bu SNS konusu ba\u015fka bir Lambda fonksiyonunu tetikleyerek sonu\u00e7lar\u0131 i\u015fler.\n<\/div>\n<p>Yukar\u0131daki <code>process_document<\/code> fonksiyonu, Textract'\u0131 \u00e7a\u011f\u0131rarak belgeyi analiz eder ve <code>FORMS<\/code> ile <code>TABLES<\/code> \u00f6zelliklerini kullan\u0131r. <code>response<\/code> nesnesinden anahtar-de\u011fer \u00e7iftlerini \u00e7\u0131kar\u0131r\u0131z. Ard\u0131ndan, \u00e7\u0131kar\u0131lan t\u00fcm metni birle\u015ftirerek Amazon Comprehend'e g\u00f6ndeririz. Comprehend, bu metinden varl\u0131klar\u0131 ve duygu analizini yapar. Dil kodunun (<code>LanguageCode='tr'<\/code>) belirtilmesi, Comprehend'in T\u00fcrk\u00e7e metinleri do\u011fru bir \u015fekilde i\u015flemesini sa\u011flar. Bu ad\u0131m, belgelerdeki yap\u0131sal olmayan verilerden de de\u011ferli bilgiler elde etmemizi m\u00fcmk\u00fcn k\u0131lar. \u00d6rne\u011fin, bir sigorta ba\u015fvurusundaki serbest metin alan\u0131nda yer alan ek bilgileri veya m\u00fc\u015fteri \u015fikayetlerindeki ana konular\u0131 kolayca tespit edebiliriz.<\/p>\n<h3 id=\"dynamodbye-islenmis-verileri-nasil-kaydederiz\">DynamoDB'ye \u0130\u015flenmi\u015f Verileri Nas\u0131l Kaydederiz?<\/h3>\n<p>Belge i\u015fleme hatt\u0131m\u0131z\u0131n son ad\u0131m\u0131, Textract ve Comprehend'den elde edilen t\u00fcm zenginle\u015ftirilmi\u015f verileri kal\u0131c\u0131 olarak depolamakt\u0131r. Amazon DynamoDB, bu t\u00fcr yap\u0131sal ve yar\u0131 yap\u0131sal verileri h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde saklamak i\u00e7in idealdir. Daha \u00f6nce olu\u015fturdu\u011fumuz <code>process_document<\/code> fonksiyonunun sonuna, \u00e7\u0131kar\u0131lan verileri DynamoDB'ye kaydedecek bir yard\u0131mc\u0131 fonksiyon ekleyebiliriz.<\/p>\n<p>\u00d6ncelikle, DynamoDB'de 'ProcessedDocuments' ad\u0131nda bir tablo olu\u015fturdu\u011funuzdan emin olun. Bu tablonun birincil anahtar\u0131 olarak belgeye \u00f6zg\u00fc bir ID kullanabiliriz, \u00f6rne\u011fin <code>documentId<\/code>. Ayr\u0131ca, <code>originalFileName<\/code>, <code>s3Path<\/code>, <code>processingTimestamp<\/code> gibi metadata alanlar\u0131n\u0131 ve <code>extractedData<\/code> ad\u0131nda, Textract ve Comprehend'den gelen t\u00fcm anahtar-de\u011fer \u00e7iftlerini ve varl\u0131klar\u0131 i\u00e7eren bir JSON veya harita nesnesini tutacak bir alan\u0131 da ekleyebiliriz.<\/p>\n<pre><code class=\"language-python\">\n# Yukar\u0131daki process_document fonksiyonunun devam\u0131 olarak\ndef save_to_dynamodb(bucket_name, object_key, processed_data):\n    print(f\"\u0130\u015flenmi\u015f veriler DynamoDB'ye kaydediliyor: {object_key}\")\n    \n    table = dynamodb.Table(DYNAMODB_TABLE_NAME)\n    \n    # DynamoDB \u00f6\u011fesi i\u00e7in benzersiz bir ID olu\u015ftur (\u00f6rne\u011fin, S3 nesne anahtar\u0131n\u0131 kullanabiliriz)\n    document_id = object_key.replace('\/', '_').replace('.', '-') # Basit bir ID olu\u015fturma\n    \n    item = {\n        'documentId': document_id,\n        'originalFileName': os.path.basename(object_key),\n        's3Bucket': bucket_name,\n        's3Key': object_key,\n        'processingTimestamp': boto3.util.current_time_millis(),\n        'extractedData': processed_data # Textract ve Comprehend \u00e7\u0131kt\u0131lar\u0131 burada saklanacak\n    }\n    \n    try:\n        table.put_item(Item=item)\n        print(f\"'{object_key}' belgesine ait veriler DynamoDB'ye ba\u015far\u0131yla kaydedildi.\")\n    except Exception as e:\n        print(f\"DynamoDB'ye veri kaydedilirken hata olu\u015ftu: {e}\")\n        # Hata y\u00f6netimi burada daha kapsaml\u0131 olabilir\n\n<\/pre>\n<p><\/code><\/p>\n<p>Bu <code>save_to_dynamodb<\/code> fonksiyonu, <code>documentId<\/code> olarak S3 nesne anahtar\u0131ndan t\u00fcretilmi\u015f basit bir string kullan\u0131r. Ger\u00e7ek uygulamalarda UUID gibi daha sa\u011flam bir benzersiz ID olu\u015fturmak daha iyi olabilir. <code>put_item<\/code> i\u015flemi ile t\u00fcm i\u015flenmi\u015f verileri bir \u00f6\u011fe olarak tabloya ekleriz. <code>extractedData<\/code> alan\u0131, Textract'tan \u00e7\u0131kar\u0131lan anahtar-de\u011fer \u00e7iftlerini ve Comprehend'den gelen varl\u0131klar\u0131, duygu analiz sonu\u00e7lar\u0131n\u0131 i\u00e7erir. Bu yap\u0131, gelecekte bu verilere kolayca eri\u015fmenizi ve analiz etmenizi sa\u011flar. \u00d6rne\u011fin, bir web uygulamas\u0131 veya ba\u015fka bir AWS servisi, DynamoDB'deki bu verilere sorgu atarak belirli bir belgenin t\u00fcm i\u015flenmi\u015f i\u00e7eri\u011fini an\u0131nda alabilir veya belirli kriterlere g\u00f6re belgeleri filtreleyebilir. Bu sayede, elde etti\u011fimiz veriler sadece depolanmakla kalmaz, ayn\u0131 zamanda i\u015fletmenizin karar alma s\u00fcre\u00e7lerine de\u011fer katan eyleme d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir bilgiler haline gelir.<\/p>\n<h2 id=\"ileri-duzey-ipuclari-ve-en-iyi-uygulamalar-akisimizi-nasil-optimize-edebilirsiniz\">\u0130leri D\u00fczey \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar: Ak\u0131\u015f\u0131n\u0131z\u0131 Nas\u0131l Optimize Edebilirsiniz?<\/h2>\n<p>Ak\u0131ll\u0131 belge i\u015fleme hatt\u0131m\u0131z\u0131 kurmu\u015f olsak da, ger\u00e7ek d\u00fcnya senaryolar\u0131nda performans\u0131, g\u00fcvenilirli\u011fi ve maliyet etkinli\u011fini art\u0131rmak i\u00e7in baz\u0131 ileri d\u00fczey teknikler ve en iyi uygulamalar mevcuttur. Bu ipu\u00e7lar\u0131, hatt\u0131n\u0131z\u0131n daha sa\u011flam, esnek ve optimize edilmi\u015f \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3 id=\"hata-yonetimi-ve-yeniden-denemeler-neden-onemlidir\">Hata Y\u00f6netimi ve Yeniden Denemeler Neden \u00d6nemlidir?<\/h3>\n<p>Bulut ortamlar\u0131nda ge\u00e7ici a\u011f sorunlar\u0131, servis limitleri veya beklenmedik belge formatlar\u0131 nedeniyle hatalar meydana gelebilir. Bu t\u00fcr durumlar\u0131 ele almak i\u00e7in sa\u011flam bir hata y\u00f6netimi stratejisi kritik \u00f6neme sahiptir. AWS Lambda, ba\u015far\u0131s\u0131z olan fonksiyon \u00e7a\u011fr\u0131lar\u0131n\u0131 otomatik olarak yeniden deneme (retry) mekanizmalar\u0131 sunar. Varsay\u0131lan olarak, senkronize \u00e7a\u011fr\u0131larda (API Gateway gibi) Lambda 2 kez daha dener, e\u015fzamans\u0131z \u00e7a\u011fr\u0131larda ise (S3 gibi) 3 kez deneme yapar.<\/p>\n<p>Ancak, baz\u0131 hatalar otomatik yeniden denemelerle \u00e7\u00f6z\u00fclemez ve s\u00fcrekli ba\u015far\u0131s\u0131zl\u0131\u011fa yol a\u00e7abilir. Bu t\u00fcr durumlarda, <strong>Dead Letter Queues (DLQ)<\/strong> kullanmak \u00e7ok \u00f6nemlidir. Bir Lambda fonksiyonu i\u00e7in bir SQS kuyru\u011funu veya SNS konusunu DLQ olarak yap\u0131land\u0131rabilirsiniz. Fonksiyon, yap\u0131land\u0131r\u0131lan yeniden deneme say\u0131s\u0131ndan sonra bile ba\u015far\u0131s\u0131z olursa, olay\u0131n detaylar\u0131 DLQ'ya g\u00f6nderilir. Bu, ba\u015far\u0131s\u0131z olan olaylar\u0131 kaybetmeden incelemenize, hatalar\u0131n k\u00f6k nedenlerini bulman\u0131za ve gerekirse manuel olarak yeniden i\u015flemenize olanak tan\u0131r. Ayr\u0131ca, harici servislerle (Textract, Comprehend) ileti\u015fim kurarken <strong>\u00fcstel geri \u00e7ekilme (exponential backoff)<\/strong> ve yeniden deneme mekanizmalar\u0131n\u0131 Python boto3 k\u00fct\u00fcphanesi otomatik olarak uygular, bu da ge\u00e7ici servis kesintilerine kar\u015f\u0131 dayan\u0131kl\u0131l\u0131\u011f\u0131 art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-python\">\n# Lambda yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda DLQ tan\u0131mlamas\u0131\n# AWS Konsolu -> Lambda -> Fonksiyonunuz -> Yap\u0131land\u0131rma -> Asenkron \u00c7a\u011f\u0131rma -> DLQ se\u00e7ene\u011fini ayarlay\u0131n\n# Hedef olarak SQS kuyru\u011fu veya SNS konusu se\u00e7in.\n\n# \u00d6rnek bir DLQ mesaj\u0131 i\u015fleme (ba\u015fka bir Lambda veya manuel inceleme)\n# Bir DLQ'dan gelen mesaj\u0131 i\u015fleyen \u00f6rnek bir Lambda fonksiyonu\ndef process_dlq_message(event, context):\n    for record in event['Records']:\n        body = json.loads(record['body'])\n        original_event = json.loads(body['requestContext']['responsePayload']) # Bu k\u0131s\u0131m DLQ t\u00fcr\u00fcne g\u00f6re de\u011fi\u015febilir\n        \n        print(f\"DLQ'dan ba\u015far\u0131s\u0131z olay al\u0131nd\u0131: {original_event}\")\n        # Burada hatan\u0131n nedenini analiz edip gerekli d\u00fczeltmeleri yapabilirsiniz.\n        # \u00d6rne\u011fin, belge format\u0131 uyumsuzsa ilgili ekibe bildirim g\u00f6nderebilirsiniz.\n\n<\/pre>\n<p><\/code><\/p>\n<h3 id=\"maliyet-optimizasyonu-icin-nelere-dikkat-etmeliyiz\">Maliyet Optimizasyonu \u0130\u00e7in Nelere Dikkat Etmeliyiz?<\/h3>\n<p>AWS servisleri \"kulland\u0131k\u00e7a \u00f6de\" modeliyle \u00e7al\u0131\u015fsa da, b\u00fcy\u00fck \u00f6l\u00e7ekli operasyonlarda maliyetleri optimize etmek \u00f6nemlidir.<\/p>\n<ul>\n<li><strong>S3 Depolama S\u0131n\u0131flar\u0131:<\/strong> Belgelerin eri\u015fim s\u0131kl\u0131\u011f\u0131na g\u00f6re S3 Intelligent-Tiering, S3 Infrequent Access veya S3 Glacier gibi daha d\u00fc\u015f\u00fck maliyetli depolama s\u0131n\u0131flar\u0131n\u0131 kullanarak \u00f6nemli \u00f6l\u00e7\u00fcde tasarruf edebilirsiniz. \u00d6rne\u011fin, 30 g\u00fcnden eski belgeleri otomatik olarak S3 IA'ya ta\u015f\u0131yacak bir ya\u015fam d\u00f6ng\u00fcs\u00fc politikas\u0131 belirleyebilirsiniz.<\/li>\n<li><strong>Lambda Bellek ve S\u00fcre:<\/strong> Lambda fonksiyonunuzun bellek tahsisini (memory allocation) ve \u00e7al\u0131\u015fma s\u00fcresini optimize edin. Daha fazla bellek, daha h\u0131zl\u0131 i\u015flem anlam\u0131na gelebilir, ancak maliyeti de art\u0131r\u0131r. Fonksiyonunuzun en uygun bellek ayar\u0131n\u0131 bulmak i\u00e7in testler yap\u0131n.<\/li>\n<li><strong>Textract ve Comprehend:<\/strong> Bu servisler kullan\u0131m ba\u015f\u0131na \u00fccretlendirilir. Gerekmedik\u00e7e t\u00fcm \u00f6zellikleri kullanmaktan ka\u00e7\u0131n\u0131n. \u00d6rne\u011fin, sadece d\u00fcz metin \u00e7\u0131karmak yeterliyse <code>detect_document_text<\/code> kullanmak, <code>analyze_document<\/code>'tan daha ucuzdur. Ayr\u0131ca, e\u015fzamans\u0131z i\u015flemler i\u00e7in Textract'\u0131n kuyruk tabanl\u0131 modeli, b\u00fcy\u00fck hacimli i\u015f y\u00fcklerinde daha uygun maliyetli olabilir.<\/li>\n<li><strong>DynamoDB Kapasite Modlar\u0131:<\/strong> DynamoDB, \u0130stek \u00dcnitesi (Request Unit) ba\u015f\u0131na \u00fccretlendirilir. \u0130\u015f y\u00fck\u00fcn\u00fcz \u00f6ng\u00f6r\u00fclebilirse, Sa\u011flanan (Provisioned) kapasite modunu kullanmak ve otomatik \u00f6l\u00e7eklendirme ile ayarlamak maliyetleri d\u00fc\u015f\u00fcrebilir. \u0130\u015f y\u00fck\u00fcn\u00fcz d\u00fczensiz ise, Talep \u00dczerine (On-Demand) kapasite modu daha esnek ve maliyet etkin olabilir.<\/li>\n<\/ul>\n<h3 id=\"guvenlik-ve-uyumluluk-standartlari-nasil-saglanir\">G\u00fcvenlik ve Uyumluluk Standartlar\u0131 Nas\u0131l Sa\u011flan\u0131r?<\/h3>\n<p>Hassas belgeleri i\u015flerken g\u00fcvenlik ve uyumluluk en \u00fcst \u00f6nceliktir.<\/p>\n<ul>\n<li><strong>IAM Rolleri ve Politikalar\u0131:<\/strong> Her AWS servisine yaln\u0131zca ihtiya\u00e7 duydu\u011fu minimum izinleri veren IAM rolleri ve politikalar\u0131 kullan\u0131n (Least Privilege Principle). \u00d6rne\u011fin, Lambda fonksiyonunuzun sadece belirli S3 kovalar\u0131na, Textract, Comprehend ve DynamoDB servislerine eri\u015fim izni olmal\u0131d\u0131r.<\/li>\n<li><strong>Veri \u015eifrelemesi:<\/strong> S3'te depolanan belgeleri \u015fifreleyin (SSE-S3, SSE-KMS veya SSE-C). Textract ve Comprehend verileri i\u015flerken verileri \u015fifreler ve aktar\u0131m s\u0131ras\u0131nda TLS kullan\u0131r. DynamoDB'de veriler varsay\u0131lan olarak depolama an\u0131nda \u015fifrelenir.<\/li>\n<li><strong>VPC U\u00e7 Noktalar\u0131:<\/strong> Belge i\u015fleme hatt\u0131n\u0131zdaki servislerin internet \u00fczerinden de\u011fil, AWS a\u011f\u0131 i\u00e7inde g\u00fcvenli bir \u015fekilde ileti\u015fim kurmas\u0131 i\u00e7in VPC u\u00e7 noktalar\u0131n\u0131 kullan\u0131n. Bu, veri s\u0131zmas\u0131 riskini azalt\u0131r.<\/li>\n<li><strong>Denetim ve G\u00fcnl\u00fck Kayd\u0131:<\/strong> AWS CloudTrail ile t\u00fcm API \u00e7a\u011fr\u0131lar\u0131n\u0131 kaydedin. Amazon CloudWatch Logs ile Lambda fonksiyonlar\u0131n\u0131z\u0131n ve di\u011fer servislerin g\u00fcnl\u00fcklerini toplayarak g\u00fcvenlik denetimini sa\u011flay\u0131n ve sorunlar\u0131 tespit edin.<\/li>\n<\/ul>\n<h3 id=\"olceklenebilirlik-icin-ek-mimari-desenler-nelerdir\">\u00d6l\u00e7eklenebilirlik \u0130\u00e7in Ek Mimari Desenler Nelerdir?<\/h3>\n<p>Daha karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131 ve y\u00fcksek hacimler i\u00e7in a\u015fa\u011f\u0131daki servisler ve desenler i\u015fe yarayabilir:<\/p>\n<ul>\n<li><strong>AWS Step Functions:<\/strong> Birden fazla Lambda fonksiyonunu, Textract e\u015fzamans\u0131z i\u015flemlerini ve di\u011fer AWS servislerini g\u00f6rsel bir i\u015f ak\u0131\u015f\u0131yla koordine etmek i\u00e7in Step Functions kullan\u0131n. Bu, hata y\u00f6netimi ve i\u015f ak\u0131\u015f\u0131 durumu takibini kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><strong>Mesaj Kuyruklar\u0131 (SQS):<\/strong> E\u011fer i\u015flem s\u00fcresi uzunsa veya i\u015f y\u00fck\u00fc ani art\u0131\u015flar g\u00f6steriyorsa, Lambda ve Textract aras\u0131na bir SQS kuyru\u011fu ekleyerek i\u015f y\u00fck\u00fcn\u00fc tamponlayabilir ve Lambda'n\u0131n e\u015fzamans\u0131z i\u015fleme yetene\u011fini art\u0131rabilirsiniz.<\/li>\n<\/ul>\n<h2 id=\"mobil-uyumlu-arayuzler-icin-ne-tur-yaklasimlar-kullanmaliyiz\">Mobil Uyumlu Aray\u00fczler \u0130\u00e7in Ne T\u00fcr Yakla\u015f\u0131mlar Kullanmal\u0131y\u0131z?<\/h2>\n<p>Ak\u0131ll\u0131 belge i\u015fleme hatt\u0131m\u0131z\u0131n nihai \u00e7\u0131kt\u0131s\u0131, \u00e7o\u011fu zaman bir kullan\u0131c\u0131 aray\u00fcz\u00fc (UI) \u00fczerinden g\u00f6r\u00fcnt\u00fclenecek veya etkile\u015fimde bulunulacakt\u0131r. G\u00fcn\u00fcm\u00fcz d\u00fcnyas\u0131nda, bu aray\u00fczlerin mobil cihazlarda da sorunsuz \u00e7al\u0131\u015fmas\u0131 kritik \u00f6neme sahiptir. Kullan\u0131c\u0131lar, ister bir belge y\u00fcklemek ister i\u015flenmi\u015f verileri g\u00f6zden ge\u00e7irmek veya onaylamak istesin, her yerden ve her cihazdan eri\u015fim beklerler. Bu nedenle, geli\u015ftirece\u011fimiz \u00f6n y\u00fcz uygulamas\u0131 i\u00e7in mobil uyumlu (responsive) tasar\u0131m yakla\u015f\u0131mlar\u0131n\u0131 benimsemek zorunludur.<\/p>\n<p>Mobil uyumlu bir aray\u00fcz tasarlarken temel prensip, i\u00e7eri\u011fin ve d\u00fczenin, kullan\u0131c\u0131n\u0131n cihaz\u0131n\u0131n ekran boyutuna, y\u00f6n\u00fcne ve \u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fcne dinamik olarak adapte olmas\u0131d\u0131r. Bu, kullan\u0131c\u0131n\u0131n deneyimini art\u0131r\u0131rken, farkl\u0131 cihazlar i\u00e7in ayr\u0131 uygulamalar geli\u015ftirme ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r. \u0130\u015fte mobil uyumlu aray\u00fczler i\u00e7in kullanabilece\u011fimiz baz\u0131 temel yakla\u015f\u0131mlar:<\/p>\n<ul>\n<li><strong>Esnek Izgara Sistemleri (Flexible Grid Systems):<\/strong> \u0130\u00e7eri\u011fi yerle\u015ftirmek i\u00e7in piksel tabanl\u0131 sabit geni\u015flikler yerine y\u00fczde (%) veya em\/rem gibi g\u00f6receli birimler kullanan \u0131zgara sistemleri tercih edilmelidir. Bu, bile\u015fenlerin ekran boyutuna g\u00f6re otomatik olarak yeniden boyutland\u0131r\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Ak\u0131\u015fkan G\u00f6rseller (Fluid Images):<\/strong> G\u00f6rsellerin de esnek olmas\u0131 \u00f6nemlidir. CSS ile maksimum geni\u015fli\u011fi %100 olarak ayarlamak, g\u00f6rsellerin kapsay\u0131c\u0131 \u00f6\u011felerinin d\u0131\u015f\u0131na ta\u015fmas\u0131n\u0131 engeller ve ekran boyutuna g\u00f6re \u00f6l\u00e7eklenmesini sa\u011flar.<\/li>\n<li><strong>Medya Sorgular\u0131 (Media Queries):<\/strong> CSS Medya Sorgular\u0131, belirli ekran geni\u015fliklerine, cihaz t\u00fcrlerine veya di\u011fer \u00f6zelliklere dayal\u0131 olarak farkl\u0131 stil kurallar\u0131 uygulamam\u0131z\u0131 sa\u011flar. Bu, farkl\u0131 cihazlar i\u00e7in \u00f6zel d\u00fczenler, font boyutlar\u0131 veya bile\u015fen gizlemeleri uygulamak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/li>\n<li><strong>Meta Viewport Etiketi:<\/strong> HTML belgesinin <code><head><\/code> b\u00f6l\u00fcm\u00fcnde yer alan <code><meta name=\"viewport\"><\/code> etiketi, taray\u0131c\u0131ya sayfan\u0131n nas\u0131l \u00f6l\u00e7eklenece\u011fi konusunda talimat verir. \u00d6zellikle <code>width=device-width, initial-scale=1.0<\/code> ayar\u0131, sayfan\u0131n cihaz\u0131n ger\u00e7ek geni\u015fli\u011fini kullanmas\u0131n\u0131 ve varsay\u0131lan yak\u0131nla\u015ft\u0131rma seviyesinin 1.0 olmas\u0131n\u0131 sa\u011flar. Bu, mobil taray\u0131c\u0131lar\u0131n sayfay\u0131 masa\u00fcst\u00fc gibi k\u00fc\u00e7\u00fcltmesini engelleyerek okunabilirli\u011fi art\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Medya sorgular\u0131na bir \u00f6rnek vermek gerekirse:<\/p>\n<pre><code class=\"language-css\">\n\/* Genel stil kurallar\u0131 - genellikle mobil \u00f6ncelikli (mobile-first) *\/\nbody {\n  font-family: Arial, sans-serif;\n  padding: 10px;\n}\n\n.container {\n  width: 100%;\n  padding: 15px;\n  box-sizing: border-box; \/* padding&#39;in geni\u015fli\u011fi etkilememesi i\u00e7in *\/\n}\n\n\/* K\u00fc\u00e7\u00fck ekranlar (mobil cihazlar) i\u00e7in \u00f6zel stiller *\/\n@media screen and (max-width: 768px) {\n  h2 {\n    font-size: 1.5em;\n  }\n  .sidebar {\n    display: none; \/* Yan men\u00fcy\u00fc mobil g\u00f6r\u00fcn\u00fcmde gizle *\/\n  }\n}\n\n\/* Orta ve b\u00fcy\u00fck ekranlar (tabletler ve masa\u00fcst\u00fc) i\u00e7in \u00f6zel stiller *\/\n@media screen and (min-width: 769px) {\n  .container {\n    max-width: 960px;\n    margin: 0 auto;\n    display: flex; \/* \u0130\u00e7eri\u011fi ve yan men\u00fcy\u00fc yan yana g\u00f6ster *\/\n  }\n  .main-content {\n    flex: 3;\n    padding-right: 20px;\n  }\n  .sidebar {\n    flex: 1;\n    background-color: #f0f0f0;\n    padding: 20px;\n  }\n}\n\n<\/pre>\n<p><\/code><\/p>\n<p>Bu CSS kodu \u00f6rne\u011fi, taray\u0131c\u0131 penceresinin geni\u015fli\u011fine g\u00f6re farkl\u0131 stiller uygulayan medya sorgular\u0131n\u0131 g\u00f6stermektedir. Mobil \u00f6ncelikli (mobile-first) bir yakla\u015f\u0131mla, \u00f6nce k\u00fc\u00e7\u00fck ekranlar i\u00e7in temel stiller tan\u0131mlan\u0131r, ard\u0131ndan daha b\u00fcy\u00fck ekranlar i\u00e7in \u00f6zel ayarlamalar yap\u0131l\u0131r. Bu sayede, kullan\u0131c\u0131lar\u0131m\u0131z\u0131n belge i\u015fleme hatt\u0131m\u0131zla etkile\u015fimde bulunaca\u011f\u0131 web aray\u00fczleri, hangi cihaz\u0131 kullan\u0131rlarsa kullans\u0131nlar, optimize edilmi\u015f ve kullan\u0131c\u0131 dostu bir deneyim sunacakt\u0131r.<\/p>\n<h2 id=\"sonuc-akilli-belge-islemenin-gelecegi-ve-firsatlar\">Sonu\u00e7: Ak\u0131ll\u0131 Belge \u0130\u015flemenin Gelece\u011fi ve F\u0131rsatlar<\/h2>\n<p>Bu makalede, AWS'in g\u00fc\u00e7l\u00fc ve sunucusuz servisleri olan S3, Textract, Comprehend ve DynamoDB'yi bir araya getirerek, karma\u015f\u0131k ve zaman al\u0131c\u0131 manuel belge i\u015fleme s\u00fcre\u00e7lerini otomatikle\u015ftirmenin ve ak\u0131ll\u0131 hale getirmenin yollar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. Bir belgenin S3'e y\u00fcklenmesinden, Textract ile verilerin \u00e7\u0131kar\u0131lmas\u0131na, Comprehend ile metinlerin anlamsal olarak analiz edilmesine ve son olarak DynamoDB'de yap\u0131sal olarak saklanmas\u0131na kadar olan t\u00fcm ad\u0131mlar\u0131 uygulamal\u0131 \u00f6rneklerle g\u00f6sterdik.<\/p>\n<p>Finansal bir kurulu\u015fun kredi ba\u015fvuru formlar\u0131n\u0131 i\u015fleme senaryosu \u00fczerinden, bu hatt\u0131n nas\u0131l de\u011fer yaratabilece\u011fini g\u00f6rd\u00fck. Art\u0131k binlerce belgeyi manuel olarak i\u015flemek yerine, AWS tabanl\u0131 bu ak\u0131ll\u0131 pipeline, ba\u015fvuru verilerini saniyeler i\u00e7inde \u00e7\u0131karabilir, do\u011frulayabilir ve ilgili sistemlere aktarabilir. Bu otomasyon, sadece operasyonel maliyetleri d\u00fc\u015f\u00fcrmekle kalmaz, ayn\u0131 zamanda insan kaynaklar\u0131n\u0131n daha katma de\u011ferli i\u015flere odaklanmas\u0131n\u0131 sa\u011flar, i\u015flem h\u0131z\u0131n\u0131 art\u0131r\u0131r ve insan hatas\u0131 riskini minimize eder. \u00d6zellikle finans, sa\u011fl\u0131k, lojistik ve hukuk gibi yo\u011fun belge ak\u0131\u015f\u0131 olan sekt\u00f6rler i\u00e7in bu t\u00fcr bir otomasyon, rekabet avantaj\u0131 sa\u011flay\u0131c\u0131 bir unsurdur.<\/p>\n<p>Ak\u0131ll\u0131 belge i\u015flemenin gelece\u011fi olduk\u00e7a parlak. Yapay zeka ve makine \u00f6\u011frenimi alan\u0131ndaki s\u00fcrekli geli\u015fmelerle birlikte, belgelerden veri \u00e7\u0131karma ve anlama yetenekleri daha da sofistike hale gelecektir. \u00d6zel olarak e\u011fitilmi\u015f Textract ve Comprehend modelleri, sekt\u00f6rlere \u00f6zg\u00fc jargon ve belge yap\u0131lar\u0131n\u0131 daha da iyi anlayabilecek, b\u00f6ylece do\u011fruluk oranlar\u0131 artarken, entegrasyon s\u00fcre\u00e7leri daha da basitle\u015fecektir. Bu teknoloji, sadece veri \u00e7\u0131karmakla kalmay\u0131p, ayn\u0131 zamanda belgeler aras\u0131ndaki ili\u015fkileri kurma, anormallikleri tespit etme ve hatta karar alma s\u00fcre\u00e7lerini destekleme gibi yetenekler de kazanacakt\u0131r. \u0130\u015fletmelerin bu teknolojiyi benimsemesiyle, veri odakl\u0131 kararlar alma yetenekleri g\u00fc\u00e7lenecek ve operasyonel verimlilikleri yeni zirvelere ula\u015facakt\u0131r. Ak\u0131ll\u0131 belge i\u015fleme, sadece bir otomasyon arac\u0131 olmaktan \u00f6te, i\u015fletmelerin dijital d\u00f6n\u00fc\u015f\u00fcm yolculu\u011funda stratejik bir enstr\u00fcman olarak konumlanmaktad\u0131r.<\/p>\n<h3 id=\"sikca-sorulan-sorular-sss\">S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4 id=\"s1-maliyeti-nasil-tahmin-edebilirim\">S1: Maliyeti nas\u0131l tahmin edebilirim?<\/h4>\n<p><strong>Cevap:<\/strong> AWS servislerinin maliyetleri kullan\u0131m ba\u015f\u0131na de\u011fi\u015fir. S3 depolama miktar\u0131 ve transferine, Textract i\u015flenen sayfa say\u0131s\u0131na ve kullan\u0131lan \u00f6zelliklere (metin alg\u0131lama, form\/tablo analizi), Comprehend API \u00e7a\u011fr\u0131s\u0131 ve i\u015flenen karakter say\u0131s\u0131na, DynamoDB ise okuma\/yazma kapasite birimlerine (veya talep \u00fczerine kullan\u0131ma) g\u00f6re \u00fccretlendirilir. AWS Fiyatland\u0131rma Hesaplay\u0131c\u0131s\u0131 ve ilgili servislerin fiyatland\u0131rma sayfalar\u0131n\u0131 ziyaret ederek kendi kullan\u0131m senaryonuz i\u00e7in tahmini bir maliyet \u00e7\u0131karabilirsiniz. Genellikle, sunucusuz mimariler ba\u015flang\u0131\u00e7 maliyetlerini d\u00fc\u015f\u00fcr\u00fcr ve sadece kulland\u0131\u011f\u0131n\u0131z kaynaklar i\u00e7in \u00f6deme yapman\u0131z\u0131 sa\u011flar, bu da maliyet etkinli\u011fini art\u0131r\u0131r.<\/p>\n<h4 id=\"s2-hangi-belge-formatlarini-destekliyor\">S2: Hangi belge formatlar\u0131n\u0131 destekliyor?<\/h4>\n<p><strong>Cevap:<\/strong> Amazon Textract; PDF, JPEG ve PNG formatlar\u0131n\u0131 destekler. Bu formatlardaki taranm\u0131\u015f belgeler veya dijital PDF'ler Textract taraf\u0131ndan i\u015flenebilir. Comprehend ise temel olarak d\u00fcz metin girdisi al\u0131r, bu nedenle Textract'tan \u00e7\u0131kar\u0131lan metin \u00fczerinde \u00e7al\u0131\u015f\u0131r. S3, t\u00fcm dosya formatlar\u0131n\u0131 depolayabilir, ancak Textract sadece belirli g\u00f6rsel ve PDF formatlar\u0131n\u0131 i\u015fler.<\/p>\n<h4 id=\"s3-hassas-veriler-icin-guvenlik-nasil-saglanir\">S3: Hassas veriler i\u00e7in g\u00fcvenlik nas\u0131l sa\u011flan\u0131r?<\/h4>\n<p><strong>Cevap:<\/strong> Hassas veriler i\u00e7in g\u00fcvenlik, birka\u00e7 katmanda sa\u011flan\u0131r:<\/p>\n<ul>\n<li><strong>\u015eifreleme:<\/strong> S3'te depolanan veriler i\u00e7in sunucu taraf\u0131 \u015fifreleme (SSE-S3, SSE-KMS) kullan\u0131n. Aktar\u0131m s\u0131ras\u0131nda verilerin TLS ile \u015fifrelendi\u011finden emin olun. DynamoDB, verileri varsay\u0131lan olarak depolama an\u0131nda \u015fifreler.<\/li>\n<li><strong>Eri\u015fim Kontrol\u00fc:<\/strong> IAM rolleri ve politikalar\u0131 ile her servise en az ayr\u0131cal\u0131k prensibiyle eri\u015fim verin. S3 kova politikalar\u0131 ve ACL'ler ile eri\u015fimi k\u0131s\u0131tlay\u0131n.<\/li>\n<li><strong>A\u011f \u0130zolasyonu:<\/strong> VPC u\u00e7 noktalar\u0131 kullanarak servisler aras\u0131 ileti\u015fimin AWS'in \u00f6zel a\u011f\u0131 \u00fczerinden yap\u0131lmas\u0131n\u0131 sa\u011flay\u0131n, b\u00f6ylece internet \u00fczerinden veri s\u0131zmas\u0131 riskini azalt\u0131n.<\/li>\n<li><strong>Veri Maskeleme\/Anonimle\u015ftirme:<\/strong> Amazon Comprehend'in PII (Ki\u015fisel Tan\u0131mlay\u0131c\u0131 Bilgi) alg\u0131lama yetene\u011fini kullanarak hassas verileri maskeleyebilir veya anonimle\u015ftirebilirsiniz.<\/li>\n<\/ul>\n<h4 id=\"s4-turkce-belgelerle-uyumu-nasil\">S4: T\u00fcrk\u00e7e belgelerle uyumu nas\u0131l?<\/h4>\n<p><strong>Cevap:<\/strong> Amazon Textract, T\u00fcrk\u00e7e dahil bir\u00e7ok dildeki metni ba\u015far\u0131l\u0131 bir \u015fekilde alg\u0131lar ve \u00e7\u0131kar\u0131r. Amazon Comprehend de T\u00fcrk\u00e7e i\u00e7in varl\u0131k tan\u0131ma, anahtar ifade \u00e7\u0131karma ve duygu analizi gibi yetenekleri destekler. Dil kodunu (<code>LanguageCode='tr'<\/code>) belirtmek, Comprehend'in T\u00fcrk\u00e7e metinleri do\u011fru bir \u015fekilde i\u015flemesini sa\u011flar. Bu nedenle, T\u00fcrk\u00e7e belgelerle bu hatt\u0131 rahatl\u0131kla kullanabilirsiniz.<\/p>\n<h4 id=\"s5-pipelinei-baska-aws-servisleriyle-nasil-entegre-edebilirim\">S5: Pipeline'\u0131 ba\u015fka AWS servisleriyle nas\u0131l entegre edebilirim?<\/h4>\n<p><strong>Cevap:<\/strong> Bu pipeline olduk\u00e7a esnektir ve di\u011fer AWS servisleriyle kolayca entegre edilebilir:<\/p>\n<ul>\n<li><strong>AWS Step Functions:<\/strong> Daha karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131n\u0131 g\u00f6rsel olarak tasarlamak, y\u00f6netmek ve hatalar\u0131 ele almak i\u00e7in kullanabilirsiniz.<\/li>\n<li><strong>Amazon SQS\/SNS:<\/strong> B\u00fcy\u00fck hacimli veya e\u015fzamans\u0131z i\u015flemler i\u00e7in mesajla\u015fma servislerini kullanarak i\u015f ak\u0131\u015f\u0131n\u0131 tamponlayabilir ve \u00f6l\u00e7eklendirebilirsiniz.<\/li>\n<li><strong>Amazon Athena\/QuickSight:<\/strong> DynamoDB'deki i\u015flenmi\u015f verileri analiz etmek ve g\u00f6rselle\u015ftirmek i\u00e7in Athena (S3'teki veri g\u00f6l\u00fc \u00fczerinden) ve QuickSight (i\u015f zekas\u0131 panolar\u0131 i\u00e7in) ile entegre edebilirsiniz.<\/li>\n<li><strong>Amazon Sagemaker:<\/strong> Belirli belge t\u00fcrleri i\u00e7in \u00f6zel Textract modelleri e\u011fiterek veya \u00f6zel NLP modelleri geli\u015ftirerek Comprehend'in yeteneklerini geni\u015fletebilirsiniz.<\/li>\n<li><strong>Amazon Rekognition:<\/strong> Belgelerdeki y\u00fczleri veya nesneleri tan\u0131mak isterseniz (\u00f6rne\u011fin kimlik do\u011frulama belgelerinde) Rekognition entegrasyonu d\u00fc\u015f\u00fcnebilirsiniz.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1406],"tags":[],"class_list":{"0":"post-31015","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-aws","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB<\/title>\n<meta name=\"description\" content=\"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS&#039;in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS&#039;in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-04T16:03:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/example.com\/aws_idp_pipeline_flowchart.png\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB\",\"datePublished\":\"2025-10-04T16:03:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\"},\"wordCount\":4989,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"image\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/example.com\/aws_idp_pipeline_flowchart.png\",\"articleSection\":[\"AWS\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\",\"name\":\"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/example.com\/aws_idp_pipeline_flowchart.png\",\"datePublished\":\"2025-10-04T16:03:34+00:00\",\"description\":\"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS'in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage\",\"url\":\"https:\/\/example.com\/aws_idp_pipeline_flowchart.png\",\"contentUrl\":\"https:\/\/example.com\/aws_idp_pipeline_flowchart.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB","description":"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS'in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/","og_locale":"tr_TR","og_type":"article","og_title":"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB","og_description":"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS'in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?","og_url":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-04T16:03:34+00:00","og_image":[{"url":"https:\/\/example.com\/aws_idp_pipeline_flowchart.png","type":"","width":"","height":""}],"author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB","datePublished":"2025-10-04T16:03:34+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/"},"wordCount":4989,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"image":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage"},"thumbnailUrl":"https:\/\/example.com\/aws_idp_pipeline_flowchart.png","articleSection":["AWS"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/","url":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/","name":"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage"},"image":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage"},"thumbnailUrl":"https:\/\/example.com\/aws_idp_pipeline_flowchart.png","datePublished":"2025-10-04T16:03:34+00:00","description":"G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda, devasa boyutlara ula\u015fan belge ak\u0131\u015f\u0131, \u015firketler i\u00e7in hem b\u00fcy\u00fck bir y\u00fck hem de verimlilik kayb\u0131 anlam\u0131na gelebiliyor. Manuel belge i\u015fleme s\u00fcre\u00e7leri zaman al\u0131c\u0131, hataya a\u00e7\u0131k ve maliyetli oldu\u011fundan, kurulu\u015flar bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in otomatik ve ak\u0131ll\u0131 \u00e7\u00f6z\u00fcmler aray\u0131\u015f\u0131nda. Peki, AWS'in g\u00fc\u00e7l\u00fc servislerini kullanarak bu karma\u015f\u0131k belge i\u015fleme s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilir ve i\u015fletmenizi gelece\u011fe ta\u015f\u0131yabiliriz?","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#primaryimage","url":"https:\/\/example.com\/aws_idp_pipeline_flowchart.png","contentUrl":"https:\/\/example.com\/aws_idp_pipeline_flowchart.png"},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ile-akilli-belge-isleme-hatti-olusturma-s3-textract-comprehend-dynamodb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS ile Ak\u0131ll\u0131 Belge \u0130\u015fleme Hatt\u0131 Olu\u015fturma: S3, Textract, Comprehend, DynamoDB"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31015"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31015\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}