Function Compute HTTP tetikleyicilerini destekler. HTTP tetikleyicisi ile yapılandırılmış bir işlev, HTTP istekleriyle tetiklenebilir. İşlev bu istekleri işler ve sonuçları çağırana döndürür. Bu konuda, Function Compute konsolunda HTTP tetikleyicisinin nasıl yapılandırılacağı ve işlevin HTTP istekleri kullanılarak nasıl çağrılacağı açıklanmaktadır.
Ön koşullar
Adım 1: Tetikleyici oluşturma
Function Compute konsoluna giriş yapın. Sol gezinme bölmesinde seçeneğini belirleyin.
Üst gezinme çubuğundan bir bölge seçin. Functions sayfasında hedef işleve tıklayın.
İşlev Ayrıntıları sayfasında Trigger sekmesine tıklayın ve ardından Create Trigger seçeneğine tıklayın.
-
Tetikleyici Oluştur panelinde parametreleri yapılandırın ve OK düğmesine tıklayın.
Yapılandırma Öğesi
İşlem
Örnek
Trigger Type
HTTP Trigger seçeneğini belirleyin.
HTTP Trigger
Name
Tetikleyici için özel bir ad girin.
http-trigger
Version or Alias
Varsayılan olarak LATEST seçilir. Farklı bir sürüm veya takma ad için tetikleyici oluşturmak üzere İşlev Ayrıntıları sayfasındaki Version or Alias açılır listesinden ilgili öğeyi seçin. Sürümler ve takma adlar hakkında daha fazla bilgi için bkz. Sürüm yönetimi ve Takma ad yönetimi.
LATEST
Request Method
Bu tetikleyici için izin verilen HTTP yöntemlerini seçin.
GET, POST, PUT, DELETE
Disable Internet URL
Varsayılan olarak devre dışıdır; tetikleyici genel uç noktadan erişilebilir.
Etkinleştirildiğinde genel uç nokta sağlanmaz. Bu uç noktaya yapılan istekler
access denied due to function internet URL is disableyanıtını döndürür. Özel etki alanı erişimi etkilenmez.Hayır
Authentication Method
Function Compute'ün HTTP isteklerini nasıl doğrulayacağını seçin:
-
No Authentication: Kimliği doğrulanmamış erişime izin verir. Herkes işlevi HTTP üzerinden çağırabilir.
-
Signature Authentication: İmza doğrulaması gerektirir. Örnek kod: İmzalı HTTP tetikleyici uç noktasına erişim.
-
Bearer Authentication: HTTP isteklerinin kimliği doğrulanmalıdır. Temel kimlik doğrulama örnek kodu için bkz. HTTP tetikleyici için Temel kimlik doğrulamayı yapılandırma.
-
JWT Authentication: HTTP isteklerinin JSON Web Token (JWT) kullanılarak kimliği doğrulanmalıdır. Daha fazla bilgi için bkz. HTTP tetikleyici için JWT kimlik doğrulamasını yapılandırma.
-
Bearer Authentication: HTTP isteklerinin Bearer kimlik doğrulaması kullanılarak kimliği doğrulanmalıdır. Daha fazla bilgi için bkz. HTTP tetikleyici için Bearer kimlik doğrulamasını etkinleştirme.
Kimlik doğrulama yok
Tetikleyici oluşturulduktan sonra Version or Alias, Request Method ve Authentication Method gibi yapılandırmalarını değiştirebilirsiniz.
-
Adım 2: Kodu yazma ve dağıtma
Tetikleyiciyi oluşturduktan sonra işlev kodunu yazın.
İşlev Ayrıntıları sayfasında Code sekmesine tıklayın. Kod düzenleyicide kodu yazın ve ardından Deploy düğmesine tıklayın. Örnek kodlar için çalışma zamanınıza ait işleyici belgelerine bakın.
Adım 3: İşlevi test etme
Yöntem 1: Konsolu kullanarak işlevi test etme
Function Details sayfasında Code sekmesine tıklayın.
-
Eşzamanlı çağrı
Test Function düğmesine tıklayın.
-
Zaman uyumsuz çağrı
Test Function düğmesinin sağındaki
simgesine tıklayın, Async Invocation seçeneğini belirleyin ve ardından Test Function düğmesine tıklayın.
Çalıştırma tamamlandığında sonucu Code sekmesinde görüntüleyin.
Yöntem 2: cURL kullanarak işlevi test etme
İşlev Ayrıntıları sayfasında Trigger sekmesine tıklayın. Hedef HTTP tetikleyicisinin Configurations sütununda genel uç noktayı edinin.
-
İşlevi test etmek için komut satırında bir cURL komutu çalıştırın.
Eşzamanlı çağrı
curl -v https://example.cn-shenzhen.fcapp.run/$pathZaman uyumsuz çağrı
curl -v -H "X-Fc-Invocation-Type: Async" https://example.cn-shenzhen.fcapp.run/$path
Yöntem 3: (Önerilmez) Tarayıcı kullanarak işlevi test etme
İşlev Ayrıntıları sayfasında Trigger sekmesine tıklayın. Hedef HTTP tetikleyicisinin Configurations sütununda genel uç noktayı edinin. Bu uç noktayı tarayıcınızın adres çubuğuna girin ve Enter tuşuna basın.
Çalıştırma tamamlandığında tarayıcı, çalıştırma sonucunu içeren bir dosya döndürür.
(İsteğe bağlı) İşlevi korumak için API Gateway kullanma
Function Compute HTTP işlevlerine anonim erişime izin verir. Yetkisiz erişimi önlemek için kimlik doğrulamayı etkinleştirin ve HTTP işlevlerinizi API Gateway'e bağlayın. İşlevlerinizi korumak için API Gateway eklentilerini (IP tabanlı erişim kontrolü, JWT veya temel kimlik doğrulama) kullanın.
Function Compute konsolunda hedef işlevi bulun. İşlev Ayrıntıları sayfasında Trigger sekmesine tıklayın. Hedef HTTP tetikleyicisinin Actions sütununda Modify seçeneğine tıklayın.
Tetikleyiciyi Düzenle bölmesinde Disable Internet URL anahtarını açın.
API Gateway konsoluna giriş yapın ve HTTP işlevinin bulunduğu bölgeye geçiş yapın.
-
Bir grup ve bir API oluşturun.
API, harici uygulamaların işlev hizmetini belirli bir şekilde çağırmasına olanak tanır. API grubu, ilgili API'leri tek tip güvenlik ilkeleri ve trafik kontrolleri altında düzenler ve yönetir.
API Gateway konsolunda sol gezinme bölmesinden Manage APIs > API Groups seçeneğini belirleyin. Ardından Create Group düğmesine tıklayın.
Create Group iletişim kutusunda bir Instances: seçin. Group Name alanını
FC-Groupolarak ve BasePath alanını/olarak ayarlayın. Ardından Confirm düğmesine tıklayın.-
Hedef grubun Actions sütununda Manage APIs seçeneğine tıklayın. Ardından Create API düğmesine tıklayın. Basic Information bölümünde aşağıdaki parametreleri yapılandırın ve Next düğmesine tıklayın.
Group: FC-Group seçeneğini belirleyin
API Name: FC-test değerini girin
Security Authentication: No Authentication seçeneğini belirleyin
Define API Request bölümünde Request Path alanını
/olarak ayarlayın, diğer parametreler için varsayılan değerleri koruyun ve Next düğmesine tıklayın.Define Backend Service bölümünde Trigger Path alanını Function Compute tetikleyicisinin özel uç noktası olan
https://example.cn-hangzhou-vpc.fcapp.rundeğeri olarak ayarlayın. Diğer parametreler için varsayılan değerleri koruyun ve Next düğmesine tıklayın.Define Response bölümünde varsayılan yapılandırmaları koruyun ve Create düğmesine tıklayın. API oluşturulduktan sonra API'nin Actions sütunundaki Publish seçeneğine tıklayın.
-
Yayınlamadan önce API'de hata ayıklama yapın. Başarılı bir hata ayıklama, API Gateway ile Function Compute arasındaki bağlantının doğru olduğunu gösterir.
API Gateway konsolunda sol gezinme bölmesinden Call APIs > Debug seçeneğini belirleyin.
Hata Ayıklama sayfasında oluşturduğunuz
FC-testAPI'sini seçin ve Send Request düğmesine tıklayın. Başarılı bir yanıt döndürülürse yapılandırma tamamlanmıştır.
Bir Backend Signature eklentisi oluşturun.
keydeğeriniAccessKey IDdeğerinize vesecretdeğeriniAccessKey secretdeğerinize ayarlayın, ardından bunu API'ye bağlayın. Daha fazla bilgi için bkz. Eklentilere genel bakış.-
Alan adınızı CNAME kaydı kullanarak API Gateway tarafından sağlanan ikinci düzey alan adına çözümleyin.
API Gateway konsolunda sol gezinme bölmesinden Manage APIs > API Groups seçeneğini belirleyin. Genel ikinci düzey alan adını kopyalayın.
-
Alan adı çözümleme yönetim sayfanıza gidin. Alibaba Cloud için alan adı çözümleme yönetim sayfası şurada bulunmaktadır: https://dnsnext.console.alibabacloud.com. Alan adı listesi sayfasında yönetmek istediğiniz alan adını bulun ve yönetim sayfasına gitmek için alan adı üzerindeki bağlantıya tıklayın.
NotTürkiye dışındaki bağımsız alan adlarının Alibaba Cloud üzerinden ICP kaydı olması veya ICP kaydının Alibaba Cloud'a aktarılmış olması gerekir.
API Gateway konsolunda sol gezinme bölmesinden Manage APIs > API Groups seçeneğini belirleyin. Independent Domains bölümüne gidin. Sayfanın sağ alt kısmında alan adı bağlama düğmesini bulun. Düğmeye tıklayın, alan adınızı girin ve Tamam'a tıklayın. Alan adı başarıyla bağlanır.
Bu adımları tamamladıktan sonra HTTP işlevinize özel etki alanınız üzerinden erişebilirsiniz. İşlevinizi daha da korumak için aşağıdaki eklentileri de bağlayabilirsiniz:
Hataları giderme
Hatalar iki ana kategoriye ayrılır.
İstek hataları: İstek gereksinimleri karşılamaz. 4xx durum kodu döndürür.
İşlev hataları: İşlev kodunda bir sorun vardır. 5xx durum kodu döndürür.
Aşağıdaki tabloda yaygın hata senaryoları ve nedenleri listelenmektedir.
|
Hata Türü |
HTTP Durum Kodu |
Neden Analizi |
Faturalandırılır |
|
İstek hatası |
400 |
İstek, istek sınırlarını aşıyor. Daha fazla bilgi için bkz. HTTP tetikleyicisine genel bakış. |
Hayır |
|
400 |
İstekte kimlik doğrulama için gereken Date veya Authorization üstbilgisi eksik. |
Hayır |
|
|
403 |
Authorization imzası geçersiz. İmza, Date üstbilgisi değerinden itibaren yalnızca 15 dakika geçerlidir; yaygın bir neden, istekteki Date değerinin geçerli zamandan 15 dakikadan fazla olmasıdır. |
Hayır |
|
|
403 |
İstek yöntemi tetikleyici yapılandırması tarafından izin verilmiyor (örneğin, yalnızca GET yapılandırıldığında POST gönderilmesi). |
Hayır |
|
|
404 |
HTTP tetikleyicisi olmayan bir işleve HTTP isteği gönderildi. |
Hayır |
|
|
Kullanıcı kısıtlaması |
429 |
İstek kısıtlandı. Eşzamanlılığı azaltın veya sınırınızı artırmak için Function Compute ekibiyle iletişime geçin. |
Hayır |
|
İşlev hatası |
502 |
İşlev yanıtı, yanıt sınırlarını aşıyor. Daha fazla bilgi için bkz. HTTP tetikleyicisine genel bakış. |
Evet |
|
502 |
İşlev kodunda sözdizimi hatası veya özel durum var. |
Evet |
|
|
502 |
HTTP işleyicisi kullanmayan bir işleve HTTP isteği gönderildi. |
Evet |
|
|
Sistem hatası |
500 |
Function Compute iç hatası. İsteği yeniden deneyin. |
Hayır |
|
Sistem kısıtlaması |
503 |
Function Compute sistem kısıtlaması. Üstel geri çekilme ile yeniden deneyin. |
Hayır |
Sorun devam ederse, destek almak için Function Compute mühendisleriyle iletişime geçmek üzere DingTalk grubuna (ID: 64970014484) katılın.