All Products
Search
Document Center

Function Compute:Penanganan event

Last Updated:Apr 01, 2026

Topik ini menjelaskan struktur event handler untuk fungsi Python di Function Compute dan menyediakan contoh kode untuk skenario umum: menguraikan event JSON, mengakses OSS menggunakan kredensial temporary, serta menjalankan perintah eksternal.

Signatur handler

Semua event handler Python menggunakan signature berikut:

def handler(event, context):
    return 'hello world'
ParameterDeskripsi
handlerMetode yang memproses permintaan masuk. Nama metode ini harus sesuai dengan nilai Request Handler yang dikonfigurasi di Konsol Function Compute. Misalnya, jika request handler diatur ke main.handler, Function Compute akan memuat main.py dan memanggil fungsi handler yang didefinisikan dalam file tersebut.
eventInput yang diberikan saat fungsi dipanggil. Di Python 2.7, nilainya berupa str (STRING). Di Python 3, nilainya berupa bytes (BYTES).
contextKonteks waktu proses yang disediakan saat pemanggilan. Gunakan konteks ini untuk mengakses kredensial temporary dan metadata waktu proses lainnya.

Contoh 1: Menguraikan event JSON

Function Compute meneruskan data event sebagai byte mentah. Uraikan muatan tersebut dengan json.loads() sebelum mengakses bidang-bidang individual.

# -*- coding: utf-8 -*-
import json

def handler(event, context):
    evt = json.loads(event)
    return evt['key']

Prasyarat

Sebelum memulai, pastikan Anda telah:

Menguji fungsi

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan target.

  3. Di halaman Functions, klik nama fungsi target.

  4. Di halaman Function Details, klik tab Code, tempel kode contoh ke editor kode, lalu klik Deploy.

    Penting

    Dalam kode contoh, handler adalah metode handler di index.py. Jika konfigurasi handler fungsi Anda berbeda, sesuaikan kodenya.

  5. Di tab Code, klik ikon down di samping Test Function, pilih Configure Test Parameters dari daftar drop-down, masukkan input uji berikut, lalu klik OK.

    {
      "key": "value"
    }
  6. Klik Test Function.

Hasil eksekusi adalah value.

Contoh 2: Mengakses OSS menggunakan kredensial temporary

Gunakan kredensial temporary dari context.credentials untuk mengakses Object Storage Service (OSS). Pendekatan ini menghindari hardcoding informasi sensitif seperti pasangan AccessKey di dalam kode Anda.

import json
import oss2

def handler(event, context):
    evt = json.loads(event)
    creds = context.credentials
    # jangan lupa security_token
    auth = oss2.StsAuth(creds.access_key_id, creds.access_key_secret, creds.security_token)
    bucket = oss2.Bucket(auth, evt['endpoint'], evt['bucket'])
    bucket.put_object(evt['objectName'], evt['message'])
    return 'success'

context.credentials menyediakan tiga bidang:

BidangDeskripsi
access_key_idTemporary AccessKey ID
access_key_secretTemporary AccessKey secret
security_tokenToken Security Token Service (STS)—wajib digunakan saat memakai oss2.StsAuth
Penting

Peran yang ditetapkan ke fungsi harus memiliki izin untuk mengakses Object Storage Service (OSS). Berikan izin tersebut di Konsol Resource Access Management (RAM).

Prasyarat

Sebelum memulai, pastikan Anda telah:

Menguji fungsi

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan target.

  3. Di halaman Functions, klik nama fungsi target.

  4. Di halaman Function Details, klik tab Code, tempel kode contoh ke editor kode, lalu klik Deploy.

    Penting

    Dalam kode contoh, handler adalah metode handler di index.py. Jika konfigurasi handler fungsi Anda berbeda, sesuaikan kodenya.

  5. Di tab Code, klik ikon down di samping Test Function, pilih Configure Test Parameters dari daftar drop-down, masukkan input uji berikut, lalu klik OK.

    {
      "endpoint": "http://oss-cn-shenzhen-internal.aliyuncs.com",
      "bucket": "oss-********",
      "objectName": "oss-test-object",
      "message": "oss-test-content"
    }
  6. Klik Test Function.

Hasil eksekusi adalah success.

Contoh 3: Menjalankan perintah eksternal

Gunakan modul subprocess Python untuk menjalankan perintah shell Linux dari fungsi Anda. Contoh berikut menjalankan ls -l dan mengembalikan daftar direktori.

import os
import subprocess

def handler(event, context):
    ret = subprocess.check_output(['ls', "-l"])
    return ret

subprocess.check_output() menjalankan perintah, menunggu hingga selesai, lalu mengembalikan output dalam bentuk bytes. Jika perintah berakhir dengan status non-nol, fungsi ini akan memunculkan CalledProcessError.