شروع به کار با اتومیشن فضای ابری S3

معرفی اتومیشن انجین(Engine Automation) #


با رشد تکنولوژی در سالهای گذشته و شرایط جدید حاکم بر دنیا پس از پاندمی، سازمانها حتی سنتی‌ترینها نیز مجبور به دیجیتالی شدن، شده‌اند و نتیجه جز افزایش روز افزون داده، پردازش و توزیع آن نبوده است. در ایران، در شرایط بحرانی کمبود نیروی متخصص در اثر مهاجرت‌های گسترده‌ی سالهای اخیر، واحدهای آی‌تی سازمانها و حتی تیم‌های توسعه شرکت‌های ارائه دهنده خدمات دچار مشکل‌های عدیده‌ای شده‌اند.
در «شرکت راه کارهای ابری پشتیبان» با توجه به نیاز اختصاصی کاربران، محصولی با نام اتومیشن انجین جهت ارائه خدمات هوشمند پردازش، نگهداری، حفاظت، رمزنگاری، محافظت از مالکیت معنوی و … جهت خدمترسانی به کاربران بر روی سرویس پایه و استاندارد Storage Object طراحی،پیاده سازی و عملیاتی شده است. این سرویس در داخل ایران منحصر به فرد است و در خارج از ایران به صورت محدود، پراکنده و بسیار گران قیمت در دسترس کاربران است.

سرویس اتومیشن فضای ابری پشتیبان در حال حاضر به صورت عملیاتی در اختیار تعداد محدودی از کاربرن فضای ابری پشتیبان قرار داده شده است در پنج دسته‌ی کلی به شرح زیر دسته بندی شده است.

  • سرویس اتوماسیون
  • تبدیل ویدیو (video Converting)
  • تبدیل صوت
  • استخراج پیش نمایش ویدیویی
  • تبدیل تصاویر (image manipulation)
  • واترمارک
  • سرویس ریموت آپلود
  • فشرده سازی و استخراج فایل فشرده
  • سرویس پشتیبان گیری چند ابری (multi-cloud)
  • سرویس پخش و محافظت محتوای ویدیویی

معرفی ابزارهای اتومیشن انجین پشتیبان #

  • سنسور (Sensor)
    در اتومیشن انجین کاربر میتواند بر روی نقاط ذخیره‌سازی داده (مثال یک باکت یا پوشه)، یک
    سنسور بسازد. هر سنسور در هنگام دریافت داده (مانند آپلود) در آن نقطه، داده را بررسی کرده و بر
    اساس شرایط و تنظیماتی که کاربر پیکربندی کرده است، یک یا چند وظیفه و یا زنجیره‌ای از وظایف را
    در صف پردازش قرار می‌دهد. هر سنسور از طیف گستردهای از شرایط و تنظیمات، مانند نوع داده،
    حجم داده، ارسال‌کننده‌ی داده، کانتنت‌تایپ داده، محتوای داده، متادیتا و … پشتیبانی می‌کند.
  • اکشن (Action)
    در اتومیشن انجین کاربر میتواند بر روی نقاط ذخیره‌سازی داده(مثال یک باکت یا پوشه)، یک یا چند
    اکشن بسازد. هر اکشن بر اساس الگوی زمانبندی تعریف شده و شرایط و تنظیماتی که کاربر
    پیکربندی کرده است، یک یا چند وظیفه و یا زنجیرهای از وظایف را در صف پردازش قرار میدهد.
  • پردازش
    پردازش، تبدیل، تغییر و کال هر عملی که بر روی داده‌ها انجام می‌شود در قالب یک وظیفه انجام
    می‌شود. وظایف توسط سنسورها یا اینتروال‌هایی که کاربر تعریف کرده است ساخته می‌شوند.
    هر وظیفه یک ورودی و خروجی دارد. ورودی و خروجی بعضی از وظایف می‌توانند به هم دیگر متصل
    شده و زنجیرهای از وظایف را تشکیل دهند. وظایف میتوانند به صورت سری و موازی یکدیگر انجام
    شوند.

سنسور #

برای شروع کار با سرویس اتومیشن لازم است یک سنسور ایجاد کنید برای این کار به منوی «اتومیشن» بروید و بر روی دکمه کلیک کنید. در همین بخش لیست سنسورهایی که پیش از این ایجاد کرده‌اید نمایش داده می‌شود.

ایجاد سنسور #

در بخش ایجاد سنسور لازم است سنسور خود را در دوبخش پارامترهای سنسور و بخش اکشن‌های سنسور تنظیم کنید و پس از انجام تنظیمات بر روی دکمه ذخیره کلیک کنید تا سنسور شما ایجاد شود.

پارامترهای سنسور #

نام #

یک نام برای سنسور انتخاب کنید. در منوی اتومیشن و در منوی پردازش‌ها با استفاده از این نام می‌توانید سنسور یا پردازش‌های آن را بیابید.

پارتیشن #

بخش پارتیشن می‌توانید پارتیشن اصلی یا مبدا را از لیست پارتیشن‌هایی که در اکانت شما وجود دارد انتخاب کنید. این پارتیشن مبدا شما است که فایل های اولیه شما در یکی از باکت‌های آن بارگذاری می‌شوند.

باکت #

پس از انتخاب پارتیشن مبدا لیست باکت‌های آن پارتیشن در این بخش نمایش داده شده است. شما باید یک باکت به عنوان باکت مبدا انتخاب کنید. آبجکت‌هایی که می‌خواهید عملیات اتومیشن بر روی آنها انجام شوند باید در این باکت بارگذاری شوند.

پارتیشن مقصد #

در این لیست میتوانید پارتیشن S3 مقصد را انتخاب کنید. پارتیشن مبدا یا مقصد می‌توانند یک پارتیشن واحد باشند.

باکت مقصد #

فایل‌های شما پس از تبدیل و عملیات اتومیشن در این باکت بارگذاری می شود. باتوجه به این که آبجکت‌هایی که عملیات اتومیشن بر روی آنها انجام میشود پس از انجام عملیات از طریق ویرایش متادیتا برای سنسور مشخص خواهند بود. توجه داشته باشید که باکت مقصد نمیتواند با باکت مبدا یکسان باشند.

وب‌هوک و پارامتر‌های وب هوک #

اگر توسعه دهنده وب هستید اینجا در مورد استفاده از وب هوک برای سرویس اتومیشن بخوانید.

مسیر آپلود #

از این بخش می‌توانید نام دایرکتوری (پوشه) مورد نظر خودتان برای ذخیره سازی آبجکت‌های تولید شده توسط سنسور در باکت مقصد واردکنید. اگر این بخش خالی باشد تمامی فایل های ایجاد شده توسط سنسور در روت باکت مقصد بارگذاری خواهند شد.

واترمارک #

گزینه واترمارک در پارامترهای سنسور به شما این امکان را می‌دهد که بر روی همه‌ی آبجکت‌های خروجی از نوع تصویر (عکس یا تصویر متحرک) که به باکت و مسیر مقصد بارگذاری می‌شوند یک یا چند واترمارک از نوع متنی با سایز، رنگ و موقعیت دلخواه ثبت کنید. بنابراین تمامی تصاویر در پوشه خروجی با واترمارک هایی که در این بخش تنظیم کرده اید ایجاد خواهند شد. برای تنظیم واترمارک کافیست روی علامت + گوشه فیلد واترمارک کلیک کنید تا پنجره تنظیم واترمارک باز شود. درصورتی که بخواهید چند واترمارک با مشخصات و رنگ متفاوت داشته باشید با استفاده از دکمه افزودن در این بخش اکشن واترمارک بیشتری ایجاد کنید. پس از ساختن اکشن های واترمارک روی دکمه ذخیره تغییرات کلیک کنید.

آپلود فایل اورجینال #

 با فعال کردن تیک آپلود فایل اورجینال در فرم ایجاد سنسور می‌توانید بعد از اتمام تولید فایلهای جدید، فایل اصلی را هم به باکت مقصد انتقال دهید. توجه داشته باشید که فایلهای اصلی پس از تولید فایل‌های جدید از باکت مبدا حذف می‌شوند. با فعال کردن این گزینه نسخه اصلی فایل بارگذاری شده در باکت مبدا هم به باکت و مسیر مقصد منتقل خواهد شد.

ایجاد لینک ویدیو #

با انتخاب این گزینه درصورتی که فایل‎‌های خروجی سنسور شما فایل ویدیویی با فرمت mp4 باشند یک لینک ویدیوپلیر پشتیبان برای شما ایجاد می‌شود. توجه داشته باشید که پس از تبدیل در منوی پردازش‌ها به لینک پلیر و در منوی مدیاسنتر به کد امبد ویدیوها دسترسی دارید.

ردکردن متادیتا‌ها #

هر فایلی که توسط سرویس اتومیشن در یک سنسور ایجاد می‌شود با متادیتای اتومیشن برای سنسورها قابل تشخیص خواهد بود و پس از ایجاد عملیات دیگری بر روی آن ایجاد نمی شود. با فعال بودن این گزینه فایلهای ایجاد شده توسط سنسور فاقد متادیتا‌ی اتومیشن خواهند بود. این گزینه برای زمانی که بخواهید از آبجکتهای تولید شده در یک سنسور دیگر استفاده کنید کاربرد دارد.

یک مثال ساده برای ساخت سنسور #

هر پارتیشن S3 rgw در پشتیبان می‌تواند چندین باکت(Bucket) داشته باشد. بعنوان مثال ما در تصویر زیر در پارتیشن 9964، دو باکت به نام های tmp که محل اصلی ذخیره فایل های ما است، و یک باکت به اسم thumbnail برای ذخیره فایل های تولید شده داریم.

حال فرض کنید که ما میخواهیم زمانی که عکسی بر روی باکت tmp آپلود شد، سیستم به صورت اتوماتیک سه عکس از همان عکس آپلود شده به سایز های (300×300, 200×200, 100×100) تولید کند و عکس های تولید شده را درون باکت thumbnail ذخیره کند.

برای انجام کار باید یک سنسور برای باکت tmp خود بسازیم. یک سنسور شامل اکشن(Action) های مختلفی می‌تواند باشد . به عنوان مثال تولید عکس بند انگشتی به سایز 200X200 یک action از سنسور شما خواهد بود. برای تعریف اکشن های مورد نیاز خود، لازم است یک سنسور جدید ایجاد کنیم. برای این منظور به منوی اتومیشن رفته و روی دکمه‌ی افزودن کلیک می‌کنیم.

در فرم باز شده سه اکشن مورد نظر را که در بالا عنوان کردیم یعنی تولید 3 عکس به سایزهای (100×100, 200×200, 300×300) را ایجاد میکنیم، و یک عنوان (در اینجا سنسور باکت tmp وارد کرده. سپس پارتیشن 9964و باکت tmp را انتخاب می‌کنیم. و در آخر روی دکمه ذخیره کلیک می‌کنیم. (پارامترهای دیگر فرم سنسور در ادامه توضیح داده خواهد شد)

بعد از ایجاد سنسور برای باکت tmp به جدول سنسورها برمیگردیم و سنسوری که ایجاد کرده ایم قابل مشاهده است.

پس از ایجاد میتوانیم سنسور خود را آزمایش کنیم. برای این منظور به باکت tmp در پارتیشن s3 رفته و یک فایل تصویری آپلود می‌کنیم.

بعد از تمام شدن فرآیند تولید عکس می‌توانید عکس‌های تولید شده را در باکت thumbnail خود مشاهده کنید. طبق تصویر زیر یک عکس اصلی که با نام 60487507d4bbb01760243abb.jpeg و عکس هر عکس جدید با پسوند سایز عکس در باکت thumbnail اپلود شده.

به عنوان مثال 60487507d4bbb01760243abb-thumbnail-200-200.jpg عکس با سایز 200X200  از عکس اصلی تولید شده است.

کاربرد وب‌هوک #

وب هوک در واقع آدرسی از سرویس یا سرور شما خواهد بود که بعد از تولید فایل‌های نهایی و آپلود بر روی باکت مقصد، سیستم اتومیشن اطلاعات کامل این فایل‌ها  را به سرویس یا سرور شما ارسال می‌کند. برای آزمایش نتیجه خروجی وب هوک اتومیشن می‌توانید به آدرس https://webhook.site مراجعه کرده و مطابق زیر آدرس وب هوکی که برای شما تولید شده است را در فیلد وب هوک کپی کنید.

دقت کنید که در شکل زیر کادر سبز رنگ پیغام waiting for first request را مشاهده می‌کنید. این بدین معنی است که به محض اینکه شما از طریق سنسوری که ساخته‌اید، فایلی تولید کنید، در این کادر می‌توانید اطلاعات فایل تولید شده را دریافت کنید.

پارامترهای وب هوک #

دقت کنید در بعضی موارد ممکن است نیاز داشته باشید تا اطلاعاتی خاص را برای سنسورهای مختلفی که ساخته اید در وب هوک خود دریافت کنید. بدین منظور در سنسور مورد نظر بر روی دکمه + بخش پارامترهای وب هوک کلیک می‌کنیم تا پنجره ای مشابه پنجره زیر باز شود.

حال در پنجره میتوانید پارامترهایی خاص متناسب با نیاز خود عنوان کرده و در وب هوک خود دریافت کنید.

روش تعیین نام برای فایل های ساخته شده #

برای اینکه نام فایل‌های خروجی مطابق خواسته خودتان تنظیم کنید لازم است نام فایل‌های ورودی خود را پیش از بارگذاری در باکت مقصد، با مدل خاصی تنظیم کنید.

در حالت عادی به صورت پش فرض نام فایل ها پس از تولید در باکت مقصدبا گزینه های زیر تولید می شود.

  • مقدار {uuid}‍ : مقداری تصادفی برمیگرداند
  • مقدار {action-id} : مقدار id اکشن را برمیگرداند
  • مقدار {d} : مقدار اندازه (عرض-ارتفاع) از عکس و مقدار (ارتفاع) از ویدئو را برمیگرداند
  • مقدار {ext} : مقدار فرمت فایل را برمی گرداند. شما نمیتوانید این مقدار را استفاده کنید.
  • مقدار {original} : نام فایل آپلود شده را برمیگرداند.
  • مقدار {metadata-x} : در این مقدار میتوانید خود یک metadata تعریف کنید

به عنوان مثال شما در اول کار مقدار زیر را وارد میکنید.

"x-amz-meta-generate-name": `test-file.png`,

در این حالت اگر مثلا فایلی که شما تولید کرده اید عکس با فرمت jpg باشد. در نهایت تمامی عکس های شما که روی آبجکت استوریج آپلود میشوند با اسم test-file.png.jpg خواهند بود. یعنی تمامی چیزهایی که وارد کرده اید، با عنوان نام فایل در نظر گرفته اید.

حال میخواهیم نام اسم را با دلخواه خود و به صورت انتخابی ایجاد کنید. به مثال زیر دقت کنید. فرض کنید که فایلی به اسم wallpaper-Desert.jpg اپلود کرده اید. حالا میخواهیم با دستوراتی که در بالا توضیح دادیم نام فایلهای نهایی رو تغیر دهیم.

"x-amz-meta-generate-name": `{original}-{action-id}-test-file-{h}.png`,

در اسمی که ما در بالا تعیین کردیم، ابتدا نام اصلی فایل یعنی wallpaper-Desert سپس یک رشته ی تصادفی مثل 60718fe6b122681658fb2901، بعد مقدار -test-file- و در آخر {h} ارتفاع تصویر تولید شده خواهد بود.

در نهایت اسم تولید شده یکی از عکسها به شکل زیر خواهد شد.

wallpaper-Desert-60718fe6b122681658fb2901-test-file-500.jpg

نحوه‌ی عملکرد متغیر {metadata-x} #

برای استفاده از آن ابتدا یک metadata مشابه زیر تعریف میکنیم. در اینجا ما از طریق uuidv4() یک اسم جدید ایجاد میکنیم و به metadata-x میدهیم.

"x-amz-meta-generate-name": `{original}-{action-id}-{metadata-x}-test-file-{h}.png`,
"x-amz-meta-metadata-x": uuidv4(),

سپس میتوانید این مقدار را در اسم گذاری خود استفاده کنید

ارسال پارامتر از طریق {params-x} #

نکته: دقت کنید در زمان استفاده از این قابلیت٬ اسمی که انتخاب میکنید حتما باید با حروف کوچک باشد.

مرحله اول استخراج params :

فرض کنیم کاربر این مقادیر را ارسال کرده است:

"x-amz-meta-params-test1":"arash",   
"x-amz-meta-params-var2":"arian",
"x-amz-meta-params-name3":"poshtiban"


پس از استخراج باید این داده ها را داشته باشیم:

{
    "test1": "arash",
    "var2": "arian",
    "name3": "poshtiban"
}


مرحله‌ی دوم جایگذاری params: در این مرحله متغیرهای زیر برای کاربر در دسترس است و باید با مقدار دریافتی از کاربر جاگزین شود:

{params-test1}
{params-var2}
{params-name3}

معرفی اجزای مختلف اکشن #

پس از تنظیم پارامترهای سنسور و مشخص شدن پارتیشن مبدا و مقصد و گزینه‌های ذخیره سازی فایل‌های خروجی برای عملیات تغییر برو روی فایل‌های ورودی باید اکشن ایجاد کنید. در محیط ایجاد سنسور در زیر بخش پارامترهای سنسور یک اکشن برای تنظیم شما وجود دارد و برای ایجاد اکشن‌های بیشتر با استفاده از دکمه افزودن در پایین اکشن اول می‌توانید اکشن بعدی را ایجاد کنید. اکشن‌ها با توجه به نوع کارکرد آنها ممکن است گزینه‌های مختلفی برای تنظیم داشته باشند. در مطالب جداگانه انواع کارکردهای مختلف هر اکشن را توضیح خواهیم داد.

لیست سنسورها #

با کلیک بر روی منوی اتومیشن لیست سنسورهایی که ایجاد کرده‌اید نمایش داده خواهد شد. در این لیست دکمه‌های ویرایش و حذف برای هر سنسور مشخص هستند. نام سنسور، نام پارتیشن مبدا و باکت مبدا و مقصد و تعداد اکشن‌های موجود در سنسور نمایش داده می‌شود.

پردازش‌ها #

در منوی پردازش ها لیست پردازش هایی که بر روی سنسورها در حال انجام است را مشاهده میکنید و میتوانید با استفاده دکمه فیلتر و اعمال فیلتر پردازش مورد نظر خودتان را بیابید و مشاهده کنید در چه وضعیتی است یا وضعیت و نوع فایل های خروجی چیست.

پردازش هایی که در حال انجام هستند در بخش وضعیت با ایکن مشخص هستند و پس از انجام شدن پردازش ایکن تیک سبز رنگ نمایش داده می شود. در هر ردیف پردازش تعداد فازها‌‌ (مراحل انجام شده بر روی یک فایل) و تعداد فایل‌ها (فایل‌های ایجاد شده) مشخص هستند. اگر پردازش شما مربوط به اکشن «تغییر سایز ویدیو» باشد و شما در پارامترهای سنسور گزینه «ایجاد لینک ویدیو» را فعال کرده باشید. در لیست پردازش‌ها شناسه پردازش به صورت هایپر لینک در آمده و با کلیک بر روی آن لینک ویدیو پلیر مربوط به فایل‌های ویدیویی آن پردازش را در دسترس شما قرار خواهد داد. برای مرور راحت تر و دسترسی به کدهای امبد ویدیو پلیر در منوی اصلی مدیا سنتر ویدیوهای پردازش شده برای این بخش به صورت جداگانه لیست شده اند.

نکته مهم: در حال حاضر به این دلیل که سرویس اتومیشن در حال توسعه است درصورتی که بخواهید به صورت تستی ایجاد سنسور برای یک بات مبدا را انجام دهید بهتر است یک باکت جدید ایجاد کنید و بعد از انجام تست های خودتان و یا حذف سنسور آن باکت را هم حذف کنید و سنسور عملیاتی و اصلی خودتان را مجدد بر روی یک باکت جدید یا باکت های فعلی خودتان ایجاد کنید.

را انجام دهید

مدیا سنتر #

در منوی مدیاسنتر برای فایل‌های ویدیویی که در سنسور آنها گزینه «ایجاد لینک ویدیو» فعال بوده است یک ویدیو پلیر برای هر فایل ویدیویی ورودی ایجاد خواهد شد و همچنین به کد امبد آن در این لیست دسترسی خواهید داشت که شامل لینک ویدیو پیلیر و کد امبد برای قرار دادن سریع ویدیو پلیر در صفحات وب یا اپلیکیشن شما است. در این نسخه از ویدیو پلیر پشتیبان گزینه دانلود مخفی شده است و قابلیت دانلود آن برای کاربر عادی وجود ندارد.

ویدیو پلیر ایجاد شده حاوی کیفیت‌های مختلف ویدیو با وضوح تعیین شده برای ویدیوی ورودی است و قابلیت پخش اتوماتیک کیفیت متناسب یا کیفیت اینترنت مخاطب را دارد.