Menghubungkan ke Cloud SQL dengan Cloud Functions

Terakhir diupdate: 17-06-2020

Apa itu Cloud SQL?

Cloud SQL adalah layanan database terkelola sepenuhnya yang mempermudah penyiapan, pemeliharaan, pengelolaan, dan pengaturan database relasional di Google Cloud Platform.

Apa itu Cloud Functions?

Cloud Functions adalah solusi komputasi ringan bagi developer untuk membuat fungsi yang berdiri sendiri dan bertujuan tunggal, yang merespons peristiwa Cloud tanpa perlu mengelola server atau lingkungan runtime.

Yang akan Anda build

Dalam codelab ini, Anda akan menulis Cloud Function dalam Python. Fungsi ini:

  • Terhubung ke instance Cloud SQL Database.
  • Mengirim pernyataan penyisipan ke tabel dalam database.

Yang akan Anda pelajari

  • Cara mengakses UI web Cloud Functions di Google Cloud Console.
  • Cara membuat Cloud Function.
  • Cara menguji Cloud Function.
  • Cara menghubungkan ke instance database Cloud SQL (baik MySQL atau PostgreSQL) menggunakan Python.
  • Cara menulis ke database Cloud SQL menggunakan Python.
  • Browser, seperti Chrome atau Firefox.
  • Project Google Cloud Platform yang berisi instance Cloud SQL Anda.
  • Jika Anda belum memilikinya, kami memiliki tutorial untuk itu. Lakukan semua langkah kecuali menghapus instance.
  • Instance Anda berisi database MySQL atau PostgreSQL dengan tabel.
  • Nama koneksi instance Anda, nama database dan tabel, nama pengguna database, dan sandi pengguna.
  • Akun layanan dengan peran Klien Cloud SQL.

Kode Cloud Function untuk menghubungkan ke database Cloud SQL ada di sini. Beberapa nilai variabel bergantung pada apakah database Cloud SQL Anda adalah MySQL atau PostgreSQL, dan bergantung pada informasi database Anda sendiri.

UI Cloud Functions di Cloud Console menyertakan editor teks. Anda dapat menyalin/menempel dan mengedit kode, atau mengedit kode secara lokal terlebih dahulu, lalu menyalin/menempelkannya ke UI.

requirements.txt

# This file tells Python which modules it needs to import
SQLAlchemy==1.3.12
# If your database is MySQL, uncomment the following line:
#PyMySQL==0.9.3
# If your database is PostgreSQL, uncomment the following line:
#pg8000==1.13.2

main.py

# This file contains all the code used in the codelab.
import sqlalchemy

# Depending on which database you are using, you'll set some variables differently.
# In this code we are inserting only one field with one value.
# Feel free to change the insert statement as needed for your own table's requirements.

# Uncomment and set the following variables depending on your specific instance and database:
#connection_name = ""
#table_name = ""
#table_field = ""
#table_field_value = ""
#db_name = ""
#db_user = ""
#db_password = ""

# If your database is MySQL, uncomment the following two lines:
#driver_name = 'mysql+pymysql'
#query_string = dict({"unix_socket": "/cloudsql/{}".format(connection_name)})

# If your database is PostgreSQL, uncomment the following two lines:
#driver_name = 'postgres+pg8000'
#query_string =  dict({"unix_sock": "/cloudsql/{}/.s.PGSQL.5432".format(connection_name)})

# If the type of your table_field value is a string, surround it with double quotes.

def insert(request):
    request_json = request.get_json()
    stmt = sqlalchemy.text('insert into table_name (table_field) values (table_field_value)')

    db = sqlalchemy.create_engine(
      sqlalchemy.engine.url.URL(
        drivername=driver_name,
        username=db_user,
        password=db_password,
        database=db_name,
        query=query_string,
      ),
      pool_size=5,
      max_overflow=2,
      pool_timeout=30,
      pool_recycle=1800
    )
    try:
        with db.connect() as conn:
            conn.execute(stmt)
    except Exception as e:
        return 'Error: {}'.format(str(e))
    return 'ok'
  1. Di browser, buka UI Google Cloud Platform Console.
  2. Pilih Cloud Functions dari menu Navigasi.
  3. Klik BUAT FUNGSI di panel tombol.
  4. Masukkan nama untuk fungsi.
  5. Pilih pemicu HTTP. (Catat URL yang ditampilkan di bawah item pemicu. Formatnya akan seperti ini: https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME)
  6. Pilih Editor inline untuk opsi kode sumber.
  7. Pilih Python 3.7 untuk opsi runtime.
  8. Di jendela editor kode sumber, hapus konten yang ada untuk requirements.txt dan main.py, lalu ganti dengan versi yang diedit dari kode di atas.
  9. Masukkan sisipan sebagai nama Fungsi untuk dijalankan.
  10. Di Opsi lanjutan, pilih Akun layanan yang memiliki peran Klien Cloud SQL.
  11. Klik Buat dan tunggu indikator lingkaran berputar berhenti. Centang hijau muncul saat fungsi siap digunakan.
  1. Di browser, buka UI Google Cloud Platform Console.
  2. Pilih Cloud Functions dari menu Navigasi.
  3. Klik nama fungsi yang telah Anda buat sebelumnya.
  4. Pilih link MENGUJI di bagian tengah halaman.
  5. Pilih UJI FUNGSI.
  6. Hasilnya akan muncul: ok (Jika pengujian gagal, Anda akan melihat pelacakan tumpukan untuk membantu proses debug.)
  7. Di browser, buka URL yang disimpan sebelumnya, saat Anda membuat fungsi.
  8. Hasil ok juga akan muncul di browser.

Selamat, Anda telah berhasil membuat Cloud Function yang berfungsi dengan Cloud SQL.

Secara khusus, Anda telah membuat Cloud Function yang menghubungkan dan menulis ke instance database Cloud SQL.

Lihat beberapa codelab ini...

Bacaan lebih lanjut

Dokumen Referensi