تخطيط الترحيل من Node.js وExpress إلى وظائف Azure

مكتمل

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

  • خادم Express، الذي يوجد في الغالب في server.ts
  • المسارات، الموجودة في المجلد المسارات/
  • منطق الوصول إلى البيانات، الموجود في مجلد/ خدمات

لإعادة بناء التعليمات البرمجية الخاصة بك من Express إلى Azure Functions، تخطط لهذه الإجراءات، والتي ستبدأ في تنفيذها في الوحدة التالية:

  1. إنشاء تطبيق Azure Functions جديد.
  2. انسخ مجلد الخدمات من Node.js Express إلى تطبيق Azure Functions. يعمل هذا لأن خدمات البيانات غير مرتبطة بخادم Express.
  3. إنشاء واجهة برمجة تطبيقات دالة جديدة لكل نقطة نهاية مسار.
    • الحصول على الإجازات
    • إضافة إجازات
    • تحديث عطلة
    • حذف عطلة
  4. تحديث التعليمات البرمجية للدالة لاستخدام منطق الوصول إلى البيانات في الخدمات/ المجلد.
  5. تحديث مسارات الوظائف لمطابقة مسارات Express الأصلية.

مثال المسار السريع

هذا مثال بسيط على مسار Express الذي يحصل على الإجازات من خدمة الإجازات. لاحظ أن معلمات معالج التوجيه هي req كائنات و res .

import * as express from 'express';
import { vacationService } from '../services';

const router = express.Router();

router.get('/vacations', (req, res) => {    // API route
  vacationService.getVacations(req, res);   // Data access logic
});

مثال مسار Azure Functions

هذا مثال بسيط لمعالج مسار Azure Functions وتعريف المسار الذي يحصل على إجازات من خدمة الإجازات. لاحظ أن معلمات معالج التوجيه هي request كائنات و context .

import { app } from '@azure/functions';
import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';
import * as vacationService from '../services';

export async function getVacations(request, context) {
    return {
        status: 200,
        jsonBody: vacationService.getVacations(); // Data access logic
    };
};

app.http('get-vacations', {  // API route
    methods: ['GET'],
    route: 'vacations',
    authLevel: 'anonymous',
    handler: getVacations
});

بمجرد فهم بنية تطبيق Azure Functions، يمكنك تنظيم التعليمات البرمجية الخاصة بك لمطابقة بنية تطبيق Node.js Express الأصلي.

في التمرين التالي، يمكنك إنشاء تطبيق Functions وتحويل التعليمات البرمجية من خادم Express إلى Functions.