全部产品
Search
文档中心

Function Compute:Kelola sumber daya fungsi menggunakan Serverless Devs

更新时间:Jul 02, 2025

Serverless Devs adalah alat pengembangan serverless open source yang memungkinkan Anda mengembangkan, membuat, menguji, dan menerapkan proyek secara efisien serta mengelolanya sepanjang siklus hidupnya. Topik ini menjelaskan cara menggunakan Serverless Devs untuk mengunduh templat aplikasi Function Compute dan menggunakan templat tersebut untuk mengembangkan serta menerapkan aplikasi fungsi. Dalam topik ini, fungsi dalam Node.js 14 digunakan.

Latar Belakang

Topik ini menjelaskan dua metode untuk menginisialisasi proyek di Serverless Devs. Saat pertama kali menggunakan Serverless Devs, disarankan untuk menggunakan Metode 1. Jika ingin mempelajari lebih lanjut tentang operasi seperti debugging lokal, pemanggilan jarak jauh, dan penghapusan sumber daya pada Serverless Devs, gunakan Metode 2.

Sebelum Anda mulai

  1. Aktifkan Function Compute. Untuk informasi lebih lanjut, lihat Aktifkan Function Compute.

  2. Instal Serverless Devs dan Docker.

  3. Konfigurasikan Serverless Devs.

Metode 1: Gunakan perintah s untuk mengelola sumber daya

Jalankan perintah berikut untuk menginisialisasi proyek:

sudo s

Inisialisasi proyek berdasarkan keluaran perintah. Keluaran berikut dikembalikan:

 Tidak ada proyek Serverless-Devs yang terdeteksi saat ini. Apakah Anda ingin membuat proyek baru? Ya// Tidak ada proyek Serverless-Devs yang ditemukan di file proyek. Tentukan apakah akan membuat proyek. 

 Serverless Awesome: https://github.com/Serverless-Devs/Serverless-Devs/blob/master/docs/zh/awesome.md

 Halo Serverless untuk Penyedia Cloud Alibaba Cloud Serverless// Tentukan penyedia layanan cloud. Dalam contoh ini, Alibaba Cloud digunakan. 
 Halo, serverlesser. Template mana yang Anda sukai? Mulai Cepat [Terapkan fungsi Hello World ke FaaS]// Tentukan template yang ingin Anda gunakan. Dalam contoh ini, template digunakan untuk menerapkan fungsi event dalam Node.js 14. 
 Template mana yang Anda sukai? [Event] Node.js 14

 Buat perintah aplikasi: [s init devsapp/start-fc-event-nodejs14]

 Silakan masukkan nama proyek Anda (init dir) start-fc-event-nodejs14// Secara default, Serverless Devs menghasilkan nama proyek. Anda juga dapat menentukan nama proyek kustom. 
 dekompresi file selesai

     ____  _     _ ___  _ _     _        _____ ____
    /  _ \/ \   / \\  \/// \ /\/ \  /|  /    //   _\
    | / \|| |   | | \  / | | ||| |\ ||  |  __\|  /
    | |-||| |_/\| | / /  | \_/|| | \||  | |   |  \__
    \_/ \|\____/\_//_/   \____/\_/  \|  \_/   \____/
 silakan pilih alias kredensial default// Tentukan alias yang dikonfigurasi di Serverless Devs. 

    Selamat datang di aplikasi Aliyun FC start
     Aplikasi ini memerlukan untuk membuka layanan berikut:
         FC : https://fc.console.alibabacloud.com/

     * Proyek diinisialisasi. Anda dapat pergi ke direktori proyek dan jalankan perintah s deploy untuk menerapkan proyek. 

 Terima kasih telah menggunakan Serverless-Devs
 Anda bisa [cd /test/start-fc-event-nodejs14] dan nikmati perjalanan serverless Anda!
 Jika Anda membutuhkan bantuan untuk contoh ini, Anda dapat menggunakan [s -h] setelah masuk ke folder.
 Dokumentasi Star: https://github.com/Serverless-Devs/Serverless-Devs

 Apakah Anda ingin menerapkan proyek segera? Ya// Tentukan apakah akan menerapkan proyek. Dalam contoh ini, proyek diterapkan. 
 ......
helloworld:
  region:   cn-hangzhou
  service:
    name: hello-world-service
  function:
    name:       event-nodejs14
    runtime:    nodejs14
    handler:    index.handler
    memorySize: 128
    timeout:    60

Metode 2: Gunakan perintah s init untuk mengelola sumber daya

  1. Inisialisasi proyek.

    Jalankan perintah berikut di direktori proyek untuk menginisialisasi proyek:

    sudo s init devsapp/start-fc-http-nodejs14
    Catatan

    Dalam contoh ini, fungsi HTTP dalam Node.js 14 diterapkan untuk menggambarkan cara menginisialisasi proyek. Jika ingin menerapkan jenis fungsi lain dalam lingkungan waktu proses lain, ganti http di start-fc-http-nodejs14 dengan jenis trigger yang ingin digunakan, seperti event. Anda juga dapat mengganti nodejs14 dengan lingkungan waktu proses lain.

    Contoh keluaran perintah:

     Serverless Awesome: https://github.com/Serverless-Devs/Serverless-Devs/blob/master/docs/zh/awesome.md
     Silakan masukkan nama proyek Anda (init dir) start-fc-http-nodejs14// Secara default, Serverless Devs secara otomatis menghasilkan nama proyek. Anda juga dapat menentukan nama proyek kustom. 
     dekompresi file selesai
    
         ____  _     _ ___  _ _     _        _____ ____
        /  _ \/ \   / \\  \/// \ /\/ \  /|  /    //   _\
        | / \|| |   | | \  / | | ||| |\ ||  |  __\|  /
        | |-||| |_/\| | / /  | \_/|| | \||  | |   |  \__
        \_/ \|\____/\_//_/   \____/\_/  \|  \_/   \____/
     silakan pilih alias kredensial default// Tentukan alias yang dikonfigurasi di Serverless Devs. 
    
        Selamat datang di aplikasi Aliyun FC start
         Aplikasi ini memerlukan untuk membuka layanan berikut:
             FC : https://fc.console.alibabacloud.com/
    
         * Proyek diinisialisasi. Anda dapat pergi ke direktori proyek dan jalankan perintah s deploy untuk menerapkan proyek. 
    
     Terima kasih telah menggunakan Serverless-Devs
     Anda bisa [cd /test/start-fc-http-nodejs14] dan nikmati perjalanan serverless Anda!
     Jika Anda membutuhkan bantuan untuk contoh ini, Anda dapat menggunakan [s -h] setelah masuk ke folder.
     Dokumentasi Star: https://github.com/Serverless-Devs/Serverless-Devs
    
     Apakah Anda ingin menerapkan proyek segera? Tidak// Tentukan apakah akan menerapkan proyek. 

    Setelah proyek diinisialisasi, folder bernama start-fc-http-nodejs14 dibuat di direktori. Folder start-fc-http-nodejs14 berisi file-file berikut:

    • s.yaml: File YAML yang mendefinisikan sumber daya Function Compute. Untuk informasi lebih lanjut tentang format YAML, lihat Sintaks YAML dan Manajemen Izin.

    • s_en.yaml: File YAML. File s_en.yaml sama dengan s.yaml. Secara default, sistem menggunakan file s.yaml. Untuk menggunakan file s_en.yaml, tentukan file tersebut secara eksplisit di perintah. Misalnya, tambahkan parameter -t (s deploy -t s_en.yaml -y) saat menerapkan aplikasi.

    • code: Folder code berisi file index.js tempat Anda dapat mengedit logika kode fungsi.

    • readme.md: File yang mendefinisikan dependensi, seperti modul dependen dan konfigurasi proyek.

  2. Jalankan perintah berikut untuk masuk ke direktori proyek:

    cd start-fc-http-nodejs14
  3. Opsional: Buat aplikasi.

    Jalankan perintah berikut di direktori proyek untuk membuat aplikasi:

    sudo s build

    Setelah langkah ini, file .s dibuat di direktori saat ini untuk menyimpan keluaran. Anda dapat menggunakan file tersebut untuk men-debug dan menerapkan aplikasi di komputer Anda.

  4. Opsional: Debug aplikasi di komputer Anda.

    Setelah membangun aplikasi, Anda dapat men-debug aplikasi di komputer Anda untuk memeriksa apakah aplikasi berjalan sesuai harapan. Jalankan salah satu perintah berikut berdasarkan jenis fungsi:

    • Fungsi HTTP

      sudo s local start

      Contoh keluaran perintah:

      [2021-12-16 07:17:05] [INFO] [FC-LOCAL-INVOKE] - Menggunakan trigger untuk memulai: name: httpTrigger
      type: http
      config:
        authType: anonymous
        methods:
          - GET
      
      [2021-12-16 07:17:05] [INFO] [FC-LOCAL-INVOKE] - HttpTrigger httpTrigger dari hello-world-service/http-trigger-nodejs14 telah didaftarkan
              url: http://localhost:7013/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
              methods: GET
              authType: anonymous
      
      Tips: Anda juga dapat menggunakan perintah-perintah ini untuk menjalankan atau men-debug sumber daya domain kustom:
      
      Mulai dengan customDomain:
      * s local start auto
      
      Debug dengan customDomain:
      * s local start -d 3000 auto
      
      
      Tips untuk langkah selanjutnya
      ======================
      * Terapkan Sumber Daya: s deploy
      helloworld:
        status: berhasil
      fungsi compute app mendengarkan pada port 7013!
    • Fungsi Event

      sudo s local invoke

    Hasil eksekusi bervariasi tergantung pada jenis fungsi.

    • Fungsi HTTP

      Jika men-debug fungsi HTTP, URL dikembalikan setelah menjalankan perintah debugging, dan debugging berhenti. Anda dapat menggunakan salah satu metode berikut untuk memicu eksekusi fungsi:

      • Gunakan cURL untuk memicu fungsi HTTP.

        curl http://localhost:7013/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
      • Gunakan browser untuk memicu fungsi HTTP.

        http://localhost:7013/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
    • Fungsi Event

      Jika men-debug fungsi event, hasil debugging dikembalikan setelah menjalankan perintah debugging.

  5. Terapkan aplikasi.

    Jalankan perintah berikut untuk menerapkan aplikasi ke Function Compute:

    sudo s deploy -y

    Contoh keluaran perintah:

     Memeriksa Service, Function, Triggers (0.82s)
     Membuat Service, Function, Triggers (0.6s)
     Membuat domain kustom (0.31s)
    
    Tips untuk langkah selanjutnya
    ======================
    * Tampilkan informasi sumber daya yang diterapkan: s info
    * Tampilkan metrik: s metrics
    * Tampilkan log: s logs
    * Panggil fungsi jarak jauh: s invoke
    * Hapus Service: s remove service
    * Hapus Function: s remove function
    * Hapus Trigger: s remove trigger
    * Hapus CustomDomain: s remove domain
    
    helloworld:
      region:   cn-hangzhou
      service:
        name: hello-world-service
      function:
        name:       http-trigger-nodejs14
        runtime:    nodejs14
        handler:    index.handler
        memorySize: 128
        timeout:    60
      url:
        custom_domain:
          -
            domain: http://http-trigger-nodejs14.hello-world-service.188077086902****.cn-hangzhou.fc.devsapp.net
      triggers:
        -
          type: http
          name: httpTrigger

    Jika eksekusi berhasil, aplikasi diterapkan ke Function Compute.

  6. Opsional: Debug aplikasi secara jarak jauh.

    Jalankan perintah berikut untuk men-debug aplikasi secara jarak jauh:

    sudo s invoke -e '{"body": "","method":"GET","headers":{"header_1":"v1"},"queries":{"key":"value"},"path":"/"}'

    Contoh keluaran perintah:

    Request url: https://188077086902****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
    ========= FC invoke Logs begin =========
    FC Invoke Start RequestId: 6a3adedb-5d5d-4ac5-aa0b-2d43f4ace65c
    load code for handler:index.handler
    2022-03-04T08:39:14.770Z 6a3adedb-5d5d-4ac5-aa0b-2d43f4ace65c [verbose] hello world
    FC Invoke End RequestId: 6a3adedb-5d5d-4ac5-aa0b-2d43f4ace65c
    
    Duration: 66.23 ms, Billed Duration: 67 ms, Memory Size: 128 MB, Max Memory Used: 42.48 MB
    ========= FC invoke Logs end =========
    
    FC Invoke Result[Code: 200]:
    {
      path: '//',
      queries: { key: 'value' },
      headers: {
        accept: 'application/json',
        authorization: 'FC yourAccessKeyID:yourAccessKeySecret',
        date: 'Fri, 04 Mar 2022 08:39:14 GMT',
        header_1: 'v1',
        host: '188077086902****.cn-hangzhou.fc.aliyuncs.com',
        'user-agent': 'Node.js(v14.17.4) OS(linux/x64) SDK(@alicloud/fc2@v2.5.0)',
        'x-forwarded-proto': 'http'
      },
      method: 'GET',
      requestURI: '/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14//?key=value',
      clientIP: '47.97.XX.XX',
      body: ''
    }
    
    Akhir dari metode: invoke

    Dalam contoh ini, fungsi HTTP diterapkan. URL dikembalikan setelah menjalankan perintah debugging jarak jauh. Anda dapat menggunakan cURL untuk memicu fungsi HTTP di Function Compute:

    curl https://188077086902****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/hello-world-service/http-trigger-nodejs14/
  7. Opsional: Hapus aplikasi.

    Jalankan perintah berikut untuk menghapus aplikasi:

    sudo s remove service

    Contoh keluaran perintah:

    Perlu menghapus sumber daya di area cn-hangzhou, operasi service adalah hello-world-service:
     ......
     Hapus trigger hello-world-service/http-trigger-nodejs14/httpTrigger berhasil.
     Hapus fungsi hello-world-service/http-trigger-nodejs14 berhasil.
     Hapus service hello-world-service berhasil.
    [2022-03-04 08:40:26] [INFO] [FC] - Mendapatkan daftar on-demand: _FC_NAS_hello-world-service-ensure-nas-dir-exist-service
    [2022-03-04 08:40:26] [INFO] [FC] - Mendapatkan daftar provision: _FC_NAS_hello-world-service-ensure-nas-dir-exist-service
    [2022-03-04 08:40:26] [INFO] [FC] - Mendapatkan listAliases: _FC_NAS_hello-world-service-ensure-nas-dir-exist-service
    [2022-03-04 08:40:26] [INFO] [FC] - Mendapatkan daftar on-demand: _FC_NAS_hello-world-service
    [2022-03-04 08:40:26] [INFO] [FC] - Mendapatkan daftar provision: _FC_NAS_hello-world-service
    [2022-03-04 08:40:26] [INFO] [FC] - Mendapatkan listAliases: _FC_NAS_hello-world-service
    Akhir dari metode: remove

    Jika eksekusi berhasil, aplikasi dihapus.