Membangun Aplikasi Go di App Engine

ID region

REGION_ID adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.

Pelajari ID region lebih lanjut.

Panduan ini membantu Anda memulai App Engine dan memahami cara mengembangkan, men-deploy, dan mengelola aplikasi Go.

Biaya

Panduan ini bersifat gratis. Menjalankan aplikasi contoh ini saja tidak akan melebihi kuota gratis Anda.

Menyiapkan lingkungan pengembangan Anda

Anda dapat menggunakan komputer lokal Anda dan menggunakan alat yang sudah biasa Anda gunakan, atau Cloud Shell. Cloud Shell telah menginstal Google Cloud CLI, lingkungan Anda sudah disiapkan, dan banyak fitur lainnya.

Komputer Lokal

Instal Go dan siapkan gcloud CLI.

Cloud Shell

Luncurkan Cloud Shell, yang didalamnya telah terinstal semua alat yang Anda perlukan:

Buka Cloud Shell

Membuat project Google Cloud

Project diwajibkan untuk menggunakan Google Cloud, dan membentuk dasar untuk menggunakan semua layanan Google Cloud.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Buat aplikasi App Engine Anda dan resource yang terkait. Anda harus memilih lokasi yang tidak dapat diubah nanti.
    gcloud app create

Menulis layanan web dasar untuk App Engine

Pelajari cara menulis layanan web dan mendeklarasikan setelan runtime.

Membuat struktur file Anda

Layanan Anda akan memiliki struktur file berikut:

  • go-app/: direktori untuk layanan Go 1.11 Anda.
    • app.yaml: Setelan konfigurasi layanan Anda.
    • main.go: Kode aplikasi Anda.

Membuat file app.yaml

Setiap project App Engine memiliki file konfigurasi app.yaml yang menentukan setelan lingkungan runtime layanan Anda. Layanan Anda tidak akan di-deploy tanpa file ini.

  1. Buat folder baru bernama go-app untuk layanan Go 1.11 Anda:

    mkdir go-app

  2. Di folder go-app/, buat file dengan nama app.yaml, lalu tambahkan konten berikut:

    # Copyright 2019 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     https://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    runtime: go121
    

    Ini adalah konfigurasi paling sederhana untuk aplikasi App Engine. Hal ini menunjukkan kepada App Engine bahwa Anda menggunakan runtime Go 1.11. File app.yaml juga dapat menentukan setelan jaringan, setelan penskalaan, dan lainnya. Untuk informasi selengkapnya, lihat referensi app.yaml.

Membuat file main.go

Contoh ini menggunakan paket net/http untuk membuat server HTTP yang mencetak "Halo dunia".

Untuk menyiapkan file main.go Anda:

  1. Di folder go-app/, buat file main.go.

  2. Tambahkan pernyataan package main untuk memperlakukan kode Anda sebagai program yang dapat dieksekusi:

    package main
    

    Agar berhasil men-deploy layanan dalam runtime Go 1.11, pernyataan package main harus ditentukan di awal setidaknya salah satu file sumber Go Anda di direktori yang sama dengan file app.yaml layanan Anda.

  3. Impor paket berikut:

    import (
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    )
    
  4. Tentukan pengendali HTTP Anda:

    
    // indexHandler responds to requests with our greeting.
    func indexHandler(w http.ResponseWriter, r *http.Request) {
    	if r.URL.Path != "/" {
    		http.NotFound(w, r)
    		return
    	}
    	fmt.Fprint(w, "Hello, World!")
    }
    

    Objek http.ResponseWriter menyusun respons server HTTP; dengan menulis ke situ, Anda akan mengirim data ke browser. Objek http.Request adalah struktur data yang mewakili permintaan HTTP yang masuk.

  5. Daftarkan pengendali HTTP Anda:

    
    func main() {
    	http.HandleFunc("/", indexHandler)
    
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    		log.Printf("Defaulting to port %s", port)
    	}
    
    	log.Printf("Listening on port %s", port)
    	if err := http.ListenAndServe(":"+port, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    

    Fungsi main adalah titik entri program yang dapat dieksekusi sehingga akan memulai aplikasi. Proses ini dimulai dengan panggilan ke fungsi http.HandleFunc yang memberi tahu paket http untuk menangani semua permintaan ke root web ("/") dengan fungsi indexHandler.

    Jika variabel lingkungan PORT tidak disetel, port 8080 akan digunakan sebagai default. Saat aplikasi Anda berjalan di App Engine, variabel lingkungan PORT akan disetel untuk Anda. Namun, saat menguji aplikasi secara lokal, Anda dapat menyetel PORT ke nilai apa pun yang diinginkan.

Men-deploy layanan web Anda di App Engine

  1. Di direktori go-app tempat file app.yaml Anda berada, deploy layanan web Anda ke App Engine menggunakan perintah berikut:

    gcloud app deploy

  2. Untuk meluncurkan browser dan melihat layanan web Anda di https://PROJECT_ID.REGION_ID.r.appspot.com, jalankan perintah berikut:

    gcloud app browse

Selamat! Anda baru saja membuat dan men-deploy layanan di App Engine.

Layanan dan versi

Layanan pertama yang Anda deploy untuk aplikasi akan menjadi layanan default. Anda dapat menentukan nama layanan di file app.yaml, tetapi jika nama dihilangkan, maka akan diperlakukan sebagai default. Anda dapat men-deploy beberapa layanan selain layanan default.

Anda dapat mengupdate layanan kapan saja dengan menjalankan perintah gcloud app deploy. Setiap kali Anda melakukan deployment, versi baru akan dibuat dan traffic akan otomatis dirutekan ke versi terbaru.

Untuk mengonfirmasi pembuatan layanan dan deployment versi:

  1. Lihat layanan App Engine Anda di konsol Google Cloud:

    Lihat layanan

    Anda akan melihat satu layanan tercantum yang bernama default. Layanan default dapat diakses secara publik di URL berikut:

    https://PROJECT_ID.REGION_ID.r.appspot.com

  2. Lihat versi Anda:

    Lihat versi

    Anda akan melihat satu versi yang tercantum dengan stempel waktu, sesuai dengan deployment Anda.

Untuk mempelajari cara mengirim permintaan ke layanan dan versi tertentu, baca Cara Permintaan Dirutekan.

Langkah berikutnya

Selamat! Anda baru saja menyiapkan dan men-deploy aplikasi web Anda ke App Engine.

Pelajari cara menambahkan fitur lain ke aplikasi dengan menjelajahi halaman berikut: