cron 작업을 기반으로 Cloudflare 빌드 예약
9163 단어 cloud
나는 이 블로그를 위해 다양한 빌드 시스템을 사용해 왔으며, 어떻게든 그들은 항상 개선되고 더 쉬워질 수 있는 것 같습니다.
이 블로그 빌드 시스템의 역사:
그리고 최신:
이들은 서로 다른 많은 시스템이며 각 시스템에는 장점이 있습니다.
여기서 목표는 무엇입니까?
무엇이 필요한지 결정하려면 빌드 시스템의 실제 목표를 확인하는 것이 좋습니다.
저에게는 매일 아침 빌드를 트리거할 수 있어서 최신 기사가 활성화되는 것입니다.
그런 다음 새로운 변경 사항을 적용할 때마다 빌드되기를 원합니다.
이렇게 말하면 마지막 부분이 더 쉽습니다. Cloudflare 페이지는 마스터 분기로 푸시할 때마다 자동으로 빌드되므로 이미 준비가 되어 있습니다.
cron의 경우
Deploy hooks
라는 멋진 기능을 도입했습니다. 이것은 각 프로젝트에서 활성화할 수 있는 후크입니다.후크는 빌드를 트리거하는 데 사용할 수 있는 URL을 제공합니다.
이 배포 후크에 새 항목과 빌드해야 하는 분기를 제공할 수 있습니다.
완료되면 복사할 수 있는 URL을 받게 됩니다.
여기에서 URL을 트리거하는 방법은 여러 가지가 있지만 이미 Cloudflare에 있으므로 Cron 작업자를 생성하여 배포 후크를 시작할 수 있습니다.
Cloudflare 크론 작업자
먼저 Cloudflare에서 작업자 섹션을 엽니다.
그런 다음 클릭하여 새 서비스를 추가합니다.
예약된 함수를 만들 것이므로
HTTP handler
함수를 사용했습니다.단계를 따르면 작업자에 대한 실제 코드를 얻을 수 있습니다.
기본 예제 중 하나를 사용하여 특정 URL에 게시했습니다.
async function gatherResponse(response) {
const { headers } = response;
const contentType = headers.get('content-type') || '';
if (contentType.includes('application/json')) {
return JSON.stringify(await response.json());
} else if (contentType.includes('application/text')) {
return response.text();
} else if (contentType.includes('text/html')) {
return response.text();
} else {
return response.text();
}
}
async function handleRequest() {
const init = {
method: 'POST',
headers: {
'content-type': 'application/json;charset=UTF-8',
},
};
const response = await fetch('{YOUR_DEPLY_HOOK}', init);
const results = await gatherResponse(response);
return new Response(results, init);
}
addEventListener('fetch', (event) => {
return event.respondWith(handleRequest());
});
이 설정은
fetch
요청에 수신기를 추가하고 handleRequest
함수를 실행합니다.그 대가로 응답으로 기록됩니다(선택적 단계).
여기서 주목해야 할 것은
addEventListener
입니다. 이것이 후크를 트리거하는 것입니다.이를
fetch
로 설정하면 URL 끝점으로 사용할 수 있으므로 작업자의 URL을 열고 빌드를 트리거할 수 있어야 합니다.위의 스크린샷에 표시된 버튼을 누르면 이 웹후크가 트리거됩니다.
지금 배포로 이동하면 배포가 트리거된 것을 볼 수 있습니다.
이 모든 것이 일정에 따라 작동하도록 하려면 새 트리거를 추가하기만 하면 됩니다.
작업자 상세 화면 내 상단의 트리거를 클릭하여 새로운 크론 트리거를 추가합니다.
이 작업이 완료되면 돌아가서 작업자 코드를 편집하여 이 트리거를 수락해야 합니다.
이전에 옵션으로
fetch
를 어떻게 사용했는지 기억하십니까?cron으로 작업하려면
scheduled
를 옵션으로 사용해야 합니다.Note: You can still use both if you'd like too
addEventListener('scheduled', (event) => {
event.waitUntil(handleRequest());
});
addEventListener('fetch', (event) => {
return event.respondWith(handleRequest());
});
이제 cron으로 트리거된 작업자가 생겼습니다!
이 전체 프로세스는 매우 빠르게 진행되었으며 산들 바람이었습니다.
지금까지 사용한 빌드 시스템 중 가장 쉽고 빠릅니다.
읽어주셔서 감사합니다. 연결해 봅시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(cron 작업을 기반으로 Cloudflare 빌드 예약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/scheduling-cloudflare-builds-on-a-cron-job-1c57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)