فاز 3: تضمین بسته ها با AWS CodeArtifact

نمای کلی
در فاز 3 از هفت روز DevOps Challenge ، من با اجرای AWS CodeArtifact ، زیرساخت های ابری خود را به سطح بعدی می رسانم. این مرحله پس از تنظیم نمونه EC2 در فاز 1 و ادغام با GitHub در فاز 2 ، بر مدیریت بسته – مؤلفه ای از خطوط لوله توسعه نرم افزار مدرن متمرکز شده است.
CodeArtifact یک مخزن مصنوعی امن و مقیاس پذیر را فراهم می کند که یکپارچه با ابزارهای ساخت مشترک و مدیران بسته بندی مانند Maven ادغام می شود. این به من اجازه داد بسته های نرم افزاری را با اطمینان ذخیره ، منتشر و به اشتراک بگذارم.
یادگیری کلیدی
از طریق این مرحله ، من دانش ارزشمندی در مورد:
مدیریت بسته در AWS
من یاد گرفتم که چگونه یک مخزن امن برای ذخیره بسته های جاوا ایجاد و پیکربندی کنم.
دامنه های مخزن
من فهمیدم که چگونه CodeArtifact مخازن را در دامنه ها برای حاکمیت بهتر سازماندهی می کند.
مخازن بالادست
من اتصالات را به مخازن عمومی مانند Maven Central تنظیم کردم تا به طور خودکار وابستگی های حافظه نهان را بکشید.
کنترل دسترسی به بسته ها
من برای اطمینان از دسترسی به مخازن بسته ، سیاستهای مناسب IAM را اجرا کردم.
ابزارها و مفاهیم کلیدی
برای این مرحله از ابزارها و خدمات زیر استفاده کردم:
aws codeartifact
یک سرویس مخزن کاملاً مدیریت شده Artifact که باعث می شود تا بسته های نرم افزاری ایمن و به اشتراک گذاری ایمن را آسان کنید.
مگس
یک ابزار اتوماسیون ساخت که در درجه اول برای پروژه های جاوا برای مدیریت وابستگی ها استفاده می شود.
AWS iam
هویت و مدیریت دسترسی که کنترل دسترسی ریز دانه را به خدمات AWS ارائه می دهد.
مخزن بالادست
یک منبع پشتیبان که در آن مخزن شما به دنبال بسته هایی است اگر قبلاً در محلی ذخیره نشده باشند.
گام
مرحله 1: مخزن codeartifact
اولین قدم ایجاد یک مخزن جدید CodeArtifact در کنسول مدیریت AWS بود. من به سرویس CodeArtifact پیمایش کردم و مخزنی با نام “NextWork-Devops-Day3-Kene” را راه اندازی کردم. من توضیحی را اضافه کردم تا مشخص کنم که این مخزن بسته های مربوط به یک برنامه وب جاوا را که در سری خط لوله CI/CD Nextwork استفاده می شود ، ذخیره می کند. برای اطمینان از مدیریت وابستگی ، من فروشگاه Maven Central را به عنوان یک مخزن بالادست انتخاب کردم ، که امکان کشیدن خودکار وابستگی های عمومی را در صورت لزوم امکان پذیر می کند. برای سازماندهی مخازن خود ، یک دامنه ایجاد کردم. من آن را “NextWork” نامگذاری کردم تا با کنوانسیون نامگذاری سازمان من مطابقت داشته باشد.
مرحله 2: مرور جریان بسته
پس از تنظیم دامنه و مخزن ، نمودار جریان بسته ارائه شده توسط AWS را مرور کردم. این به من کمک کرد تا درک کنم که چگونه بسته ها در سیستم مدیریت می شوند: بسته های خارجی از عموم: Maven-Central جریان به فروشگاه Maven-Central. مخزن من بسته های فروشگاه Maven-Central را بازیابی می کند. این تضمین می کند که بسته ها قبل از استفاده در برنامه من ذخیره و تأیید می شوند.
مرحله 3: اتصال به مخزن
پس از راه اندازی دامنه و مخزن ، من نیاز به اتصال محیط محلی یا ابر خود به CodeArtifact داشتم. من روی “مشاهده دستورالعمل اتصال” در کنسول AWS کلیک کردم تا جزئیات تنظیم را بدست آورم. دستورالعمل ها مراحل پیکربندی مدیر بسته من و روش تأیید اعتبار را ارائه می دهد.
برای تأیید اعتبار و تعامل با مخزن ، مجبور شدم یک نشانه مجوز CodeArtifact ایجاد کنم. کنسول AWS دستور صادر کردن توکن را با استفاده از AWS CLI فراهم کرد. با این حال ، من باید اطمینان حاصل کنم که اعتبار AWS من قبل از اجرای دستور به درستی بر روی سیستم خود پیکربندی شده است.
مرحله 4: اتصال به نمونه EC2
برای اتصال نمونه EC2 ، من کد زیر را روی آن اجرا کردم تا بتوانم نشانه مجوز CodeArtifact را برای مجوز صادر کنم:
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain nextwork --domain-owner 039612887229 --region eu-west-1 --query authorizationToken --output text`
این کد با خطا روبرو شد زیرا نمونه EC2 مجوز تعامل با مصنوعات کد را نداشت.
برای حل این مسئله ، من یک نقش و سیاست IAM را برای این منظور ایجاد کردم.
این نقش به نمونه EC2 من اجازه داد تا با اطمینان با CodeArtifact تأیید شود.
مرحله 5: ایجاد تنظیمات. xml
برای ذخیره اعتبار به طور ایمن در Maven ، من یک پرونده Settings.xml ایجاد کردم. این پرونده شامل اعتبار مخازن است که به صورت پویا به نشانه مجوز AWS اشاره می کند
مرحله ششم: تدوین پروژه با Maven
با پیکربندی احراز هویت ، من با استفاده از Maven ، برنامه وب جاوا خود را کامپایل کردم
mvn compile --settings settings.xml
این فرایند با موفقیت وابستگی ها را از مخزن CodeArtifact بیرون کشید
پایان
فاز 3 از هفت روز DevOps Challenge نحوه استفاده از AWS CodeArtifact را برای ایمن سازی و مدیریت وابستگی ها برای یک برنامه وب نشان می دهد. این فاز بر اساس کار قبلی تنظیم یک نمونه EC2 و اجرای کنترل نسخه با GitHub ، اضافه می کند و مؤلفه ای را به خط لوله DevOps اضافه می کند.