Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Bagaimana Memulai Dengan Fungsi Tanpa Server DigitalOcean

Posted on August 12, 2022

Functions adalah salah satu tambahan terbaru untuk platform cloud DigitalOcean. Ini menyediakan metode kelas satu untuk mengembangkan fungsi tanpa server tanpa meninggalkan DigitalOcean. Kode Anda dijalankan sesuai permintaan saat dipanggil, menghilangkan penyediaan dan pemeliharaan server manual.

Dalam artikel ini kami akan menjelaskan apa yang didukung oleh DigitalOcean Functions dan memandu demonstrasi pembuatan fungsi sederhana Anda sendiri. Functions memiliki tingkat gratis yang menyediakan 25 GiB-jam per bulan, dengan GiB-detik dihitung sebagai konsumsi memori dikalikan dengan waktu eksekusi setiap panggilan fungsi.

Fitur yang Didukung

Diluncurkan pada Mei 2022, Functions memberi pelanggan DigitalOcean opsi bawaan untuk menjalankan beban kerja tanpa server. Setiap fungsi mendapatkan titik akhir API sendiri yang menjalankan kode yang Anda buat. Anda tidak perlu menyiapkan server Anda sendiri atau menyimpan proyek sebelum penerapan. Fungsi langsung dihosting oleh backend Platform Aplikasi DigitalOcean.

Functions dapat berintegrasi dengan Database Terkelola DigitalOcean untuk memfasilitasi penyimpanan data yang persisten. Mereka juga dilengkapi dengan CLI komprehensif yang memungkinkan Anda menerapkan dan menguji kode Anda di terminal.

Versi awal platform mendukung lima lingkungan pemrograman yang berbeda:

  • Go 1.17
  • Node.js 14
  • Node.js 14 (kompatibel dengan fungsi AWS Lambda)
  • PHP 8
  • Python 3.9

Anda harus terbiasa menulis kode dalam salah satu bahasa ini untuk menerapkannya sebagai sebuah fungsi. Lebih banyak runtime dapat didukung di masa mendatang.

Menyiapkan

Anda dapat meluncurkan fungsi baru menggunakan panel kontrol web DigitalOcean atau Doctl, CLI berorientasi pengembangnya. Kami berfokus pada pendekatan Doctl berbasis terminal untuk tujuan artikel ini. Ini memperlihatkan semua kemampuan Fungsi dan merupakan jalur yang dimaksudkan untuk semua kecuali kasus penggunaan yang paling sederhana. Pastikan Anda telah menginstal Doctl versi terbaru dan diautentikasi ke akun DigitalOcean Anda sebelum melanjutkan.

Anda harus menyelesaikan beberapa langkah penyiapan lebih lanjut jika ini adalah pertama kalinya Anda menggunakan Fungsi DigitalOcean. Pertama selesaikan instalasi ekstensi tanpa server Doctl. Ini menambahkan dukungan penuh untuk mengembangkan dan menerapkan fungsi.

$ doctl install

tanpa server Mengunduh…Membongkar…Menginstal…Membersihkan… Done

Selanjutnya sambungkan fitur tanpa server ke akun DigitalOcean Anda:

$ doctl serverless connect

Terhubung ke fungsi namespace `fn-3c1d9001-8e04-44e8-9375-c22b13c4a41a` pada host API `https://faas-lon1-917a94a7.doserverless.co`

Sekarang Anda harus siap untuk mulai menulis fungsi. Jalankan perintah status tanpa server untuk memeriksa semuanya berfungsi:

$ doctl status

tanpa server Terhubung ke ruang nama fungsi `fn-3c1d9001-8e04-44e8-9375-c22b13c4a41a` pada host API `https://faas-lon1-917a94a7.doserverless.co` Versi Sandbox adalah 3.1.1-1.2.1

Keluaran yang ditunjukkan di atas mengonfirmasi bahwa dukungan Fungsi telah diinstal dan siap digunakan.

Perintah tanpa server adalah alias kotak pasir. Pada saat penulisan, kedua kata kunci tersebut memiliki fungsi yang identik dan digunakan secara bergantian di seluruh dokumentasi DigitalOcean. Kami melakukan standarisasi tanpa server untuk panduan ini.

Membuat Fungsi

Gunakan perintah berikut untuk membuat proyek Fungsi baru:

$ doctl serverless init --language js demo-project

Area kotak pasir lokal `demo-project` telah dibuat untuk Anda. Anda dapat menerapkannya dengan menjalankan perintah yang ditunjukkan pada baris berikutnya: doctl sandbox deploy demo-project

Perintah ini membuat fungsi JavaScript baru dalam demo-project di direktori kerja Anda. Periksa isi direktori ini untuk melihat perancah Doctl untuk Anda:

$ tree demo-project

demo-project package sample hello hello.js project. yml 3 direktori, 2 files

File project.yml adalah tempat Anda mengonfigurasi proyek fungsi dan titik akhir yang disediakannya.

targetNamespace: “ parameter: {} package: – name: sample environment: {} parameter: {} annotations: {} actions : – name: hello binary: false main: “ runtime: `nodejs:default` web: parameter true: {} environment: {} annotations: {}limits: {}

Template starter mengonfigurasi satu paket yang disebut sample. Di dalam paket ini, ada satu tindakan (endpoint) bernama hello yang dieksekusi menggunakan runtime Node. Kode sumber untuk tindakan ini disimpan di package/sample/hello/hello.js. Mari kita lihat file ini selanjutnya:

function main(args){ let name = args.name||`stranger` let greeting =`Hello `+ name +`!` console.log(greeting)return{“body”: greeting} }

Ini adalah kode JavaScript biasa. Fungsi main() akan dipanggil setiap kali fungsi Anda dipanggil. Ini menerima objek yang berisi argumen yang dikirimkan sebagai data HTTP GET dan POST dalam permintaan pengguna. Anda juga dapat mengonfigurasi argumen statis, menggunakan bidang parameter pada tindakan, paket, dan proyek tingkat atas di file project.yml Anda.

Functions perlu mengembalikan objek yang menjelaskan respons HTTP terhadap masalah. Bidang isi menjadi data yang disertakan dalam response.

Invoking and Deploying Functions

Proyek ini siap dijalankan. Gunakan perintah ini untuk menerapkan function:

$ doctl serverless deploy Anda. Menerapkan `/home/james/@scratch/demo-project` ke namespace `fn-3c1d9001-8e04-44e8-9375-c22b13c4a41a` pada host `https://faas-lon1-917a94a7.doserverless.co` Status penerapan dicatat di `.nimbella` Deployed functions (`doctl sbx fn get –url` untuk URL): – sample/hello

Perintah serverless deploy mengambil satu argumen, jalur ke direktori yang berisi fungsi Anda. Menggunakan . ketika root proyek Anda sudah menjadi direktori kerja Anda.

Sekarang Anda dapat menguji fungsi Anda menggunakan fungsi tanpa server doct CLI:

$ memanggil sample/hello -p name:howtogeek { “body”: “Hello howtogeek!” }

Parameter -p menetapkan argumen yang diteruskan ke kode Anda. Contoh ini menunjukkan bagaimana nilai kembalian fungsi Anda menjadi badan respons HTTP.

Selanjutnya coba buat permintaan API nyata ke fungsi Anda. Anda dapat menemukan URL-nya dengan perintah berikut:

$ URL=$(doctl fungsi serverless get sample/hello –url)

Gunakan curl atau klien HTTP favorit Anda untuk mencapai titik akhir ini:

$ curl $URL?name=howtogeek Halo howtogeek!

Parameter string kueri nama telah berhasil diteruskan ke fungsi.

Memodifikasi Fungsi Anda

Sejauh ini kami menggunakan kode sampel DigitalOcean tanpa modifikasi apa pun. Ini tidak akan membawa Anda jauh dalam perjalanan tanpa server Anda! Edit file hello.js Anda sehingga terlihat seperti ini:

function main(args){return{ body:{ value:(args.value*2), timestamp:Date.now()}, headers:{“Content-Type” :”application/json”}};}

Re-deploy fungsi Anda:

$ doctl serverless deploy .

Fungsi ini secara naif menggandakan angka yang diberikan oleh parameter permintaan nilai. Ini juga mencakup stempel waktu dengan setiap badan respons. Bidang header digunakan dalam objek respons untuk menerapkan JSON Content-Type.

Anda dapat memanggil fungsi ini menggunakan Doctl atau curl dengan gaya yang sama seperti sebelumnya:

$ curl $URL?value=2 { “timestamp”: 1654784122966, “value”: 4 }

Secara manual menerapkan kembali fungsi Anda setelah setiap perubahan membosankan dan memakan waktu. Jalankan perintah watch saat Anda bekerja untuk menerapkan perubahan secara otomatis setelah Anda memodifikasi file Anda:

$ doctl serverless watch . Menonton `.` [gunakan Control-C untuk mengakhiri]

Biarkan jendela terminal tetap terbuka saat Anda mengembangkan fungsi Anda. Setiap penerapan baru akan mencatat pesan sehingga Anda tahu kapan Anda dapat menguji perubahan Anda. Ini memfasilitasi iterasi yang efisien saat Anda mengembangkan fungsi.

Anda juga dapat mengalirkan log dari fungsi Anda. Ini sangat berharga ketika suatu fungsi mogok atau tidak berperilaku seperti yang Anda harapkan. Jalankan perintah ini untuk mengakses log yang terkait dengan fungsi demo Anda:

$ doct log aktivasi tanpa server –follow –function sample/hello

Baris baru akan dicetak setiap kali Anda memanggil fungsi Anda. Log juga menyertakan pesan yang dipancarkan kode Anda ke output standar dan aliran kesalahan lingkungan.

Menyebarkan ke Produksi

Perintah penerapan tanpa server saat ini dirancang hanya untuk penggunaan pengembangan. Anda dapat menyebarkan ke produksi dengan membuat repositori Git untuk proyek Fungsi Anda dan meluncurkannya menggunakan Platform Aplikasi DigitalOcean.

Buat proyek baru di GitHub atau GitLab dan dorong kode Anda:

$ git init $ git remote add origin git@github.com :user/repo.git $ git tambahkan . $ git commit -m “initial commit” $ git push -u origin master

Selanjutnya buka panel kontrol DigitalOcean Anda dan klik tautan “Aplikasi” di bilah sisi kiri. Klik tombol “Buat Aplikasi” yang muncul. Pada layar berikutnya, ikuti petunjuk untuk terhubung ke akun GitHub Anda dan pilih repositori baru Anda. Tekan tombol biru “Berikutnya”.

DigitalOcean akan secara otomatis mendeteksi repositori Anda sebagai proyek Fungsi jika Anda memiliki project.yml di root-nya. Klik tombol “Lewati untuk Meninjau” untuk melanjutkan.

Layar berikutnya akan mengonfirmasi bahwa Anda akan ditagih menggunakan rencana Fungsi.

Tekan “Buat Sumber Daya” untuk menyediakan aplikasi Anda dan memulai penerapan pertamanya. Kemajuan akan ditampilkan di dasbor.

Endpoint fungsi Anda akan dapat diakses publik setelah penerapan selesai. Anda dapat menemukan domain default ondigitalocean.app aplikasi Anda dengan menggulir ke bawah halaman Pengaturan Aplikasi di dasbor Anda. Dalam contoh kami, domain aplikasi adalah sea-lion-app.7ougx.ondigitalocean.app.

Functions secara otomatis diekspos sebagai URI yang memiliki format berikut:

.ondigitalocean.app//

Anda dapat memanggil fungsi sampel yang dibuat sebelumnya dengan membuat permintaan berikut:

$ curl https://sea-lion-app.7ougx.ondigitalocean.app/sample/hello?value=2 { “timestamp”: 1654786505969, “value”: 4 }

Fungsi telah berhasil digunakan! Anda sekarang dapat menggunakan tab Domains di pengaturan aplikasi Anda untuk melampirkan domain kustom alih-alih domain default.

Summary

DigitalOcean Functions adalah pesaing terbaru di arena fungsi tanpa server yang semakin ramai. Platform ini memungkinkan Anda mengembangkan fungsionalitas sisi server tanpa mengelola VM atau menyimpan kode secara manual.

Functions menyediakan CLI komprehensif untuk membangun dan menguji titik akhir Anda. Anda kemudian dapat menerapkan fungsi Anda ke solusi Platform Aplikasi DigitalOcean yang ada, baik sebagai proyek mandiri atau sebagai bagian dari aplikasi yang lebih besar. Anda dapat mengatur variabel lingkungan, beberapa tindakan, dan batas sumber daya menggunakan bidang dalam file project.yml Anda, memberi Anda rute cepat dan mudah untuk membangun endpoints.

sesuai permintaan yang relatif kompleks

Itulah berita seputar Bagaimana Memulai Dengan Fungsi Tanpa Server DigitalOcean, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Inilah Alasan Kenapa Sinkhole Sering Muncul di Indonesia dan Cara Mengenali Tanda-Tandanya Supaya Kalian Tetap Aman
  • Inilah Program PJJ 2026 untuk Anak Tidak Sekolah, Cara Mudah Masuk SMA Tanpa Harus ke Kelas Tiap Hari!
  • Inilah Program SPMB 2026 PJJ Khusus Anak Tidak Sekolah, Solusi Buat yang Pengen Balik Belajar!
  • Inilah Cara Kuliah di Al-Azhar Mesir Lewat Jalur Kemenag 2026, Lengkap dengan Syarat dan Jadwalnya!
  • Inilah Jadwal Lengkap Jalur Mandiri Unud 2026, Persiapkan Diri Kalian Sebelum Menyesal!
  • Inilah 8 Universitas Swasta Terbaik di Indonesia Versi THE Asia University Rankings 2026 yang Bisa Jadi Pilihan Kuliah Kamu
  • Inilah Jadwal Terbaru SSU ITB 2026 yang Diperpanjang, Lengkap dengan Syarat dan Rincian Biayanya!
  • Inilah 10 Jurusan Kuliah Paling Dicari Perusahaan Tahun 2026, Cek Daftarnya Biar Nggak Salah Pilih!
  • Inilah Cara Daftar Beasiswa Tut Wuri Handayani 2026, Kesempatan Emas Buat PNS Kemendiktisaintek Tingkatkan Karier!
  • Inilah Ketentuan Lengkap TKA Susulan 2026 SD dan SMP, Cek Syarat dan Jadwal Resminya Di Sini!
  • Inilah Kurikulum Berbasis Cinta Madrasah: Panduan Lengkap dan Link Download PDF Terbaru 2026
  • Inilah Kronologi Mencekam Kecelakaan KA Argo Bromo Anggrek Tabrak KRL di Bekasi Timur yang Bikin Jalur Kereta Lumpuh Total
  • Inilah Alasan Kenapa Hari Libur dan Tanggal Penting Selalu Ditulis Pakai Warna Merah di Kalender
  • Inilah Cara Daftar Jalur Prestasi Politeknik PU Semarang 2026, Kesempatan Kuliah di Kampus Kementerian PU!
  • Inilah Cara Cek Bansos PKH dan BPNT 2026 Lewat HP, Lengkap dengan Jadwal Cair dan Besaran Dananya!
  • Inilah Alasan Kemdiktisaintek Bakal Tutup Banyak Jurusan Kuliah yang Nggak Relevan dengan Industri
  • Inilah Status Libur Hari Pendidikan Nasional 2026 dan Sejarah Penting di Baliknya
  • Inilah Daftar Libur Mei 2026 yang Bikin Full Senyum, Siapkan Rencana Liburan Kalian Sekarang!
  • Inilah Daftar Universitas Terbaik di Jepang Versi THE Asia University Rankings 2026, Kampus Mana yang Jadi Incaran Kalian?
  • Inilah Alasan Kenapa Kemdiktisaintek Bakal Tutup Sejumlah Prodi dan Fokus ke 8 Industri Strategis
  • Inilah Sosok Richard Aldrich McCurdy, Penguasa Asuransi yang Terjerat Skandal di Masa Gilded Age
  • Inilah Alasan Suhu Bumi Naik Drastis dan Cara Kita Menghadapi Ancaman Cuaca Ekstrem
  • Apa itu Pasukan Perdamaian PBB?
  • Inilah 25 Universitas Paling Internasional di Dunia 2026, Ternyata Kampus di Asia Mulai Merajai!
  • Inilah 10 PTS Terbaik di Indonesia Versi Webometrics 2026 yang Bisa Jadi Referensi Kalian
  • Inilah Cara Daftar Kuliah di Universitas Al-Azhar Mesir 2026 Lewat Jalur Resmi Kemenag
  • Inilah Daftar 20 PTN Terbaik Indonesia Versi Webometrics 2026, Kampus Impian Kalian Ada Nggak?
  • Inilah Profil Donny Sucahya, Sosok Pengusaha Muda yang Viral Karena Bisnis dan Pernikahannya
  • Inilah Alasan Kenapa Belalang Daun Bisa Berubah Warna dari Pink ke Hijau, Ternyata Mirip Daun!
  • Inilah Kenapa eBay Error dan Mengenal The Hacktivist Group 313 yang Mengklaim Bertanggung Jawab Atas Gangguan Global Tersebut
  • How to Level Up Your PC Gaming Experience with the New Valve Steam Controller and Its Advanced Features
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to create high-quality cinematic AI videos and realistic avatars using HeyGen and the Seedance 2.0 model
  • How to build an AI chatbot for your business in just minutes without writing a single line of code
  • How to Master Answer Engine Optimization with HubSpot AEO Tool
  • How to Use GPT-5.5 and Claude Opus 4.7 Together to Maximize Your Workflow Productivity and Code Quality
  • Claude Tutorial: How to Build Your First SaaS Business Using AI Without Coding
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme