Cloud Foundry 서비스를 정기적으로 다시 시작

1. 소개



IBM Cloud(구 Bluemix)의 Cloud Foundry로 만든 앱이 가끔 멈추기 때문에 Google Apps Script를 사용하여 정기적으로 재시작하는 메커니즘을 만들어 보았습니다.
(새로운 라이트 계정에서 Cloud Foundry 앱은 10 일 동안 cf 명령을 실행하지 않으면 자동으로 절전 모드로 전환되므로 대책으로 사용할 수 있다고 생각합니다.)

Croud Foundry에는 REST API이 있지만 IFTTT의 Webhooks에서 두드리는 범위에서는 실현할 수 없었기 때문에 Google Apps Script를 사용해보기로 결정했습니다. Google Apps Script는 잘 알려지지 않았지만 사실 Javascript 함수를 API로 게시할 수 있기 때문에 단순 서버리스 환경으로 사용하고 있습니다.

최종 흐름은 IFTTT(webhooks) ⇒ google Apps ⇒ CF API입니다. Google Apps Script 부분은 GitHub에 공개 했으므로 사용해보십시오.

2. 도입



2.1 Google Apps Script



  • htps : // sc pt. 오, ぇ. 코m/ 에서 스크립팅 화면을 시작하고 원하는 프로젝트 이름을 설정합니다.
  • 기본 스크립트의 내용을 모두 삭제하고 GitHub 리포지토리 에서 cf-restart.js의 내용을 복사하여 저장합니다. 스크립트의 파일 이름은 무엇이든 괜찮습니다.
  • 파일⇒프로젝트 속성⇒스크립트 속성에서 아래 내용을 설정합니다. CF_LOGIN_URL, CF_API_URL은 IBM Cloud의 경우를 가정하여 설명합니다.
  • 파일⇒버전 관리에서 적절한 설명을 넣고 "새 버전 저장"을 누릅니다.
  • 공개 ⇒ 웹 애플리케이션을 도입하여 아래의 오렌지 프레임 부분을 설정합니다. 파란색으로 둘러싸인 부분이 실행 URL입니다 (이 URL을 아는 사람은 액세스 할 수 있으므로주의하십시오). 버전은 처음에는 1이어야합니다.

  • (공개의 순서는 빠지는 포인트이므로, 잘 가지 않았을 경우는 구그라고 조사해 봐 주세요)

    2.2 IFTTT



    2.1의 마지막 단계에서 얻은 실행 URL에 대해 IFTTT에서 POST 요청을 발행합니다. Request Body에서 다음 형식의 JSON으로 Cloud Foundry 애플리케이션의 GUID를 설정합니다.{"guid": "99999999-9999-9999-9999-999999999999"}
    IFTTT에서는 다음과 같이 설정합니다. 이 예에서는 일요일 오전 2시에 다시 시작하려고 시도했습니다. Web Request는 URL, Method, Content Type, Body를 설정합니다.



    3. 기타



    Google Apps Script에 HTTP 요청을 하면 리디렉션이 발생하므로 직접 직접 호출할 때는 주의해야 합니다.

    좋은 웹페이지 즐겨찾기