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 Cara Menghitung Diskon Baju Lebaran Biar Nggak Bingung Saat Belanja di Mall!
  • Cara Jitu Ngebangun Bisnis SaaS di Era AI Pakai Strategi Agentic Workflow
  • Inilah Rincian Gaji Polri Lulusan Baru 2026, Cek Perbedaan Jalur Akpol, Bintara, dan Tamtama Sebelum Daftar!
  • Inilah 5 Channel YouTube Membosankan yang Diam-diam Menghasilkan Banyak Uang
  • Inilah Cara Pakai Google Maps Offline Biar Mudik Lebaran 2026 Nggak Nyasar Meski Tanpa Sinyal!
  • Inilah Alasan Mahkamah Agung Tolak Kasasi Google, Denda Rp202,5 Miliar Resmi Menanti Akibat Praktik Monopoli
  • Inilah Cara Daftar dan Syarat SPMB SMK Boarding Jawa Tengah 2026, Sekolah Gratis Sampai Lulus!
  • Inilah Daftar Sekolah Kedinasan 2026 untuk Lulusan SMK, Bisa Kuliah Gratis dan Berpeluang Besar Langsung Jadi CPNS!
  • Inilah Pajak TER: Skema Baru PPh 21 yang Nggak Bikin Pusing, Begini Cara Hitungnya!
  • Inilah Jadwal Resmi Jam Buka Tol Jogja-Solo Segmen Prambanan-Purwomartani Saat Mudik Lebaran 2026
  • Inilah Cara Mendapatkan Witherbloom di Fisch Roblox, Rahasia Menangkap Ikan Paling Sulit di Toxic Grove!
  • Kenapa Indomart Point Bisa Kalahkan Bisnis Kafe?
  • Inilah Cara Mendapatkan Rotten Seed di Fisch Roblox, Lokasi Rahasia di Toxic Grove Buat Unlock Toxic Lotus!
  • Inilah Cara Zakat Crypto Kalian Bisa Jadi Pengurang Pajak Berdasarkan Aturan Resmi Pemerintah!
  • Inilah Perbandingan Airwallex vs Payoneer 2026: Jangan Sampai Profit Kalian Ludes Gara-Gara Biaya Admin!
  • Inilah Roadmap 7 Tahap Bangun Bisnis Digital dari Nol Biar Nggak Cuma Putar-Putar di Tempat!
  • Inilah Cara Tetap Gajian dari YouTube Meski View Masih Ratusan, Penasaran?
  • Inilah Alasan Akun TikTok Affiliate GMV 270 Juta Kena Banned Permanen!
  • Inilah Bahaya Astute Beta Server APK, Jangan Sembarang Klik Link Download FF Kipas 2026!
  • Inilah Bahaya Nonton Film di LK21 dan IndoXXI, Awas Data Pribadi dan Saldo Rekening Kalian Bisa Ludes!
  • Inilah Kronologi & Video Lengkap Kasus Sejoli Tambelangan Sampang Viral, Ternyata Gini Awal Mulanya!
  • Inilah Alasan Kenapa Koin Nego Neko Shopee Nggak Bisa Dipakai Bayar Full dan Cara Rahasia Dapetinnya!
  • Inilah Cara Menjawab Pertanyaan Apakah di Sekolahmu Sudah Ada IFP/PID dengan Benar dan Profesional
  • Inilah Fakta Isu Roblox Diblokir di Indonesia 2026, Benarkah Akan Ditutup Total?
  • Inilah Penyebab dan Cara Mengatasi FF Kipas My ID Verify UID Biar Akun Tetap Aman
  • Inilah Deretan HP RAM 8GB Harga di Bawah 2 Juta Terbaik 2026, Spek Dewa Tapi Nggak Bikin Kantong Jebol!
  • Contoh Cara Buat SK Panitia TKA 2026
  • Inilah Cara Download Point Blank ID Versi Terbaru 2026, Gampang Banget Ternyata!
  • Inilah Persiapan Lengkap Gladi Bersih TKA 2026 SD dan SMP: Jadwal, Teknis Proktor, dan Aturan yang Wajib Kalian Tahu
  • Inilah Aturan Lengkapnya, Apakah Zakat dalam Bentuk Barang Bisa Mengurangi Pajak Penghasilan Kalian?
  • Why Does PowerPoint Underline Hyperlinks? Here is How to Remove Them
  • AI Bug Hunting with Semgrep
  • What is the Excel Power Query 0xc000026f Error?
  • How to Build Your Own Homelab AI Supercomputer 2026
  • How to Enable SSH in Oracle VirtualBox for Beginners
  • How to Connect Claude Code to 200+ Apps Instantly with Fabi AI
  • The Ultimate Guide to Local AI: Setting Up OpenClaw with NVIDIA Nemotron-3 Super and Ollama for Free!
  • Claude Code Desktop: How to Make Your AI Assistant Work While You Sleep
  • How to Vibe Coding a Game in 2026
  • Running NVIDIA’s Nemotron-3 Super 120B Model Locally with Ollama: A Complete Guide for Young Tech Enthusiasts
  • 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