انشر حاويات بدون خادم على السحابة من سطر الأوامر الخاص بك
Fargate عبارة عن واجهة سطر أوامر لنشر الحاويات إلى AWS Fargate. باستخدام Fargate ، يمكن للمطورين تشغيل خدمات Fargate بسهولة بما في ذلك أشياء مثل: نشر التطبيقات (الصور ومتغيرات البيئة)، ومراقبة عمليات النشر، وعرض سجلات الحاويات، وإعادة التشغيل والقياس.
يمكنك تثبيت أحدث واجهة سطر أوامر (CLI) مستقرة باستخدام برنامج نصي لأداة حليقة أو عن طريق تنزيل الملف الثنائي من صفحة الإصدارات. بمجرد التثبيت، ستحصل على أمر fargate
.
curl -s get-fargate.turnerlabs.io | sh
إذا كنت ترغب في تثبيت أحدث إصدار تجريبي، فاستخدم هذا الأمر:
curl -s get-fargate.turnerlabs.io | RELEASE=develop sh
افتراضيًا، يستخدم Fargate us-east-1 لأن هذه هي المنطقة الوحيدة التي يتوفر فيها AWS Fargate. يقبل سطر الأوامر معلمة --region للاستخدام المستقبلي وسيحترم إعدادات بيئة AWS_REGION و AWS_DEFAULT_REGION . لاحظ أن تحديد منطقة لا تتوفر فيها جميع الخدمات المطلوبة سيؤدي إلى ظهور خطأ.
راجع جدول المنطقة للحصول على تفاصيل الخدمات المتوفرة في كل منطقة.
تم إنشاء Fargate باستخدام AWS SDK for Go الذي يبحث عن بيانات الاعتماد في المواقع التالية:
متغيرات البيئة
ملف بيانات الاعتماد المشتركة
ملف تعريف مثيل EC2
لمزيد من المعلومات، راجع تحديد بيانات الاعتماد في وثائق AWS SDK for Go.
هناك عدة طرق لتحديد المعلمات. كل عنصر له الأولوية على العنصر الذي يليه:
وسيطات CLI (على سبيل المثال، --cluster my-cluster
)
متغيرات البيئة (على سبيل المثال، FARGATE_CLUSTER=my-cluster
)
fargate.yml
(على سبيل المثال، أدناه)
cluster : my-cluster
service : my-service
task : my-task
rule : my-event-rule
verbose : false
nocolor : true
علَم | قصير | تقصير | وصف |
---|---|---|---|
--تَجَمَّع | -ج | اسم مجموعة ECS | |
--منطقة | لنا-الشرق-1 | منطقة أوس | |
--لا لون | خطأ شنيع | تعطيل إخراج اللون | |
--مطول | -v | خطأ شنيع | إخراج مطول |
تدير الخدمات المثيلات الطويلة الأمد للحاويات الخاصة بك والتي يتم تشغيلها على AWS Fargate. إذا خرجت حاويتك لأي سبب من الأسباب، فسيقوم برنامج جدولة الخدمة بإعادة تشغيل حاوياتك والتأكد من تشغيل الخدمة بالعدد المطلوب من المهام. يمكن استخدام الخدمات بالتنسيق مع موازن التحميل لتوزيع حركة المرور بين المهام في خدمتك.
علَم | قصير | تقصير | وصف |
---|---|---|---|
--خدمة | -س | اسم خدمة ECS |
fargate service list
قائمة الخدمات
fargate service deploy [--image <docker-image>]
نشر صورة جديدة للخدمة
يمكن تحديد صورة حاوية Docker المراد استخدامها في الخدمة عبر علامة --image.
fargate service deploy [--file docker-compose.yml]
نشر الصورة ومتغيرات البيئة والأسرار المحددة في ملف إنشاء عامل الإرساء للخدمة
انشر صورة عامل الإرساء ومتغيرات البيئة المحددة في ملف إنشاء عامل الإرساء معًا كوحدة واحدة. لاحظ أنه يتم استبدال متغيرات وأسرار البيئات بما هو موجود في ملف الإنشاء.
يمكن تعريف الأسرار على أنها أزواج قيمة المفتاح ضمن حقل ملحق إنشاء ملف عامل الإرساء x-fargate-secrets
. لاستخدام حقول الامتداد، يجب أن يكون إصدار ملف الإنشاء 2.4
على الأقل لسلسلة 2.x أو 3.7
على الأقل لسلسلة 3.x.
يتيح لك هذا تشغيل docker-compose up
محليًا لتشغيل تطبيقك بنفس الطريقة التي سيتم تشغيله بها في AWS. لاحظ أنه بينما يدعم تكوين yaml docker-compose العديد من الخيارات، يتم نشر متغيرات الصورة والبيئة فقط في Fargate. إذا كان ملف إنشاء عامل الإرساء يحدد أكثر من حاوية واحدة، فيمكنك استخدام التسمية aws.ecs.fargate.deploy: 1
للإشارة إلى الحاوية التي ترغب في نشرها. على سبيل المثال:
version : " 3.7 "
services :
web :
build : .
image : 1234567890.dkr.ecr.us-east-1.amazonaws.com/my-service:0.1.0
ports :
- 80:5000
environment :
FOO : bar
BAZ : bam
env_file :
- hidden.env
x-fargate-secrets :
QUX : arn:key:ssm:us-east-1:000000000000:parameter/path/to/my_parameter
labels :
aws.ecs.fargate.deploy : 1
redis :
image : redis
fargate service info
فحص الخدمة
عرض معلومات موسعة لخدمة ما بما في ذلك تكوين موازن التحميل وعمليات النشر النشطة ومتغيرات البيئة والأسرار.
تعرض عمليات النشر الإصدارات النشطة من الخدمة التي يتم تشغيلها. يتم عرض عمليات النشر المتعددة إذا كانت الخدمة تنتقل بسبب النشر أو التحديث لتكوين مثل وحدة المعالجة المركزية أو الذاكرة أو متغيرات البيئة.
fargate service logs [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
[--time] [--no-prefix]
إظهار السجلات من المهام في الخدمة
يمكنك إرجاع إما جزء معين من سجلات الخدمة أو السجلات الخلفية في الوقت الفعلي باستخدام خيار --follow. تكون السجلات مسبوقة باسم دفق السجل الخاص بها والذي يكون بتنسيق "fargate/<service-name>/<task-id>."
سيستمر Follow في تشغيل السجلات وإرجاعها حتى تتم مقاطعتها بواسطة Control-C. إذا تم تمرير --follow -- فلا يمكن تحديد النهاية.
يمكن إرجاع السجلات لمهام محددة داخل الخدمة عن طريق تمرير معرف المهمة عبر علامة --task. قم بتمرير --task بمعرف المهمة عدة مرات لاسترداد السجلات من مهام محددة متعددة.
يمكن طلب نافذة محددة من السجلات عن طريق تمرير خيارات --start و --end مع تعبير زمني. يمكن أن يكون التعبير الزمني إما مدة أو طابعًا زمنيًا:
يمكنك تصفية السجلات لمصطلح معين عن طريق تمرير تعبير مرشح عبر علامة --filter. قم بتمرير مصطلح واحد للبحث عن هذا المصطلح، وقم بتمرير مصطلحات متعددة للبحث عن رسائل السجل التي تتضمن كافة المصطلحات. راجع وثائق سجلات CloudWatch لمزيد من التفاصيل.
--time يتضمن الطابع الزمني للسجل في الإخراج
--no-prefix يستبعد بادئة دفق السجل من الإخراج
fargate service ps
قائمة المهام قيد التشغيل لخدمة ما
fargate service scale <scale-expression>
قياس عدد المهام في الخدمة
يغير عدد المهام المطلوبة ليتم تشغيلها في الخدمة من خلال تعبير المقياس المحدد. يمكن أن يكون تعبير المقياس إما رقمًا مطلقًا أو دلتا محددة بعلامة مثل +5 أو -2.
fargate service env set [--env <key=value>] [--file <pathname>]
[--secret <key=valueFrom>] [--secret-file <pathname>]
ضبط متغيرات البيئة وأسرارها
يجب تحديد متغير بيئة أو سر واحد على الأقل عبر علامات --env، --file، --secret، أو --secret-file. يمكنك تحديد أي عدد من المتغيرات في سطر الأوامر عن طريق تكرار --env قبل كل متغير، أو وضع متغيرات متعددة في ملف نصي، واحد في كل سطر، وتحديد اسم الملف باستخدام --file و/أو --secret-file .
يجب أن تكون كل سلسلة أو سطر معلمة --env و --secret في الملف بالصيغة "key=value"، بدون علامات اقتباس أو مسافة بيضاء حول "=" إلا إذا كنت تريد مسافة بيضاء بادئة حرفية في القيمة. بالإضافة إلى ذلك، يجب أن يكون الجانب "المفتاح" عبارة عن معرف Shell قانوني، مما يعني أنه يجب أن يبدأ بحرف ASCII من AZ أو شرطة سفلية ويتكون من أحرف وأرقام وشرطات سفلية فقط.
يجب أن تشير "القيمة" في "key=value" لكل علامة --secret إلى ARN إلى سر AWS Secrets Manager أو معلمة AWS Systems Manager Parameter Store.
fargate service env unset --key <key-name>
لم يتم تعيين متغيرات البيئة والأسرار
يقوم بإلغاء تعيين متغير البيئة أو السر المحدد عبر علامة --key. حدد --key باسم مفتاح عدة مرات لإلغاء تعيين متغيرات متعددة.
fargate service env list
إظهار متغيرات البيئة
علَم | قصير | تقصير | وصف |
---|---|---|---|
--cpu | عدد وحدات وحدة المعالجة المركزية التي سيتم تخصيصها لكل مهمة | ||
--ذاكرة | -م | مقدار MiB المخصص لكل مهمة |
fargate service update [--cpu <cpu-units>] [--memory <MiB>]
تحديث تكوين الخدمة
يتم تحديد إعدادات وحدة المعالجة المركزية والذاكرة كوحدات وحدة المعالجة المركزية والميبيبايت على التوالي باستخدام علامتي --cpu و--memory. كل 1024 وحدة معالجة مركزية تعادل وحدة معالجة مركزية افتراضية واحدة. يدعم AWS Fargate مجموعات معينة فقط من تكوينات وحدة المعالجة المركزية والذاكرة:
وحدة المعالجة المركزية (وحدات وحدة المعالجة المركزية) | الذاكرة (ميجابايت) |
---|---|
256 | 512، 1024، أو 2048 |
512 | من 1024 إلى 4096 بزيادات 1 جيجا بايت |
1024 | من 2048 إلى 8192 بزيادات 1 جيجا بايت |
2048 | من 4096 إلى 16384 بزيادات 1 جيجا بايت |
4096 | من 8192 إلى 30720 بزيادات 1 جيجا بايت |
يجب تحديد واحد على الأقل من --cpu أو --memory.
fargate service restart
إعادة تشغيل الخدمة
إنشاء مجموعة جديدة من المهام للخدمة وإيقاف المهام السابقة. يعد هذا مفيدًا إذا كانت خدمتك بحاجة إلى إعادة تحميل البيانات المخزنة مؤقتًا من مصدر خارجي، على سبيل المثال.
علَم | قصير | تقصير | وصف |
---|---|---|---|
--مهمة | -ر | عائلة تعريف المهمة |
المهام هي عمليات تنفيذ للحاوية الخاصة بك لمرة واحدة. يتم تشغيل مثيلات مهمتك حتى تقوم بإيقافها يدويًا إما من خلال واجهات برمجة تطبيقات AWS، أو وحدة الإدارة في AWS، أو حتى تتم مقاطعتها لأي سبب.
fargate task register [--image <docker-image>]
[-e KEY=value -e KEY2=value] [--env-file dev.env]
[--secret KEY3=valueFrom] [--secret-file secrets.env]
يسجل تعريف مهمة جديدًا لصورة عامل الإرساء أو متغيرات البيئة أو الأسرار المحددة بناءً على أحدث مراجعة لمجموعة المهام ويعيد رقم المراجعة الجديد.
يمكن تحديد صورة حاوية Docker التي سيتم استخدامها في تعريف المهمة الجديد عبر علامة --image.
يمكن تحديد متغيرات البيئة باستخدام علامة --env
واحدة أو أكثر أو علامة --env-file
.
يمكن تحديد الأسرار باستخدام علامة --secret
واحدة أو أكثر أو علامة --secret-file
.
fargate task register [--file docker-compose.yml]
يسجل تعريف مهمة جديدًا باستخدام الصورة ومتغيرات البيئة والأسرار المحددة في ملف إنشاء عامل الإرساء. لاحظ أنه يتم استبدال متغيرات البيئة بما هو موجود في ملف الإنشاء.
يمكن تعريف الأسرار على أنها أزواج قيمة المفتاح ضمن حقل ملحق إنشاء ملف عامل الإرساء x-fargate-secrets
. لاستخدام حقول الامتداد، يجب أن يكون إصدار ملف الإنشاء 2.4
على الأقل لسلسلة 2.x أو 3.7
على الأقل لسلسلة 3.x.
إذا كان ملف إنشاء عامل الإرساء يحدد أكثر من حاوية واحدة، فيمكنك استخدام التسمية aws.ecs.fargate.deploy: 1
للإشارة إلى الحاوية التي ترغب في نشرها.
fargate task describe
يصف أمر الوصف تعريف المهمة بتنسيق Docker Compose. صورة Docker ومتغيرات البيئة والأسرار والمنفذ الهدف هي العناصر المعينة.
يمكن أن يكون هذا الأمر مفيدًا للنظر في التغييرات التي تم إجراؤها بواسطة أوامر task register
أو service deploy
أو service env set
. يمكن أن يكون مفيدًا أيضًا لتشغيل تعريف المهمة محليًا لأغراض تصحيح الأخطاء أو استكشاف الأخطاء وإصلاحها.
fargate task describe -t my-app > docker-compose.yml
docker-compose up
يمكنك تحديد عائلة تعريف المهمة باستخدام ملف fargate.yml
، أو envvar FARGATE_TASK
، أو باستخدام العلامة -t
، بما في ذلك رقم المراجعة الاختياري.
fargate task describe -t my-app
fargate task describe -t my-app:42
مثال الإخراج:
version : " 3.7 "
services :
app :
image : 1234567890.dkr.ecr.us-east-1.amazonaws.com/my-app:1.0
ports :
- published : 8080
target : 8080
environment :
AWS_REGION : us-east-1
ENVIRONMENT : dev
FOO : bar
x-fargate-secrets :
KEY : arn:key:ssm:us-east-1:000000000000:parameter/path/to/my_parameter
labels :
aws.ecs.fargate.deploy : " 1 "
fargate task logs [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
[--container-name] [--time] [--no-prefix]
عرض السجلات من المهام
بافتراض وجود مجموعة سجلات Cloudwatch بالاصطلاح التالي: fargate/task/<task>
حيث يتم تحديد task
عبر --task
أو Fargate.yml أو خيارات متغير البيئة
قم بإرجاع جزء محدد من سجلات المهام أو السجلات الخلفية في الوقت الفعلي باستخدام خيار --follow. تكون السجلات مسبوقة باسم دفق السجل الخاص بها والذي يكون بتنسيق fargate/<container-name>/<task-id>.
--container-name
يسمح لك بتحديد الحاوية ضمن تعريف المهمة للحصول على سجلات (الإعدادات الافتراضية app
)
سيستمر Follow في تشغيل السجلات وإرجاعها حتى تتم مقاطعتها بواسطة Control-C. إذا تم تمرير --follow
--end
فلا يمكن تحديد النهاية.
يمكن إرجاع السجلات لمهام محددة عن طريق تمرير معرف المهمة عبر علامة --task
. قم بتمرير --task
بمعرف المهمة عدة مرات لاسترداد السجلات من مهام محددة متعددة.
يمكن طلب نافذة محددة من السجلات عن طريق تمرير خيارات --start
و --end
مع تعبير زمني. يمكن أن يكون التعبير الزمني إما مدة أو طابعًا زمنيًا:
يمكنك تصفية السجلات لمصطلح معين عن طريق تمرير تعبير مرشح عبر علامة --filter
. قم بتمرير مصطلح واحد للبحث عن هذا المصطلح، وقم بتمرير مصطلحات متعددة للبحث عن رسائل السجل التي تتضمن كافة المصطلحات.
--time
يتضمن الطابع الزمني للسجل في الإخراج
--no-prefix
يستبعد بادئة دفق السجل من الإخراج
علَم | قصير | تقصير | وصف |
---|---|---|---|
--قاعدة | -ص | قاعدة أحداث CloudWatch |
يوفر أمر events
أوامر فرعية للعمل مع أحداث CloudWatch (المهام المجدولة، وما إلى ذلك)
fargate events target --revision <revision>
"نشر" (يؤدي إلى استدعاء قاعدة الحدث التالية لتشغيل الإصدار الجديد) مراجعة تعريف المهمة إلى قاعدة حدث CloudWatch عن طريق تحديث EcsParameters.TaskDefinitionArn
الخاص بهدف القاعدة.
قد يقوم نظام CI/CD النموذجي بشيء مثل:
REVISION=$(fargate task register -i 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:${VERSION}-${CIRCLE_BUILD_NUM} -e FOO=bar)
fargate events target -r ${REVISION}