Tüm Ürünler
Search
Belge Merkezi

Function Compute:Troubleshoot the "Invocation canceled by client" error

Son Güncelleme:Oct 08, 2026

"Invocation canceled by client" hatası, işlevin çalışması tamamlanmadan önce istemcinin bağlantıyı kestiğini gösterir. Function Compute çalışmayı durdurur ve hatayı günlüğe kaydeder.

Hata mesajı

İstek günlüğünde aşağıdaki hata görüntülenir:

FC Invoke End RequestId: 1-64263a4b-2cd7c98b677*********, Error: Invocation canceled by client (duration: 4912ms, maxMemoryUsage: 0.00MB)

Neden

İşlev tamamlanmadan önce istemci isteği iptal eder; bu durum çalışmayı kesintiye uğratır ve hataya neden olur.

Yaygın tetikleyiciler şunlardır:

  • İstemci tarafındaki istek zaman aşımı süresi, işlevin çalışma süresinden daha kısadır.

  • Bir kullanıcı isteği manuel olarak iptal etmiştir (örneğin, Function Compute konsolunda Cancel Request seçeneğine tıklayarak veya tarayıcı sekmesini kapatarak).

  • Bir ara hizmet (API Gateway gibi), işlevin çalışma süresinden daha kısa bir arka uç zaman aşımı uygulamıştır.

Çözüm

Adım 1: Çalışma süresini kontrol edin

İstemci bağlantıyı kesmeden önce işlevin ne kadar süre çalıştığını görmek için hata mesajından duration değerini ayıklayın.

Yukarıdaki örnekte duration: 4912ms ifadesi, işlevin yaklaşık 5 saniye çalıştığını gösterir.

Adım 2: Sürenin beklenen bir değer olup olmadığını belirleyin

Süreyi, işleviniz için beklenen çalışma süresiyle karşılaştırın:

İstemci tarafı zaman aşımını artırma

İşlevin çalışma süresi beklentiler dahilindeyse istemci zaman aşımı çok kısadır. İşlevi nasıl çağırdığınıza bağlı olarak zaman aşımını ayarlayın:

SDK veya API ile çağrı

İstemci tarafındaki istek zaman aşımını, yapılandırılmış işlev zaman aşımından daha büyük bir değere ayarlayın.

Go örneği: http.Client içindeki Timeout özelliği aracılığıyla zaman aşımını ayarlayın. İsteği başlatmak için context.Context kullanıyorsanız bağlamın son tarihini veya zaman aşımını düzenleyin.

// Set the HTTP client timeout to 120 seconds
client := &http.Client{
    Timeout: 120 * time.Second,
}

Başka bir hizmet üzerinden çağrı

İşlevi başka bir Alibaba Cloud hizmeti (API Gateway gibi) tetikliyorsa ilgili hizmetin arka uç zaman aşımını değiştirin.

API Gateway örneği: API Gateway konsolunda arka uç zaman aşımı ayarlarını düzenleyin. Ayrıntılar için bkz. API oluşturma.

Konsol üzerinden çağrı

Function Compute konsolundan bir işlevi çağırdığınızda, işlevin çalışması tamamlanana kadar Cancel Request seçeneğine tıklamayın veya tarayıcı sekmesini kapatmayın.

İşlev çalışma süresini azaltma

İşlev beklenenden daha uzun sürüyorsa darboğazı belirlemek için işlev günlüklerinizi inceleyin. En yaygın iki neden G/Ç gecikme süresi ve hesaplama yoğunluklu işlemlerdir.

G/Ç işlemleri

Beklenmeyen gecikme süresinin birincil nedeni ağ G/Ç işlemleridir. Yavaş çağrıyı izole etmek için her harici çağrıdan (veritabanı sorguları, API istekleri, depolama işlemleri) önce ve sonra günlük kaydı ekleyin.

import time, logging

start = time.time()
# Call to external service
response = external_service.query(params)
logging.info(f"External service call took {time.time() - start:.2f}s")

Hesaplama işlemleri

CPU yoğunluklu işlemler de çalışma süresini uzatabilir. Profil oluşturma işlemi bir hesaplama darboğazını doğrularsa işlev için ayrılan CPU teknik özelliklerini artırın.