
Google Cloud Scheduler를 사용하면 Google Cloud 함수와 연결된 http 엔드포인트에 도달할 수 있으므로 타이머/스케줄러에서 함수를 실행할 수 있습니다. Cloud Functions에는 (1) 모든 트래픽 허용 또는 (2) 내부 트래픽만 허용(동일한 프로젝트 또는 VPC SC 경계 내의 트래픽만 허용)이라는 두 가지 노출 옵션이 있습니다. 후자를 수행하고 싶지만 스케줄러가 HTTP 403을 사용하여 액세스하지 못합니다.
모든 트래픽에 개방되어 있으면 누군가가 내 URL을 추측할 수 있고 원하는 만큼 URL을 실행할 수 있습니다. 물론 이제 내 함수에 인증을 추가하고 Scheduler가 적절한 헤더를 전달하도록 할 수 있지만 다른 사람이 내 함수를 트리거해도 위험하지는 않습니다. 그러나 다른 사람이 이를 트리거할 수 있는 경우 원하는 만큼 호출할 수 있으며 인증을 사용하더라도 모든 호출에 대해 여전히 요금이 부과됩니다. Scheduler 외에는 (이상적으로는) 다른 사람이 URL에 접근할 수 없도록 하여 내 일정을 제외하고는 URL이 실행되지 않도록 하고 싶습니다. 이것을 가능하게 하는 방법이 있나요?
답변1
공식 문서에 따르면:
Cloud Scheduler를 사용하려면 Cloud 프로젝트에 지원되는 지역 중 하나에 있는 App Engine 앱이 포함되어 있어야 합니다. 프로젝트에 App Engine 앱이 없으면 앱을 만들어야 합니다.
따라서 다음을 실행하여 App Engine 애플리케이션의 위치를 찾으세요.
gcloud app describe
#check for the locationId: europe-west2
그런 다음 Ingress 설정을 사용하여 앱 엔진 애플리케이션과 동일한 위치에 "내부 트래픽만 허용"하도록 클라우드 기능을 배포했는지 확인하세요.
내 앱 엔진 애플리케이션과 동일한 지역에 클라우드 기능을 배포했는데 모든 것이 예상대로 작동했습니다.