إعداد بيئة التنمية المحلية

قبل البدء باستخدام Oracle Functions لتكوين وظائف وتوزيعها، يجب إعداد البيئة المحلية لتطوير الوظائف.

على الرغم من إمكانية استخدام Cloud Shell أو طبعة Oracle Cloud Infrastructure Compute كبيئة تطوير، يفترض هذا المستند أنك ستستخدم بيئة Linux محلية لتطوير الوظائف.

قبل البدء

بالإضافة إلى المهام المعروضة في هذا القسم لإعداد طبعة Linux محلية لتطوير الوظائف، يجب أيضًا تنفيذ المهام التالية:

  • لتطوير الوظائف محليًا، قم بتثبيت النظام الأساسي لتطوير مشروع Fn من GitHub.

  • تأكد من تثبيت إصدار Docker 17.10.0 أو أحدث على الطبعة المحلية.

    لمزيد من المعلومات حول تثبيت Docker أو ترقيته على Linux، راجع Oracle Container Runtime for Docker User 's Guide.

تكوين مفتاح توقيع

قبل استخدام Oracle Functions، يجب إعداد مفتاح توقيع Oracle Cloud Infrastructure API.

  1. قم بالدخول إلى بيئة تطوير الآلة المحلية كمطور وظائف.
  2. قم بتكوين مفتاح خاص مشفر باستخدام عبارة سر تقوم بإدخالها:
    $ openssl genrsa -out ~/.oci/<private-key-file-name>.pem -aes128 2048

    حيث <private-key-file-name> هو اسم اختيارك لملف المفتاح الخاص.

  3. عند مطالبتك، أدخل عبارة سر لتشفير ملف المفتاح الخاص. تأكد من ملاحظة عبارة المرور التي تدخلها، حيث ستحتاج إليها لاحقًا.
  4. عند المطالبة، قم بإعادة إدخال عبارة المرور لتأكيدها.
  5. قم بتغيير الأذون الموجودة بالملف للتأكد من إمكانية قراءته فقط.
    $ chmod go-rwx ~/.oci/<private-key-file-name>.pem

    حيث <private-key-file-name> هو اسم ملف المفتاح الخاص.

  6. قم بإنشاء مفتاح عام (مشفر بنفس عبارة السر التي قمت بإدخالها عند تكوين المفتاح الخاص، وفي نفس موقع ملف المفتاح الخاص) عن طريق إدخال:
    $ openssl rsa -pubout -in ~/.oci/<private-key-file-name>.pem -out ~/.oci/<public-key-file-name>.pem

    حيث <private-key-file-name> هو اسم ملف المفتاح الخاص و<public-key-file-name> هو اسم من اختيارك لملف المفتاح العام.

  7. عند مطالبتك، أدخل نفس عبارة المرور التي قمت بإدخالها مسبقًا لتشفير ملف المفتاح الخاص.
  8. انسخ محتويات ملف المفتاح العام الذي قمت بتكوينه للتو، عن طريق إدخال:
    $ cat ~/.oci/<public-key-file-name>.pem | pbcopy

    حيث <public-key-file-name> هو اسم اختيارك لملف المفتاح العام.

  9. قم بالدخول إلى وحدة التحكم الطرفية كمطور دوال، وافتح قائمة المستخدم في الزاوية اليمنى العلوية وحدد إعدادات المستخدم.
  10. في صفحة مفاتيح API، انقر على إضافة مفتاح عام. لصق قيمة المفتاح العام في النافذة وانقر على إضافة. يتم تحميل المفتاح ويتم عرض بصمته.

إنشاء ملف تعريف واجهة سطر الأوامر (CLI)

قبل استخدام Oracle Functions، يجب أن يكون لديك ملف تكوين Oracle Cloud Infrastructure CLI يحتوي على ملف بيانات صلاحية حساب المستخدم الذي ستستخدمه لتكوين الدوال وتوزيعها.

يمكن أن يحتوي ملف تكوين Oracle Cloud Infrastructure CLI على عدة ملفات تعريف. إذا كان لديك بالفعل ملف تكوين يحتوي على ملف تعريف واحد أو أكثر، يجب إضافة ملف تعريف جديد إلى الملف الموجود للمستخدم الذي سيستخدم Oracle Functions لتكوين الوظائف وتوزيعها

  1. قم بالدخول إلى بيئة تطوير الآلة المحلية كمطور وظائف.
  2. افتح الملف ~/.oci/config في محرر نصوص. (إذا كان الدليل و/أو الملف غير موجود بالفعل، فقم بتكوينه).
  3. أضف ملف تعريف جديدًا إلى ملف ~.oci/config كما يلي:
    [<profile-name>]
    user=<user-ocid>
    fingerprint=<public-key-fingerprint>
    key_file=<full-path-to-private-key-pem-file>
    tenancy=<tenancy-ocid>
    region=<region-name>
    pass_phrase=<passphrase>

    حيث:

    • <profile-name> هو اسم اختيارك لملف التعريف.
    • <user-ocid> هو OCID الخاص بحساب مستخدم Oracle Cloud Infrastructure الذي ستستخدمه لتكوين الدوال وتوزيعها.
    • <public-key-fingerprint> هي بصمة قيمة مفتاح واجهة برمجة التطبيقات العامة التي قمت بتحميلها في وحدة التحكم الطرفية في وقت سابق.
    • <full-path-to-private-key-pem-file> هو المسار الكامل لملف المفتاح الخاص الذي قمت بتكوينه مسبقًا.
    • <tenancy-ocid> هو OCID الخاص بالإيجار الذي ستقوم فيه بتكوين الدوال وتوزيعها.
    • <region-identifier> هو معرف منطقة Oracle Cloud Infrastructure التي ستقوم فيها بتكوين الوظائف وتوزيعها. على سبيل المثال، us-phoenix-1.
    • <passphrase> عبارة المرور التي حددتها عند تكوين مفاتيح عامة/خاصة.
  4. حفظ الملف وإغلاقه.

نسخ سكريبت عنوان url الخاص بـ oci وتكوينه

يمكنك استخدام اسكربت لاستدعاء دالة. يقوم اسكربت oci-curl بتكوين طلب موقع استنادًا إلى الصلاحيات التي توفرها في نص الاسكربت.

لاستخدام oci-curl لاستدعاء دالة، يجب توفير الصلاحيات لمستخدم Oracle Cloud Infrastructure الذي تم منحه حق الوصول إلى الموارد في نفس الاستئجار وينتمي إلى نفس مقطع الدالة.

عادةً ما ترغب في استدعاء دالة كمطور الدوال الذي تم تكوينه لبيئة التطوير. وتفترض التعليمات الواردة أدناه أن الأمر كذلك.

  1. قم بتسجيل الدخول إلى بيئة التطوير لديك.
  2. قم بتكوين نسخة من ملف اسكربت oci-curl في بيئة التطوير وإضافة الصلاحيات إلى الملف كما يلي:
    1. في متصفح، انتقل إلى https://docs.cloud.oracle.com/iaas/Content/Resources/Assets/signing_sample_bash.txt لرؤية تعليمات oci - url البرمجية كنص أولي.
    2. حدد جميع النصوص ونسخها.
    3. في محرر نصوص، افتح ملفًا جديدًا في موقع مناسب.

      على سبيل المثال، في نافذة طرفية، يمكنك تكوين دليل فرعي جديد في الدليل الرئيسي وفتح ملف جديد في ذلك الدليل عن طريق إدخال:

      $ cd ~
      
      $ mkdir oci-curl
      
      $ vim ~/oci-curl/oci-curl.sh

      اسم وموقع الملف الجديد متروك لك، ولكن التعليمات التالية تفترض ~/oci-curl/oci-curl.sh.

    4. لصق رمز اسكربت oci-curl الذي نسخته سابقًا في الملف الجديد.
    5. احفظ الملف ولكن اتركه مفتوحًا حتى يمكنك إضافة الصلاحيات الخاصة بك.
  3. قم باستبدال عينة الصلاحيات في ملف oci-curl.sh بتلك الخاصة بحساب المستخدم التي تريد استدعاؤها الدوال:
    local tenancyId="<tenancy_id>";
    local authUserId="<user_id>";
    local keyFingerprint="<public_fingerprint>";
    local privateKeyPath="<private_key_path>";

    حيث:

    • <tenancy_id> هو OCID الخاص بالإيجار الذي تم توزيع الوظيفة فيه.
    • <user_id> هو OCID لحساب المستخدم الذي تريد تشغيل الدالة فيه. يجب أن يتمتع حساب المستخدم بصلاحية الوصول إلى الموارد في نفس الإيجار وينتمي إلى نفس قسم الوظيفة.
    • <public_fingerprint> هي بصمة الإصبع للمفتاح العام للمستخدم الذي تم تحميله إلى Oracle Cloud Infrastructure.
    • <private_key_path> هو المسار الكامل لملف المفتاح الخاص المقترن بالمفتاح العام الذي قمت بإدخال بصمة الإصبع له. على سبيل المثال:
      local privateKeyPath="/Users/johndoe/.oci/john_api_key_private.pem";
  4. حفظ وإغلاق الملف oci-curl.sh.

تثبيت واجهة سطر أوامر مشروع Fn (CLI)

قبل استخدام Oracle Functions، يجب تثبيت واجهة سطر أوامر Fn Project (CLI) في بيئة التطوير.

يستخدم هذا الإجراء منحنى لتثبيت CLI في طبعة Linux. يتم توفير إرشادات لأنظمة التشغيل الأخرى في ملف القراءة لمشروع Fn على GitHub.

  1. قم بالدخول إلى بيئة التطوير كمطور وظائف.
  2. استخدم الأمر التالي لاسترجاع اسكربت التثبيت وتشغيله:
    $ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
    
    

    في حالة المطالبة بكلمة سر، أدخل كلمة سر المستخدم المتميز.

  3. في نافذة طرفية، تأكد من تثبيت CLI عن طريق إدخال:
    $ fn version

    في حالة تثبيت CLI بشكل صحيح، يتم عرض الإصدار.

إنشاء سياق واجهة سطر أمر Fn

عند تثبيت واجهة سطر أوامر Fn Project (CLI) مبدئيًا، يتم تكوينها للتطوير المحلي. لتكوين Fn Project CLI للاتصال باستئجار Oracle Cloud Infrastructure، يجب تكوين سياق جديد.

يحدد السياق نقاط انتهاء Oracle Functions، وOCID للمقطع الذي تنتمي إليه الوظائف الموزعة، وعنوان سجل Docker الذي سيتم إرسال الصور منه وسحبها. يمكنك تعريف سياقات متعددة، يتم تخزين كل منها في ملف سياق مختلف بتنسيق.yaml.

  1. قم بتسجيل الدخول إلى بيئة التطوير كمطور وظائف.
  2. في نافذة طرفية، قم بتكوين سياق Fn Project CLI الجديد لـ Oracle Cloud Infrastructure:
    $ fn create context <my-context> --provider oracle

    حيث <my-context> اسم تختاره.

  3. حدد ما إذا كان يجب استخدام سياق جديد لـ Fn Project CLI:
    $ fn use context <my-context>

    حيث <my-context> هو اسم السياق الذي حددته.

  4. حدد اسم ملف تعريف واجهة سطر الأوامر المطلوب استخدامه:
    $ fn update context oracle.profile <profile-name>
  5. تحديد معرف OCID للمقطع حيث سيتم توزيع الوظائف الموزعة:
    $ fn update context oracle.compartment-id <compartment-ocid>
  6. حدد نقطة النهاية المطلوب استخدامها عند استدعاء API:
    $ fn update context api-url <api-endpoint>
    حيث <api-endpoint> هي إحدى نقاط النهاية بالصيغة:
    https://functions.<region-identifier>.oci.oraclecloud.com
    حيث <region-identifier> هو معرف منطقة Oracle Cloud Infrastructure التي ستقوم فيها بتكوين الدوال وتوزيعها. على سبيل المثال:
    us-phoenix-1
  7. قم بتكوين السياق الجديد بعنوان سجل Docker الذي تريد استخدامه مع Oracle Functions:
    $ fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name>
    حيث:
    • <region-key> هو مفتاح منطقة Oracle Cloud Infrastructure Registry. على سبيل المثال، phx لفيونيكس.

      يوصي Oracle بأن يكون سجل Docker الذي تحدده في نفس منطقة الشبكة الفرعية التي تنوي تشغيل الدوال عليها.

    • <tenancy-namespace> عبارة عن سلسلة مساحة اسم Oracle Cloud Infrastructure Object Storage المكونة تلقائيًا للمستأجر الذي يتم فيه تكوين المستودعات (كما هو موضح في صفحة معلومات الاستئجار).
    • <repo-name> هو اسم مخزن للتعليق المسبق على أسماء الدوال التي تقوم بتوزيعها.

    على سبيل المثال:

    $ fn update context registry phx.ocir.io/ansh81vru1zp/my-repo

تكوين مقطع تصديق

لتوزيع الدوال في Oracle Cloud Infrastructure، يجب تكوين مقطع اعتماد لاستخدامه ككلمة سر عند تسجيل دخول Docker إلى Oracle Cloud Infrastructure Registry.

  1. قم بتسجيل الدخول إلى وحدة تحكم Oracle Cloud Infrastructure، وانقر على أيقونة المستخدم، وحدد إعدادات المستخدم.
  2. لتكوين مقطع تصديق جديد، انقر على مقاطع التصديق في قسم الموارد ثم انقر على تكوين مقطع.
  3. أدخل وصفًا لمقطع التصديق وانقر على إنشاء مقطع. نسخ المقطع عند عرضه.
  4. انقر على الارتباط نسخ وتخزين معلومات المقطع في موقع آمن لأنه عند إغلاق مربع الحوار، لن تتمكن من رؤية المقطع في وحدة التحكم الطرفية مرة أخرى.
  5. انقر على إغلاق.

تسجيل الدخول إلى Oracle Cloud Infrastructure Registry

قبل التمكن من استخدام Oracle Functions، يجب تسجيل دخول Docker إلى سجل Docker حيث ستقوم بتخزين دوالك كصور Docker. هذا هو سجل Docker الذي حددته سابقًا في سياق واجهة سطر أوامر Fn Project (CLI).

قبل الدخول إلى السجل، يجب أولاً القيام بما يلي:
  • تثبيت Docker وبدئه في بيئة التطوير
  • تم تكوين سياق Oracle Cloud Infrastructure لواجهة سطر أوامر Fn (CLI)
  • تم تكوين مقطع تصديق Oracle Cloud Infrastructure للمستخدم

يمكنك تخزين الوظائف في المستودعات العامة والخاصة في Oracle Cloud Infrastructure Registry، وهو سجل تتم إدارته بواسطة Oracle، ويتم إنشاؤه أعلى Oracle Cloud Infrastructure.

لإتمام الخطوات أدناه، يجب إدخال مساحة اسم العميل لـ Oracle Cloud Infrastructure Object Storage واسم المستخدم ومقطع الاعتماد الخاص بالمستخدم.

لتوقيع Docker على Oracle Cloud Infrastructure Registry:

  1. قم بتسجيل الدخول إلى بيئة التطوير كمطور وظائف.
  2. في نافذة طرفية، قم بتسجيل الدخول إلى Oracle Cloud Infrastructure Registry:
    $ docker login <region-key>.ocir.io

    حيث <region-key> هو المفتاح لمنطقة Oracle Cloud Infrastructure Registry المحددة في سياق Fn Project CLI. على سبيل المثال، phx لـ Phoenix.

  3. عند مطالبتك، أدخل اسم المستخدم الخاص بالمستخدم الذي سيقوم بتكوين الوظائف ونشرها:
    <tenancy-namespace>/<username>
    حيث:
    • <tenancy-namespace> عبارة عن سلسلة مساحة اسم Oracle Cloud Infrastructure Object Storage المكونة تلقائيًا للمستأجر الذي يتم فيه تكوين المستودعات (كما هو موضح في صفحة معلومات الاستئجار).
    • <username> هو المستخدم الذي سيقوم بتكوين الوظائف ونشرها.
    إذا كان مستأجرك موحدًا مع Oracle Identity Cloud Service، فاستخدم الصيغة:
    <tenancy-namespace>/oracleidentitycloudservice/<username>
  4. عند المطالبة بكلمة سر، أدخل مقطع اعتماد Oracle Cloud Infrastructure الخاص بالمستخدم.