كيفية استخدام AWS CLI لتشغيل خدماتك السحابية مباشرة من لوحة المفاتيح - لا حاجة إلى واجهة مستخدم رسومية

أراهن أنك قد قمت بالفعل بتشغيل بعض الأشياء على AWS وأنك نجحت في تحقيق ذلك باستخدام وحدة تحكم المتصفح. لكنني أراهن أيضًا أنك تشك بالفعل في أن النقر في طريقك عبر طبقات وطبقات صفحات التكوين لن يكون دائمًا أفضل طريقة. إذا كانت الحقيقة ، فإن AWS CLI هي طريقة أفضل لإنجاز نفس العمل بالضبط ، ولكن بجهد أقل بكثير.

باستخدام محتوى مقتبس من دورة Pluralsight الخاصة بي : أتمتة AWS Operations باستخدام AWS CLI ، دعني أوضح سريعًا. لنفترض أنك تريد تشغيل مثيل Amazon Linux من EC2. لتنشيطه وتشغيله ، ستحتاج إلى ...

  • قم بتحميل صفحة لوحة معلومات EC2
  • انقر فوق تشغيل مثيل
  • حدد AMI من صفحة AMI
  • حدد نوع المثيل من صفحة نوع المثيل
  • قم بتعيين إعدادات الشبكة و IAM وسلوك دورة الحياة وإعدادات بيانات المستخدم في صفحة تكوين تفاصيل المثيل
  • حدد واحدًا أو أكثر من وحدات التخزين في صفحة إضافة مساحة تخزين
  • أضف علامات في صفحة إضافة علامات
  • حدد مجموعة أمان أو قم بتكوينها على - انتظرها - صفحة تكوين مجموعة الأمان
  • وأخيرًا قم بمراجعة المثيل الخاص بك وتشغيله على الصفحة المسماة (ماذا أيضًا؟) Review and Launch

ولا تنس النقر فوق النافذة المنبثقة حيث ستقوم بتأكيد زوج المفاتيح الخاص بك ثم العودة إلى لوحة معلومات مثيلات EC2 للحصول على بيانات المثيل (مثل عناوين IP).

يبدو وكأنه ممتع بالنسبة لك؟ هل سيظل الأمر ممتعًا إذا كنت تعمل باستخدام اتصال إنترنت بطيء؟ وماذا عن ما إذا كنت بحاجة إلى إجراء أشكال مختلفة من هذه العملية ست مرات في الأسبوع؟

هل تريد معرفة كيفية تشغيل هذا التكوين باستخدام AWS CLI من Bash shell (والذي يمكنك تشغيله داخل Linux و macOS وحتى Windows 10 الآن)؟ لاحظ كيف استخدمت الشرطة المائلة الخلفية لإخبار Bash أن الأمر لم يكتمل بعد. يؤدي الضغط على Enter إلى تشغيل الفوضى بأكملها وتشغيلها.

aws ec2 run-instances --image-id ami-04681a1dbd79675a5 \ --count 1 \ --instance-type r5d.large \ --key-name MyKeyPair \ --security-group-ids sg-007e43f80a1758f29 \ --subnet-id subnet-970ec9f0 \ --user-data file://my_script.sh \ --tag-specifications \ ‘ResourceType=instance,Tags=[{Key=backend,Value=inventory1}]’

لن يعمل هذا الأمر الدقيق إذا قمت بلصقه في الجهاز وتشغيله. مجموعة الأمان ومعرفات الشبكة الفرعية خاصة بحسابي ، وربما لم تحصل على زوج مفاتيح يسمى MyKeyPair أو ملف نصي يسمى my_script.sh. ولكن هذا يوضح لك أنه بمجرد إجراء بعض الأبحاث الأساسية المسبقة للحصول على جميع القيم الصحيحة والتأكد من أنها تعمل ، ستتمكن من حفظ الأمر في ملف نصي يمكنك تعديله وتشغيله في أي وقت ضروري. يمكن أن يؤدي هذا إلى تقليل مدة العملية من خمس دقائق إلى ثانيتين.

أفضل مكان للذهاب إليه للحصول على تعليمات تثبيت CLI المحدثة لنظام التشغيل الخاص بك هي صفحة وثائق AWS هذه. عادةً ما يكون أفضل رهان هو نهج مدير حزم Python باستخدام PIP.

يعد تكوين CLI الخاص بك للوصول بشكل آمن إلى موارد حساب AWS وإدارتها أمرًا بسيطًا إلى حد ما. على الرغم من أنك ستحتاج أولاً إلى إنشاء (ونسخ / تسجيل) مفتاح وصول لمستخدم AWS الخاص بك من رابط My Security Credentials في القائمة المنسدلة للحساب مرة أخرى في وحدة التحكم. عند الانتهاء من ذلك ، ما عليك سوى كتابة "aws config" في موجه الأوامر وإدخال معرف مفتاح الوصول ومفتاح الوصول السري الذي حصلت عليه من بيانات اعتماد الأمان الخاصة بي. يمكنك اختيار المنطقة الافتراضية وقيم تنسيق الإخراج اختياريًا.

[email protected]:~$ aws configure AWS Access Key ID [****************KB2Q]: AWS Secret Access Key [****************W/Cu]: Default region name [us-east-1]: Default output format [text]: [email protected]:~$

أنماط بناء جملة AWS CLI

أنت الآن جاهز للبدء. لنبدأ بتقسيم بناء جملة الأمر إلى الأجزاء المكونة لها وشرح كيفية عملها باستخدام أمثلة عملية. بعد الأمر الأوس البادئة، يتم أمر CLI تتكون من الخيارات (الذي، كما يوحي اسمها، اختيارية)، الأوامر ، subcommands ، و المعلمات .

aws [options]   [parameters]

سيعيد هذا المثال جميع صور EC2 AMI التي تحتفظ بها Amazon رسميًا والتي تشغل نظام التشغيل CentOS Linux.

aws --output table ec2 describe-images \ --filters “Name=description,Values=*CentOS*” \ “Name=owner-alias,Values=amazon”

يستخدم خيار الإخراج ، مما يمنحه قيمة " الجدول " لعرض إخراج النص في الجداول. أمر المستوى الأعلى هنا هو ec2. ستستدعي معظم أوامر المستوى الأعلى - إن لم يكن كلها - خدمات AWS محددة. s3 و iam و dynamodb أمثلة أخرى.

الأمر الفرعي هو description -images ، والذي سيعيد البيانات المتعلقة بجميع صور Amazon Machine المتوفرة حاليًا للاستخدام لمثيلات EC2 الخاصة بك. سيؤدي ذلك إلى إرجاع قدر هائل من البيانات ، حيث يوجد عدة مئات من AMIs ويتم تمثيل كل واحدة منها بالكثير من البيانات الوصفية. لذلك سترغب في تضييق نطاق البحث قليلاً. لذلك ، قدمت قيمتين للمعلمة - عوامل التصفية: يجب أن يحتوي وصف الصورة على الكلمة CentOS  - كتابة الأحرف الكبيرة c و o و s لأن هذا سيكون حساسًا لحالة الأحرف ، ويجب أن تساوي قيمة الاسم المستعار للمالك amazon .

ستقوم غالبًا بتشغيل أوامر فرعية مستندة إلى الوصف للحصول على معرفات موارد مهمة يمكنك بعد ذلك توصيلها بأوامر الإجراء الفعلية الخاصة بك. عادةً ما يتم استخدام معرف صورة CentOS هذا كجزء من أمر مثيلات تشغيل ec2 لتشغيل مثيل فعليًا.

إلى جانب الوصف والتشغيل ، ستبدأ الأوامر الفرعية الشائعة الأخرى بأفعال مثل إنشاء وحذف وتمكين وتعطيل وتعديل وطلب وإيقاف وإنهاء.

خيارات تشمل المنطقة ، الانتاج ، و الشخصية  - التي كنت قد رأيت بالفعل - زائد -تجف ، التي لن تفعل شيئا، ولكن بدلا من ذلك عرض الانتاج من شأنه أن يولد الأمر الخاص بك إذا تم تشغيله بالفعل. يمكن أن يكون هذا مفيدًا جدًا عندما لا تكون متأكدًا من أنك حصلت على النحو الصحيح تمامًا. دعنا نحاول تشغيل أمر مثيلات التشغيل ec2 من أعلى ، ولكن هذه المرة نضيف التشغيل الجاف .

مثال S3

حان الوقت للحصول على القليل من السحر S3. لدي عمل يحتاج إلى موقع ويب بسيط دون الوصول إلى أي قاعدة بيانات أو أجراس وصفارات جافا سكريبت. فقط بعض المزايا المنتظمة لـ HTML5. لذلك سأقوم بإنشاء حاوية البيانات الخاصة بي وتهيئتها بعناية وملؤها بحيث تعمل كموقع ويب ثابت - أو بمعنى آخر ، بحيث يتم توجيه حركة المرور الواردة تلقائيًا إلى ملف index.html الذي قمت بإنشائه .

على الرغم من أنه لن يلعب أي دور في هذا العرض التوضيحي ، إلا أنني سأرغب في النهاية في إعداد اسم نطاق .com في طريق 53 من Amazon يشير إلى الموقع ، لذلك سأحتاج إلى إنشاء دلو S3 بذلك بالضبط الاسم - .com وجميع. أصنع دلوًا باستخدام mb واسمًا فريدًا عالميًا.

aws s3 mb s3://mysite548.com

يجب أن تكون الحاوية قابلة للقراءة بشكل عام ، لذا سأستخدم s3api put-bucket-acl ، جنبًا إلى جنب مع معلمات الجرافة و ACL . هذا الأخير سيأخذ القيمة العامة للقراءة .

aws s3api put-bucket-acl --bucket mysite548.com --acl public-read

بعد ذلك ، سأستخدم مزامنة s3 لنقل جميع محتويات دليلي المحلي الحالي إلى دلو الخاص بي. لقد قمت بإنشاء ثلاثة ملفات: index.html هي صفحة الويب الافتراضية وستكون error.html هي الصفحة التي يتم تحميلها عند طلب مورد غير موجود. هناك أيضًا صورة صغيرة للمساعدة في تجميل المظاهرة. و قراءة الجمهور دوري أبطال آسيا والمعلمة تعطي الملفات نفسها نفس الأذونات مثل دلو.

aws s3 sync . s3://mysite548.com --acl public-read

أخيرًا ، سأحدد الغرض من ملفات html هذه لـ S3 باستخدام "موقع ويب s3". في وثيقة مؤشر و الخطأ وثيقة المعلمات تشير ببساطة إلى الملفات ذات الصلة. لا تحتاج إلى استخدام أسماء الملفات المحددة هذه ، بالمناسبة ، هذا أنا فقط. سأؤكد هذه العملية باستخدام موقع ويب get-bucket الخاص بـ s3api.

aws s3 website s3://mysite548.com/ --index-document index.html --error-document error.html aws s3api get-bucket-website --bucket mysite548.com

ماذا بعد؟

يعتبر بناء جملة أوامر AWS CLI بديهيًا إلى حد ما. ومع ذلك ، ستحتاج غالبًا إلى المساعدة في الحصول عليها بشكل صحيح تمامًا. كما أوضحت في دورة Pluralsight ، يمكنك الحصول على إرشادات ممتازة من نظام المساعدة في سطر الأوامر ، أو من وثائق AWS عبر الإنترنت. يحتوي كتاب My Learn Amazon Web Services in a Month of Lunches أيضًا على إرشادات وأمثلة مفيدة.

هذا المقال مقتطف مقتبس من دورة Pluralsight الجديدة ، وهي أتمتة عمليات AWS باستخدام AWS CLI.