استقرار Go Applications در AWS App Runner

AWS App Runner فرآیند استقرار نسخه های جدید کد یا مخزن تصویر خود را ساده می کند. آنها به راحتی می توانند کد خود را به مخزن فشار دهند و App Runner به طور خودکار از روند استقرار مراقبت می کند. از سوی دیگر، برای تیمهای عملیاتی، App Runner اجازه میدهد تا هر بار که یک commit جدید به مخزن کد فشار داده میشود یا یک نسخه تصویر ظرف جدید به مخزن تصویر اضافه میشود، بهطور خودکار اجرا شود.
نمای کلی: App Runner Service
App Runner: منابع خدمات
با AWS App Runner، می توانید خدمات را بر اساس دو نوع منبع خدمات ایجاد و مدیریت کنید:
کد منبع (در این پست وبلاگ پوشش داده شده است)
تصویر منبع
کد منبع چیزی نیست جز کد برنامه شما که App Runner آن را ایجاد و اجرا خواهد کرد. تنها کاری که باید انجام دهید این است که App Runner را به یک مخزن کد منبع هدایت کنید و زمان اجرا مناسبی را انتخاب کنید که با نسخه پلتفرم برنامه نویسی مطابقت دارد. App Runner زمان اجراهای مدیریت شده مخصوص پلتفرم (برای Python، Node.js، Java، Go و غیره) را ارائه می دهد.
زمان اجرا پلت فرم AWS App Runner Go ساخت و اجرای کانتینرها با برنامه های تحت وب را بر اساس نسخه Go آسان می کند. شما نیازی به ارائه پیکربندی کانتینر و دستورالعمل های ساخت مانند Dockerfile ندارید. هنگامی که از یک Go Runtime استفاده می کنید، App Runner با یک تصویر زمان اجرا Go مدیریت شده شروع می شود که بر اساس تصویر Amazon Linux Docker است و حاوی بسته زمان اجرا برای یک نسخه از Go و برخی ابزارها است. App Runner از این تصویر زمان اجرا مدیریت شده به عنوان تصویر پایه استفاده می کند و کد برنامه شما را برای ساخت تصویر Docker اضافه می کند. سپس این تصویر را برای اجرای وب سرویس شما در یک کانتینر مستقر می کند.
بیا شروع کنیم
مطمئن شوید که یک حساب AWS دارید و AWS CLI را نصب کنید.
- یک مخزن GitHub برای برنامه Shortener URL این مخزن GitHub را کلون کنید و سپس آن را در یک مخزن GitHub در حساب خود آپلود کنید (همان نام مخزن یعنی apprunner-go-runtime-app را نگه دارید):
کلون git https://github.com/abhirockzz/apprunner-go-runtime-app
- ایجاد یک جدول DynamoDB برای ذخیره اطلاعات URL یک جدول به نام urls ایجاد کنید. موارد زیر را انتخاب کنید:
کلید پارتیشن با نام کد کوتاه (نوع داده رشته)
حالت ظرفیت درخواستی
URL ها
- ایجاد یک نقش IAM با مجوزهای خاص DynamoSB صادرات IAM_ROLE_NAME=apprunner-dynamodb-role aws iam create-role –role-name $IAM_ROLE_NAME –assume-role-policy-document file://apprunner-trust-policy.json
قبل از ایجاد خطمشی، فایل dynamodb-access-policy.json را بهروزرسانی کنید تا نام ARN جدول DynamoDB را منعکس کند.
aws iam put-role-policy –role-name $IAM_ROLE_NAME –policy-name dynamodb-crud-policy –policy-document file://dynamodb-access-policy.json
برنامه را در AWS App Runner اجرا کنید
اگر یک اتصال AWS App Runner GitHub دارید و میخواهید از آن استفاده کنید، به مرحله انتخاب مخزن بروید.
- ایجاد یک AWS App Runner Connection GitHub کنسول App Runner را باز کنید و Create service را انتخاب کنید.
سرویس AWS App Runner را ایجاد کنید
سرویس AWS App Runner را ایجاد کنید
در صفحه Source and Deployment، در بخش Source، برای نوع Repository، مخزن کد منبع را انتخاب کنید. در قسمت اتصال به GitHub، افزودن جدید را انتخاب کنید و سپس در صورت درخواست، اعتبار GitHub خود را ارائه دهید.
منبع و استقرار: اتصال GitHub را اضافه کنید
اتصال GitHub را اضافه کنید
در کادر محاورهای Install AWS Connector for GitHub، اگر از شما خواسته شد، نام حساب GitHub خود را انتخاب کنید. اگر از شما خواسته شد که اتصال AWS را برای GitHub تأیید کنید، مجوز اتصالات AWS را انتخاب کنید. Install را انتخاب کنید.
نام حساب شما به عنوان حساب/سازمان انتخابی GitHub ظاهر می شود. اکنون می توانید یک مخزن در حساب خود انتخاب کنید.
- انتخاب مخزن برای مخزن، مخزن ایجاد شده را انتخاب کنید: apprunner-go-runtime-app. برای Branch، نام شعبه پیشفرض مخزن خود را انتخاب کنید (مثلاً main).
استقرار خود را پیکربندی کنید: در قسمت تنظیمات استقرار، Automatic و سپس Next را انتخاب کنید.
مخزن GitHub را انتخاب کنید
مخزن GitHub را انتخاب کنید
- پیکربندی ساخت برنامه در صفحه پیکربندی ساخت، برای فایل پیکربندی، پیکربندی همه تنظیمات را در اینجا انتخاب کنید.
تنظیمات ساخت زیر را ارائه دهید:
زمان اجرا: Go 1 را انتخاب کنید
دستور ساخت: go build main.go را وارد کنید
دستور شروع: ./main را وارد کنید
پورت: 8080 را وارد کنید
Next را انتخاب کنید.
پیکربندی اطلاعات زمان اجرا
پیکربندی اطلاعات زمان اجرا
- متغیرهای Service Your Under Environment را پیکربندی کنید، یک متغیر محیطی اضافه کنید. برای Key، TABLE_NAME را وارد کنید، و برای مقدار، نام جدول DynamoDB (url) را که قبلا ایجاد کردهاید وارد کنید.
اضافه کردن متغیرهای محیطی
اضافه کردن متغیرهای محیطی
در قسمت Security > Permissions، نقش IAM را که قبلا ایجاد کرده بودید (apprunner-dynamodb-role) انتخاب کنید.
نقش IAM را برای App Runner اضافه کنید
نقش IAM را برای App Runner اضافه کنید
Next را انتخاب کنید.
در صفحه بررسی و ایجاد، تمام جزئیاتی را که وارد کردهاید تأیید کنید و سپس Create and Deploy را انتخاب کنید. اگر سرویس با موفقیت ایجاد شود، کنسول داشبورد سرویس را با نمای کلی سرویس از برنامه نشان میدهد.
بررسی عملکرد کوتاه کننده URL
برنامه دو نقطه پایانی را نشان می دهد:
برای ایجاد یک لینک کوتاه برای URL
از طریق پیوند کوتاه به URL اصلی دسترسی پیدا کنید
ابتدا، نقطه پایانی سرویس App Runner را به عنوان یک متغیر محیطی صادر کنید:
صادرات APP_URL=
صادرات APP_URL=https://jt6jjprtyi.us-east-1.awsapprunner.com
- آن را با نشانی اینترنتی فراخوانی کنید که میخواهید از طریق پیوند کوتاه curl -i -X POST -d ‘https://abhirockzz.github.io/’ $APP_URL به آن دسترسی پیدا کنید
HTTP/1.1 200 OK
تاریخ: پنجشنبه، 21 ژوئیه 2022، ساعت 11:03:40 به وقت گرینویچ
طول محتوا: 25
نوع محتوا: متن/ساده. charset=utf-8
{“ShortCode”:”ae1e31a6″}
شما باید یک پاسخ JSON با یک کد کوتاه دریافت کنید و یک مورد را در جدول DynamoDB نیز ببینید.
می توانید به آزمایش برنامه با URL های دیگری که می خواهید کوتاه کنید ادامه دهید!
- دسترسی به URL مرتبط با کد کوتاه موارد زیر را در مرورگر خود وارد کنید http:///.
به عنوان مثال، وقتی https://jt6jjprtyi.us-east-1.awsapprunner.com/ae1e31a6 را وارد می کنید، به URL اصلی هدایت می شوید.
می توانید از فر نیز استفاده کنید. به عنوان مثال:
صادرات APP_URL=https://jt6jjprtyi.us-east-1.awsapprunner.com
curl -i $APP_URL/ae1e31a6
HTTP/1.1 302 پیدا شد
مکان: https://abhirockzz.github.io/
تاریخ: پنجشنبه، 21 ژوئیه 2022، ساعت 11:07:58 به وقت گرینویچ
طول محتوا: 0