مقدمة
في هذا الدليل، ستتعلم كيفية نشر تطبيق مُحاوي باستخدام AWS App Runner. AWS App Runner هي خدمة مُدارة بالكامل تُمكّن المطورين من نشر تطبيقات الويب وواجهات برمجة التطبيقات المُحاوية بسرعة وعلى نطاق واسع دون الحاجة إلى خبرة سابقة في البنية التحتية. ابدأ باستخدام شفرة المصدر أو صورة الحاوية. يُنشئ App Runner تطبيق الويب وينشره تلقائيًا، ويُوازن أحمال حركة المرور باستخدام التشفير. كما يُوسّع App Runner نطاقه تلقائيًا لتلبية احتياجات حركة المرور لديك.
المتطلبات الأساسية
- حساب AWS
- يرجى التأكد من تكوين AWS CDK الخاص بك بشكل صحيح.
الخطوة 1 - إنشاء تطبيق CDK
أولاً، تأكد من أنك قمت بتنزيل واستخراج الكود النموذجي لهذا الدليل المشار إليه في صفحة المقدمة (بدلاً من عنوان رمز العينة كمرجع، و (استبدله باسم الملف المقابل):
wget <EXAMPLE_CODE_URL>
unzip <DOWNLOADED_FILE_NAME>
cd getting-started-containers-app-runner-mainبعد ذلك، تأكد من تثبيت CDK v2.
cdk --versionالآن نقوم بإنشاء تطبيق هيكل CDK باستخدام TypeScript كلغة مفضلة لدينا:
mkdir infra
cd infra
cdk init app --language typescriptسيكون لهذا الناتج التالي:
Applying project template app for typescript
# Welcome to your CDK TypeScript project!
This is a blank project for TypeScript development with CDK.
The `cdk.json` file tells the CDK Toolkit how to execute your app.
## Useful commands
* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests
* `cdk deploy` deploy this stack to your default AWS account/region
* `cdk diff` compare deployed stack with current state
* `cdk synth` emits the synthesized CloudFormation template
Executing npm install...
✅ All done!إنشاء الكود لمكدس الموارد
انتقل إلى ملف lib/infra-stack.ts. هنا تكتب شيفرة حزمة الموارد التي ترغب في إنشائها. حزمة الموارد هي مجموعة من موارد البنية التحتية السحابية (في هذه الحالة تحديدًا، جميع موارد AWS) مُجهزة في حساب مُحدد. يُمكن تكوين الحساب/المنطقة التي تُجهز فيها هذه الموارد في الحزمة.
في هذه الفئة، قد ترغب في إنشاء الموارد التالية:
- خدمة تشغيل التطبيق: هذه هي الطريقة التي يتم بها تشغيل الحاوية الخاصة بك.
- الإخراج: يعرض هذا عنوان URL لخدمتك.
نشر خدمة الحاوية
لنشر خدمتك، يجب عليك أولاً استيراد الوحدات النمطية الصحيحة (بدلاً من في مقتطف التعليمات البرمجية أدناه، استبدل إصدار CDK الذي قمت باسترداده مسبقًا.
npm i @aws-cdk/aws-apprunner-alpha@<CDK_VERSION>-alpha.0ثم قم بتحرير ملف lib/infra-stack.ts لإضافة التبعيات في أعلى الملف:
import apprunner = require('@aws-cdk/aws-apprunner-alpha'); // Allows working with App Runner resources
import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; // Allows building the docker image and uploading to ECR
import * as path from "path"; // Helper for working with file pathsتوفر هذه الوحدات إمكانية الوصول إلى جميع المكونات المطلوبة لنشر تطبيق ويب.
بعد ذلك، عليك تحديد الحاوية المُراد استخدامها بإنشاء خدمة App Runner. في هذا البرنامج التعليمي، سنُنشئ صورة الحاوية المُرفقة مع التطبيق النموذجي في SampleApp، ونجعل CDK تُدير عملية بناء الحاوية وتحميلها ونشرها نيابةً عنا. سنُنشئ أيضًا دور IAM فارغًا لربطه بالخدمة في الدروس التعليمية القادمة. لإنشاء الخدمة ودور IAM، أضف الكود التالي:
// The code that defines your stack goes here
//If you are running on a Mac using the new M1 chip, please change `../SampleApp` to `../../SampleApp`.
const imageAsset = new DockerImageAsset(this, 'ImageAssets', {
directory: path.join(__dirname, '../SampleApp'),
});
const service = new apprunner.Service(this, 'Service', {
source: apprunner.Source.fromAsset({
imageConfiguration: { port: 80 },
asset: imageAsset
})
});
new cdk.CfnOutput(this, "apprunner-url", {
exportName: "apprunner-url",
value: service.serviceUrl,
description: "URL to access service"
});في الكود أعلاه، أنشأتَ خدمةً باستخدام App Runner لتشغيل حاوية تُنشئها CDK من ملف Dockerfile في مجلد SampleApp. قبل استخدام CDK، عليكَ تمهيدها - وهذا يُنشئ البنية التحتية اللازمة لـ CDK لإدارة البنية التحتية في حسابك:
cdk bootstrapيجب أن ترى إخراجًا مشابهًا لما يلي:
⏳ Bootstrapping environment aws://0123456789012/<region>...
✅ Environment aws://0123456789012/<region> bootstrappedبعد اكتمال عملية التمهيد، يمكنك تشغيل CDK لنشر البنية الأساسية المطلوبة بالكامل:
cdk deployيجب أن ترى إخراجًا مشابهًا لما يلي:

ستُطالبك مجموعة أدوات التطوير (CDK) قبل إنشاء البنية التحتية، لأنها ستُنشئ البنية التحتية التي ستُغيّر إعدادات الأمان - في هذه الحالة، من خلال إنشاء أدوار IAM ومجموعات الأمان. للنشر، اضغط y ثم Enter. ستنشر مجموعة أدوات التطوير (CDK) الآن جميع البنية التحتية التي حددتها. سيستغرق الأمر بضع دقائق. بمجرد تشغيلها، ستظهر تحديثات كالتالي:

بمجرد الانتهاء، ستشاهد الناتج مع رابط إلى عنوان URL العام للوصول إلى خدمتك، كما هو موضح أدناه:

الخطوة 2 – تنظيف الموارد
إزالة البنية التحتية القائمة على السحابة
تُسهّل AWS CDK إزالة بنيتك التحتية بأمر واحد فقط. لإزالة جميع البنى التحتية التي أنشأتها، استخدم أمر cdk kill — سيؤدي هذا إلى إزالة البنية التحتية المُنشأة في هذا البرنامج التعليمي فقط.
سوف ترى تأكيدًا:
cdk destroy
Are you sure you want to delete: InfraStack (y/n)? بعد الضغط على y وEnter، سيبدأ CDK بإزالة جميع البنية التحتية وتوفير التحديثات. بعد الانتهاء، سترى ما يلي:
Are you sure you want to delete: InfraStack (y/n)? y
InfraStack: destroying...
✅ InfraStack: destroyedنتيجة
لقد أكملت البرنامج التعليمي "نشر تطبيق ويب باستخدام AWS App Runner".










