全部产品
Search
文档中心

Function Compute:Penangan Acara

更新时间:Dec 18, 2025

Topik ini menjelaskan struktur penangan acara dalam lingkungan Python dan memberikan contoh implementasi penangan acara di Python.

Tanda tangan untuk penangan acara

Kode sampel berikut menggambarkan tanda tangan untuk penangan acara.

def handler(event, context):
    return 'hello world'

Deskripsi parameter:

  • handler: Nama metode yang digunakan untuk memproses permintaan. Metode ini sesuai dengan nilai yang ditentukan untuk parameter Request Handler di Function Compute console. Sebagai contoh, jika penangan yang dikonfigurasikan untuk fungsi Function Compute adalah main.handler, Function Compute akan memuat fungsi handler yang didefinisikan di main.py dan mengeksekusi fungsi dari fungsi handler.
  • event: Parameter yang dilewatkan saat memanggil fungsi. Dalam lingkungan runtime Python 2.7, nilai parameter ini bertipe STRING. Dalam lingkungan runtime Python 3, nilai parameter ini bertipe BYTES.
  • context: Konteks runtime yang disediakan saat fungsi Function Compute dipanggil.

Contoh 1: Mengurai parameter berformat JSON

Kode sampel

Function Compute meneruskan parameter berformat JSON yang telah dikonfigurasi, Anda harus mengurai parameter tersebut dalam kode. Kode sampel berikut menunjukkan cara mengurai event yang berformat JSON.

# -*- coding: utf-8 -*-
import json
def handler(event, context):
    evt = json.loads(event)
    return evt['key']

Prasyarat

Buat sebuah fungsi.

Prosedur

  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 yang diinginkan.

  3. Pada halaman Functions, klik nama fungsi yang diinginkan.

  4. Pada halaman Detail Fungsi, klik tab Code, masukkan kode sampel sebelumnya di editor kode, lalu klik Deploy.
    Penting

    Pada kode sampel sebelumnya, penangan adalah metode handler di index.py. Jika konfigurasi penangan fungsi Anda berbeda, gunakan konfigurasi penangan aktual Anda.

  5. Pada tab Code, klik ikon down di sebelah Test Function, pilih Configure Test Parameters dari daftar drop-down, masukkan parameter uji berikut, lalu klik OK.
    {
      "key": "value"
    }
  6. Klik Test Function.
    Setelah fungsi dieksekusi, hasil eksekusi akan dikembalikan. Hasil eksekusi adalah value.

Contoh 2: Membaca dan menulis sumber daya OSS menggunakan pasangan AccessKey sementara secara aman

Kode sampel

Anda dapat menggunakan pasangan kunci sementara yang disediakan oleh Function Compute untuk mengakses Object Storage Service (OSS). Kode berikut digunakan sebagai contoh.

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'

Anda bisa mendapatkan pasangan AccessKey sementara dari context di creds = context.credentials. Ini mencegah pengkodean keras pada informasi sensitif seperti rahasia.

Penting Pastikan bahwa peran yang dikonfigurasikan untuk layanan memiliki izin untuk mengakses Object Storage Service (OSS). Anda dapat masuk ke Konsol Resource Access Management (RAM) dan memberikan peran izin untuk mengakses OSS.

Prasyarat

Buat sebuah fungsi.

Prosedur

  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 yang diinginkan.

  3. Pada halaman Functions, klik nama fungsi yang diinginkan.

  4. Pada halaman Function Details, klik tab Code, masukkan kode sampel sebelumnya di editor kode, lalu klik Deploy.
    Penting

    Pada kode sampel sebelumnya, penangan adalah metode handler di index.py. Jika konfigurasi penangan fungsi Anda berbeda, gunakan konfigurasi penangan aktual Anda.

  5. Pada tab Code, klik ikon down di sebelah Test Function, pilih Configure Test Parameters dari daftar drop-down, masukkan parameter 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.
    Setelah fungsi dieksekusi, hasil eksekusi akan dikembalikan. Hasil eksekusi adalah success.

Contoh 3: Menjalankan perintah eksternal

Anda dapat menggunakan program Python untuk membuat proses fork untuk memanggil perintah eksternal. Sebagai contoh, Anda dapat menggunakan modul subprocess untuk memanggil perintah ls -l di Linux. File di direktori saat ini akan dikembalikan. Kode sampel berikut menunjukkan contohnya:

import os
import subprocess

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