全部产品
Search
文档中心

Function Compute:Apa yang harus saya lakukan jika terjadi kesalahan 404 saat menggunakan browser atau alat cURL untuk mengakses fungsi?

更新时间:Aug 20, 2025

Gejala

Saya membuat fungsi HTTP bernama func-http di dalam layanan CustomDemo. Fungsi tersebut berjalan di runtime kustom dengan pemicu HTTP anonim. Kode routing sampel berikut digunakan untuk mengimplementasikan server HTTP dari runtime kustom:
@app.route('/test', methods = ['POST','GET'])
def test():
Ketika saya menggunakan alat cURL atau browser untuk mengakses URL fungsi HTTP, kode kesalahan 404 dikembalikan.
  • Gunakan alat cURL untuk mengakses fungsi HTTP.
    curl  -v  https://164901546557****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/CustomDemo/func-http/test
  • Gunakan browser untuk mengakses fungsi HTTP.
    https://164901546557****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/CustomDemo/func-http/test
    Catatan URL fungsi HTTP memiliki format berikut: https://<account_id>.<region_id>.fc.aliyuncs.com/<version>/proxy/<serviceName>/<functionName>/<path>.

Solusi

Anda dapat menyelesaikan masalah ini dengan salah satu metode berikut:
  • Akses fungsi menggunakan subdomain yang ditetapkan oleh Function Compute untuk pemicu HTTP baru. Untuk informasi lebih lanjut, lihat Langkah 3: Uji fungsi.

    Format subdomain:

    https://<subdomain>.<region_id>.fcapp.run/[action?queries] 

    Kode sampel:

    https://funcname-svcname-khljsjksld.cn-shanghai.fcapp.run/action?hello=world
  • Tambahkan header bernama x-fc-invocation-target ke perintah yang digunakan untuk mengakses fungsi. Sintaksis perintah:
    curl -v -H "x-fc-invocation-target: 2016-08-15/proxy/$ServiceName/$functionName" https://<account_id>.<region_id>.fc.aliyuncs.com/$path
    Kode sampel:
    curl -v -H "x-fc-invocation-target: 2016-08-15/proxy/CustomDemo/func-http" https://164901546557****.cn-hangzhou.fc.aliyuncs.com/test
  • Tautkan nama domain kustom ke fungsi. Kemudian, jalankan perintah berikut untuk mengakses fungsi lagi. Untuk informasi lebih lanjut tentang cara menautkan nama domain, lihat Konfigurasi nama domain kustom.
    Sebagai contoh, jika nama domain adalah example.com, sintaksis perintah berikut digunakan:
    curl -v  https://example.com/$path
    Kode sampel:
    curl -v  https://example.com/test
    Penting Ganti /$path dengan path dari mana permintaan dapat memicu fungsi dalam layanan. Path tersebut dikonfigurasi saat Anda menautkan nama domain kustom. Untuk informasi lebih lanjut, lihat Aturan pencocokan rute.
  • Modifikasi kode fungsi Anda dan sebarkan fungsi tersebut. Kemudian, gunakan URL default untuk mengakses fungsi. Contoh berikut menunjukkan kode yang dimodifikasi:
    @app.route('/2016-08-15/proxy/CustomDemo/func-http/test', methods = ['POST','GET'])
    def test():
    Kode sampel:
    curl  -v  https://164901546557****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/CustomDemo/func-http/test