S3 सिंक
डेटा को AWS S3 बकेट में अपलोड करें।
वर्कफ़्लो डेटा को सीधे AWS S3 बकेट में सहेजें, जिसमें CSV, JSON, और टेक्स्ट फ़ाइल प्रारूपों का समर्थन हो, तथा कई प्रविष्टियों को एकल ऑब्जेक्ट में एकत्र करने या प्रत्येक प्रविष्टि को अलग S3 ऑब्जेक्ट के रूप में सहेजने के लिए विन्यास योग्य आउटपुट मोड हों।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक वर्कफ़्लो चरणों से स्ट्रिंग सामग्री को S3 ऑब्जेक्ट्स में अपलोड करता है। यह ब्लॉक:
स्ट्रिंग सामग्री (फ़ॉर्मैटर, प्रेडिक्शन्स, या अन्य स्ट्रिंग-उत्पन्न करने वाले ब्लॉकों से) और S3 कॉन्फ़िगरेशन को इनपुट के रूप में लेता है
प्रदान किए गए क्रेडेंशियल्स का उपयोग करके AWS S3 से कनेक्ट करता है (या यदि कोई क्रेडेंशियल नहीं दिए गए हों तो डिफ़ॉल्ट AWS क्रेडेंशियल चेन का उपयोग करता है)
के आधार पर उपयुक्त अपलोड रणनीति चुनता है
output_mode:अलग फ़ाइलें मोड: प्रत्येक इनपुट के लिए एक नया S3 ऑब्जेक्ट बनाता है, टाइमस्टैम्प के साथ विशिष्ट कुंजियाँ जनरेट करता है
ऐपेंड लॉग मोड: सामग्री को मेमोरी में बफ़र करता है, जब
max_entries_per_fileतक पहुँच जाता है या जब ब्लॉक नष्ट किया जाता है
के लिए अलग फ़ाइलें मोड: प्रीफ़िक्स, फ़ाइल नाम प्रीफ़िक्स, फ़ाइल प्रकार, और टाइमस्टैम्प से एक विशिष्ट S3 key बनाता है, फिर सामग्री को सीधे अपलोड करता है
के लिए ऐपेंड लॉग मोड:
एकल S3 key के अंतर्गत सामग्री प्रविष्टियों को मेमोरी में बफ़र करता है
अपेंड करने के लिए प्रारूप-विशिष्ट हैंडलिंग लागू करता है:
CSV: बाद के अपेंड्स से हेडर पंक्ति हटाता है (CSV सामग्री में पहली लिखाई पर हेडर शामिल होने चाहिए)
JSON: JSONL (JSON Lines) प्रारूप में बदलता है, प्रत्येक JSON दस्तावेज़ को पार्स करके फिर से सीरियलाइज़ करता है ताकि वह एक ही पंक्ति में आ सके
TXT: सामग्री को नई पंक्तियों के साथ सीधे जोड़ता है
प्रविष्टि की संख्या ट्रैक करता है और जब
max_entries_per_fileतक पहुँच जाता है, फिर नए key के साथ एक नया बफ़र शुरू करता हैब्लॉक नष्ट किए जाने पर बचे हुए किसी भी बफ़र किए गए डेटा को अपलोड करता है
सेव सफल हुआ या विफल, यह इंगित करने वाली त्रुटि स्थिति और संदेश लौटाता है
यह ब्लॉक दो स्टोरेज रणनीतियों का समर्थन करता है: separate files mode प्रत्येक इनपुट के लिए अलग टाइमस्टैम्प वाले S3 ऑब्जेक्ट बनाता है (एक्ज़ीक्यूशन के अनुसार आउटपुट व्यवस्थित करने के लिए उपयोगी), जबकि append log mode प्रविष्टियों को मेमोरी में जमा करता है और रोटेशन पर उन्हें पूर्ण S3 ऑब्जेक्ट्स के रूप में लिखता है (नियंत्रित अपलोड आवृत्ति के साथ time-series logging के लिए उपयोगी)। S3 key नामों में टाइमस्टैम्प शामिल होते हैं (format: YYYY_MM_DD_HH_MM_SS_microseconds) ताकि विशिष्ट keys और कालानुक्रमिक क्रम सुनिश्चित हो सके।
AWS क्रेडेंशियल्स
क्रेडेंशियल्स दो तरीकों से दिए जा सकते हैं:
वर्कफ़्लो इनपुट्स - घोषित करें
aws_access_key_idऔरaws_secret_access_keyको वर्कफ़्लो इनपुट्स के रूप मेंपैरामीटरऔर उन्हें संबंधित फ़ील्ड्स से जोड़ें। इससे क्रेडेंशियल्स वर्कफ़्लो परिभाषा से बाहर रहते हैं और उन्हें रनटाइम पर प्रदान किया जा सकता है।सीक्रेट्स प्रदाता ब्लॉक - क्रेडेंशियल फ़ील्ड्स को आउटपुट से जोड़ें
पर्यावरण सीक्रेट्स स्टोरएक ब्लॉक, जो सर्वर-साइड environment variables से मान पढ़ता है बिना उन्हें वर्कफ़्लो में एम्बेड किए। ध्यान दें: यह केवल self-hostedinferenceसर्वरों पर उपलब्ध है और Roboflow hosted platform पर उपयोग नहीं किया जा सकता।
S3 Key संरचना
अंतिम S3 key निम्न से बनती है:
उदाहरण के लिए, के साथ s3_prefix="logs/detections", file_name_prefix="run", और file_type="csv":
यदि s3_prefix खाली है, तो key सीधे फ़ाइल नाम से शुरू होती है।
Append Log Mode पर नोट
Append log mode में, डेटा को मेमोरी में बफ़र किया जाता है और केवल S3 पर तब अपलोड किया जाता है जब:
यह
max_entries_per_fileसीमा तक पहुँच जाती है (ऑब्जेक्ट रोटेशन), यावर्कफ़्लो teardown पर ब्लॉक instance नष्ट कर दिया जाता है
इसका मतलब है कि प्रत्येक चरण के निष्पादन के बाद डेटा तुरंत S3 में दिखाई नहीं दे सकता। उपयोग करें separate_files मोड यदि तत्काल S3 दृश्यता आवश्यक हो।
सामान्य उपयोग के मामले
क्लाउड डेटा लॉगिंग: डिटेक्शन परिणाम, मेट्रिक्स, या वर्कफ़्लो आउटपुट को सीधे S3 पर अपलोड करें ताकि स्थायी क्लाउड स्टोरेज और डाउनस्ट्रीम प्रोसेसिंग हो सके
डेटा पाइपलाइन इंटीग्रेशन: स्वरूपित CSV या JSONL फ़ाइलों को डेटा पाइपलाइनों, एनालिटिक्स टूल्स, या ML ट्रेनिंग जॉब्स द्वारा उपयोग के लिए S3 पर निर्यात करें
बैच परिणाम संग्रहण: व्यक्तिगत inference परिणामों को टाइमस्टैम्प और प्रीफ़िक्स के अनुसार व्यवस्थित अलग S3 ऑब्जेक्ट्स के रूप में संग्रहीत करें
टाइम-सीरीज़ संग्रह: लागत-कुशल लॉग स्टोरेज के लिए वर्कफ़्लो आउटपुट को बैच किए गए JSONL या CSV फ़ाइलों में S3 पर एकत्रित करें
क्रॉस-सर्विस इंटीग्रेशन: Lambda functions को ट्रिगर करने, SQS queues को फ़ीड करने, या अन्य AWS सेवाओं के साथ इंटीग्रेट करने के लिए डेटा को S3 में लिखें
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/s3_sink@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
file_type
str
बनाई जाने वाली फ़ाइल का प्रकार: 'csv' (CSV प्रारूप), 'json' (JSON प्रारूप, या append_log mode में JSONL), या 'txt' (सादा पाठ)। append_log mode में, JSON फ़ाइलें .jsonl (JSON Lines) प्रारूप में संग्रहीत की जाती हैं, जिसमें प्रति पंक्ति एक JSON ऑब्जेक्ट होता है..
❌
output_mode
str
अपलोड रणनीति: 'append_log' S3 पर entry limit पहुँचने पर कई प्रविष्टियों को बफ़र करता है और उन्हें एकल S3 ऑब्जेक्ट के रूप में अपलोड करता है (batched logging के लिए उपयोगी), या 'separate_files' प्रत्येक इनपुट को एक विशिष्ट timestamp-आधारित key के साथ नए S3 ऑब्जेक्ट के रूप में अपलोड करता है (प्रति-निष्पादन आउटपुट के लिए उपयोगी)..
❌
bucket_name
str
लक्ष्य S3 bucket का नाम। स्थिर string या रनटाइम पर string में resolve होने वाला selector हो सकता है..
✅
s3_prefix
str
S3 key prefix (folder path) जहाँ objects संग्रहीत किए जाएंगे। Trailing slashes स्वचालित रूप से सामान्यीकृत किए जाते हैं। file_name_prefix और timestamp के साथ मिलकर पूर्ण object key बनाता है। उदाहरण: 'logs/detections' 'logs/detections/workflow_output_2024_10_18_14_09_57_622297.csv' जैसे keys बनाता है..
✅
file_name_prefix
str
S3 object नाम बनाने के लिए प्रयुक्त उपसर्ग। timestamp (format: YYYY_MM_DD_HH_MM_SS_microseconds) और file extension के साथ मिलकर 'workflow_output_2024_10_18_14_09_57_622297.csv' जैसे विशिष्ट keys बनाता है..
✅
max_entries_per_file
int
S3 पर अपलोड करने और append_log mode में नया object शुरू करने से पहले बफ़र की गई प्रविष्टियों की अधिकतम संख्या। जब यह सीमा पहुँच जाती है, तो संचित buffer को एक पूर्ण S3 object के रूप में अपलोड किया जाता है और नया buffer एक fresh key के साथ शुरू होता है। केवल तब लागू होता है जब output_mode 'append_log' हो। कम से कम 1 होना चाहिए..
✅
aws_access_key_id
str
प्रमाणीकरण के लिए AWS access key ID। यदि प्रदान नहीं किया गया है, तो boto3 की default credential chain का उपयोग किया जाता है (environment variables, ~/.aws/credentials, या IAM role)। अनुशंसित: इसे hardcoding करने के बजाय Environment Secrets Store block से जोड़ें..
✅
aws_secret_access_key
str
प्रमाणीकरण के लिए AWS secret access key। यदि प्रदान नहीं किया गया है, तो boto3 की default credential chain का उपयोग किया जाता है। अनुशंसित: इसे hardcoding करने के बजाय Environment Secrets Store block से जोड़ें..
✅
aws_region
str
वह AWS region जहाँ bucket स्थित है (जैसे, 'us-east-1')। यदि प्रदान नहीं किया गया है, तो boto3 का default region उपयोग किया जाता है (AWS_DEFAULT_REGION environment variable या ~/.aws/config)..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
रनटाइम संगतता
सॉफ्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन दूरस्थ : Append-log mode प्रक्रिया memory में प्रविष्टियों को buffer करता है, उसके बाद संचित object को S3 पर अपलोड करता है। Stateless या multi-replica HTTP runtimes पर remote step execution के साथ, successive requests अलग worker processes द्वारा सर्व की जा सकती हैं, इसलिए append-log objects workers के बीच reset या split हो सकते हैं। separate_files mode, या persistent WebRTC session में local step execution का उपयोग करें जब प्रत्येक entry को एक single ordered log में कैप्चर करना आवश्यक हो।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार S3 सिंक संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
content(string): S3 पर अपलोड करने के लिए string content। यह अन्य workflow blocks से formatted data होना चाहिए (जैसे, CSV Formatter से CSV content, JSON strings, या plain text)। content format निर्दिष्ट file_type से मेल खाना चाहिए। append_log mode में CSV files के लिए, पहली लिखाई पर content में header rows शामिल होने चाहिए..bucket_name(string): लक्ष्य S3 bucket का नाम। स्थिर string या रनटाइम पर string में resolve होने वाला selector हो सकता है..s3_prefix(string): S3 key prefix (folder path) जहाँ objects संग्रहीत किए जाएंगे। Trailing slashes स्वचालित रूप से सामान्यीकृत किए जाते हैं। file_name_prefix और timestamp के साथ मिलकर पूर्ण object key बनाता है। उदाहरण: 'logs/detections' 'logs/detections/workflow_output_2024_10_18_14_09_57_622297.csv' जैसे keys बनाता है..file_name_prefix(string): S3 object नाम बनाने के लिए प्रयुक्त उपसर्ग। timestamp (format: YYYY_MM_DD_HH_MM_SS_microseconds) और file extension के साथ मिलकर 'workflow_output_2024_10_18_14_09_57_622297.csv' जैसे विशिष्ट keys बनाता है..max_entries_per_file(string): S3 पर अपलोड करने और append_log mode में नया object शुरू करने से पहले बफ़र की गई प्रविष्टियों की अधिकतम संख्या। जब यह सीमा पहुँच जाती है, तो संचित buffer को एक पूर्ण S3 object के रूप में अपलोड किया जाता है और नया buffer एक fresh key के साथ शुरू होता है। केवल तब लागू होता है जब output_mode 'append_log' हो। कम से कम 1 होना चाहिए..aws_access_key_id(Union[secret,string]): प्रमाणीकरण के लिए AWS access key ID। यदि प्रदान नहीं किया गया है, तो boto3 की default credential chain का उपयोग किया जाता है (environment variables, ~/.aws/credentials, या IAM role)। अनुशंसित: इसे hardcoding करने के बजाय Environment Secrets Store block से जोड़ें..aws_region(string): वह AWS region जहाँ bucket स्थित है (जैसे, 'us-east-1')। यदि प्रदान नहीं किया गया है, तो boto3 का default region उपयोग किया जाता है (AWS_DEFAULT_REGION environment variable या ~/.aws/config)..
अंतिम अपडेट
क्या यह उपयोगी था?