مقدمه
در این راهنما، نحوه استقرار یک برنامه کانتینری با AWS App Runner را خواهید آموخت. AWS App Runner یک سرویس کاملاً مدیریت شده است که به توسعه دهندگان این امکان را می دهد تا به سرعت برنامه های وب و API های کانتینری را در مقیاس و بدون نیاز به تجربه زیرساختی قبلی به کار گیرند. با کد منبع یا یک تصویر ظرف شروع کنید. App Runner به طور خودکار برنامه وب را می سازد و مستقر می کند و بار ترافیک را با رمزگذاری متعادل می کند. App Runner همچنین به طور خودکار افزایش یا کاهش می یابد تا نیازهای ترافیکی شما را برآورده کند.
پیش نیازها
- یک حساب AWS
- لطفاً مطمئن شوید که AWS CDK خود را به درستی پیکربندی کرده اید
مرحله اول – برنامه CDK را ایجاد کنید
ابتدا، مطمئن شوید که کد نمونه این راهنما را که در صفحه مقدمه به آن ارجاع داده شده است، دانلود و استخراج کرده اید (به جای <EXAMPLE_CODE_URL> آدرس کد نمونه به عنوان مرجع، و <DOWNLOADED_FILE_NAME> را با نام فایل مربوطه جایگزین کنید):
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) است که در یک حساب خاص ارائه می شود. حساب/منطقه ای که این منابع در آن تهیه می شوند را می توان در پشته پیکربندی کرد.
در این دسته، شما می خواهید منابع زیر را ایجاد کنید:
- سرویس App Runner: کانتینر شما به این صورت اجرا می شود.
- خروجی: این نشانی اینترنتی سرویس شما را نمایش می دهد.
سرویس کانتینر را مستقر کنید
برای استقرار سرویس خود، ابتدا باید ماژول های صحیح را وارد کنید (به جای <CDK_VERSION> در قطعه کد زیر، نسخه 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 عمومی برای دسترسی به سرویس خود مشاهده خواهید کرد، همانطور که در زیر نشان داده شده است:
مرحله دوم – پاکسازی منابع
زیرساخت مبتنی بر clouad را حذف کنید
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
نتیجه
شما آموزش Deploy a Web App Using AWS App Runner را به پایان رسانده اید.