Orbit

Deploy Hooks Aracılığıyla Dağıtımları Tetikleme

A deploy hook is a secret URL that queues a new deployment when something sends it an HTTP POST. There is no authentication header: the secrecy of the URL is the authentication. Use hooks to let a…

Dağıtım kancaları (deploy hook), bir şey ona HTTP POST gönderdiğinde yeni bir dağıtımı kuyruğa alan gizli bir URL'dir. Kimlik doğrulama başlığı yoktur: URL'nin gizliliği kimlik doğrulamadır. Kancaları, başsız bir CMS, bir cron işi, bir CI ardışık düzeni veya başka bir webhook'un git push yapmadan projenizi yeniden oluşturmasına izin vermek için kullanın.

Dağıtım Kancaları Nerede Bulunur

Kancaların kendi sekmesi vardır: projenizi Kapsule Orbit içinde açın ve /orbit/<project-id>/hooks konumunda Kancalar'a tıklayın.

Aynı Dağıtım kancaları paneli projenin Ayarlar sekmesinin bir kısmında da görünür, böylece bunları her iki yerden de yönetebilirsiniz.

Kapsule Orbit'te dağıtım kancaları paneli

Dağıtım Kancası Oluşturma

  1. Kapsule Orbit'i açın, ardından projenizi, ardından Kancalar'ı açın.
  2. Dağıtım kancası ekle'ye tıklayın.
  3. Altı ay sonra hala anlamlı olacak bir Kanca adı girin. Yer tutucu şekli önerir: "Contentful yayımla", "Nightly cron".
  4. Hedef ortamı seçin. Varsayılan olarak Üretim (varsayılan) olur. Projenizin bir hazırlama ortamı varsa, kancayı bunun yerine hazırlama ortamına yönlendirebilirsiniz.
  5. Kanca oluştur'a tıklayın.

Kanca listeye URL'si, bir URL'yi Kopyala düğmesi ve bir Kancayı Sil düğmesi ile görünür.

Kanca URL'si

Kanca URL'leri şöyle görünür:

https://kpanel.kapsulehost.com/api/orbit/hooks/<token>

Token, kancayı oluşturduğunuzda oluşturulan benzersiz bir gizlidir.

Bir kanca URL'sini tam olarak bir API anahtarı gibi işleyin. Bunu kimin elinde varsa projenizin dağıtımını tetikleyebilir ve Kapsule Orbit'in dağıtım kapılarından hiçbiri onları durdurmaz: dağıtım kilitler, gerekli onay, CI gerekli denetimler ve gerekli hazırlama başarısı yalnızca push tarafından tetiklenen dağıtımlar için geçerlidir ve bir kanca doğrudan geçer. Kanca URL'sini hiçbir zaman genel bir depoya, paylaşılan bir belgeye, bir ekran görüntüsüne veya bir destek biletine yapıştırmayın.

Bir Kancayı Tetikleme

POST isteği gönderin. Gövde ve başlık gerekli değildir.

curl -X POST \
  https://kpanel.kapsulehost.com/api/orbit/hooks/<your-token>

Kapsule Orbit, HTTP 202 ve dağıtım kimliği ile yanıt verir. Dağıtım birkaç saniye içinde Dağıtımlar sekmesinde görünür.

Uç nokta yalnızca POST'u kabul eder. GET isteği dağıtımı tetiklemez. Bazı eski webhook tümleştirmeleri varsayılan olarak GET'i kullanır, bu nedenle yapılandırdığınız bir kanca hiçbir zaman ateşlenmazse yöntemi kontrol edin.

Bir Kanca Aslında Ne Dağıtır

Kanca hedef ortamını (seçtiğiniz ortamı veya projenin üretim ortamını) çözer, bu ortamın dalını okur ve git sağlayıcınızdan o dalın geçerli head işlemesini ister. Daha sonra o işlemenin dağıtımını kuyruğa alır.

Bunun bilinmesi değer olan üç sonucu vardır:

  • Bir kanca her zaman dal head'ini dağıtır. İstek gövdesinde bir işlem SHA'sı veya dal adı geçiremezsiniz; istek gövdesi tamamen yoksayılır.
  • Bir kanca çalışan bir sağlayıcı bağlantısına ihtiyaç duyar. GitHub, GitLab veya Bitbucket'i keslediyseniz, kanca dal head'ini okuyamaz ve eski kodu dağıtmak yerine bir hatayla başarısız olur.
  • Bir kanca tam derlemeyi yeniden çalıştırır. Bu bir geri alma değildir ve promosyon değildir; şu anda dal üzerinde olan ne olursa olsun yeni bir yapı meydana getirilmiştir.

Tekrarlanan ve Çakışan Çağrılar

Kapsule Orbit, kanca çağrılarının patlamalarını her biri için bir derleme kuyruğa almak yerine makul bir şekilde işler.

  • Aynı ortamda aynı işleme ait bir dağıtım zaten uçuştaysa, kanca mevcut dağıtımı döndürür ve yanıtı yinelenmiş olarak işaretler. İkinci bir derleme başlamaz.
  • O ortamda farklı bir işleme ait bir derleme çalışıyorsa, otomatik olarak iptal edilir ve yenisiyle değiştirilir, böylece çıktısı zaten geçersiz olan bir derleme için ödeme yapmaz.

Bu, kanca başına yayınlanan giriş ateşleyen bir CMS için güvenli hale getirir. Bir dakika içinde altı sayfa yayımlamak altı derleme değil bir derleme üretir ve altı derleme dakikasını yakmaz.

Başsız CMS Bağlantısı

Çoğu başsız CMS'de bir "yayımlamada webhook" özelliği vardır. Desen her zaman aynıdır: webhook'u kanca URL'nize gösterin, POST kullanın ve kimlik doğrulama ayarlarını boş bırakın.

Contentful

  1. Ayarlar'a, ardından Web kancaları'na, ardından Web kancası ekle'ye gidin.
  2. URL'yi Kapsule Orbit kanca URL'nize ayarlayın.
  3. Yöntemi POST olarak ayarlayın.
  4. Tetikleyiciyi Yayımla veya siteyi yeniden oluşturması gereken başka bir içerik etkinliğine ayarlayın.
  5. Kaydedin.

Sanity

Proje panonuzda API'ye, ardından Web Kancaları'na, ardından Web Kancası Oluştur'a gidin. URL'yi kanca URL'nize, yöntemi POST'a ayarlayın ve veri seti ile tetikleyici olayları seçin.

Prismic

Panoda Ayarlar'a, ardından Web Kancaları'na gidin ve kanca URL'nizi ekleyin. Prismic bunu her belge yayınında çağırır.

Cron İşi veya CI Ardışık Düzeni Bağlantısı

HTTP isteği yapabilen herhangi bir zamanlayıcı işe yarar:

# crontab: rebuild every night at 2am
0 2 * * * curl -fsS -X POST https://kpanel.kapsulehost.com/api/orbit/hooks/<your-token>

CI için, bir dağıtım kancası bir dağıtımın olup olmadığına ardışık düzeninizin karar vermesini istediğinizde en basit seçenektir. Bitbucket Pipelines için önerilen yaklaşım budur, çünkü Kapsule Orbit'in CI gerekli denetimler ayarı GitHub Actions iş adlarında veya GitLab ardışık düzeninde kapı olur, Bitbucket'te değil.

"Dal head'ini dağıt"tan daha fazlasına ihtiyacınız varsa, bir kanca yerine bir API belirteci kullanın. Kapsule Orbit, ardından Belirteçler, CI/CD için kapsamlı taşıyıcı belirteçler oluşturur ve belgelenmiş bir REST API'si ve hazırlanmış bir GitHub Actions iş akışı vardır. API erişimi Apex planına dahil edilmiştir.

Bir Kanca Olmadan Programlı Olarak Yeniden Oluşturma

Tek istediğiniz periyodik bir yeniden derleme ise, hiç kanca gerekmez. Ayarlar'daki Çalışma Zamanı altında Zamanlanmış yeniden derleme, üretimi her saat, 6 saat, 12 saat, günlük, 2 günde bir veya haftalık olarak otomatik olarak yeniden derler. Tam olarak CMS tarafından yönlendirilen site durumu için inşa edilmiş ve koruma altına alacak gizli bir URL yoktur.

Kanca Etkinliğini Kontrol Etme

Her kanca satırı kaç kez kullanıldığını ve son kullanıldığı zamanı "14 kez kullanıldı, son 3 Tem" şeklinde gösterir. Bu, CMS'nin aslında bunu düşündüğünüz zaman kancayı çağırdığını doğrulamanın en hızlı yoludur.

Sayı artmıyorsa, sorun çağıran tarafındadır: yöntemi POST olarak, URL'yi tam olarak ve tümleştirmeyi TLS veya güvenlik duvarı hatasında sessizce başarısız olmadığını kontrol edin.

Kanca Silme

Satırdaki Kancayı Sil'e tıklayın ve onaylayın. İletişim kutusu, bunu kullanan herhangi bir hizmetin çalışmayı bırakacağı konusunda uyarır, bu tam olarak olanıdır.

Bir kanca belirtecini yerinde döndürmenin hiçbir yolu yoktur. Bir URL sızarsa, kancayı silersiniz ve yeni bir tane oluşturursunuz, ardından eski URL'yi kullanan her sistem güncellenir. Silme hemen yürürlüğe girer, bu nedenle silmeden sonra değil, silinmeden önce değişimi planlayın.

Sorun Giderme

Kancayı çağırdığımda hiçbir şey olmaz. Yöntemi POST olarak kontrol edin. URL'yi karakter karakter kontrol edin, belirteci de dahil olmak üzere. Kancalar sekmesindeki kancaların kullanım sayısını kontrol edin: artmıyorsa, istek hiçbir zaman gelmemiştir.

Kanca en son işleme hakkında bir hata döndürüyor. Kapsule Orbit git sağlayıcınızdan dal head'ini okuyamadı. Kapsule Orbit'ten sağlayıcıyı yeniden bağlayın, ardından Yeni Proje, ardından Yeniden Bağlan, ve deponun hala erişilebilir olduğunu onaylayın.

Kanca hedef ortam hakkında bir hata döndürüyor. Kancaı işaret ettiği ortam artık yok, çoğu olasılıkla bir hazırlama ortamı silindiğinden. Kancayı silin ve canlı bir ortama karşı yeni bir tane oluşturun.

Kanca ateşleniyor ancak dağıtım son seferle aynı. Bu yinelenmiş davranıştır: dal head'i değişmemiş, bu nedenle oluşturacak yeni bir şey yoktur. Bir işleme gönderin veya özellikle aynı işlemeyi yeniden oluşturmak istiyorsanız Şimdi Dağıt kullanın.

İlgili Okuma

Hala yardıma mı ihtiyacınız var?

Bize şu adresinden e-posta gönderin: support@kapsulehost.com ya da KPanel'de sohbet açın.

KPanel'i Aç