Cloud Function for Firebase에서 도쿄 지역 활용

컨디션


Firebase CLI 5.1.1
Google Cloud SDK 220.0.0

도쿄 지역을 이용하는 방법.


함수가 도쿄 범위 내에서 설계되는 데는 몇 가지 방법이 있다.
또한 디버그 후에 영역만 변경할 수 없습니다. (이것은 GCP에서도 마찬가지입니다.)

소스 코드에 영역 지정


Firebase 문서에서 이 방법만 찾았습니다.
관리 함수에 대한 설계 및 런타임 옵션
기재된 바와 같이 지정된 구역을 통해 설계를 할 수 있다.
index.js
exports.sample = functions.region('asia-northeast1')
		.https.onRequest((req, res) => {
	console.log('hello tokyo reagion');
});
컨트롤러로 확인하면 구역이 아시아-northeast1로 변합니다
raised-에서hands:
スクリーンショット 2018-10-17 23.36.40.png

다중 영역 설계


GCP의 Cloud Function에서 같은 함수 이름이라도 다른 영역이면 설계할 수 있습니다.
Cloud Functions Locations
You can deploy functions to different regions within a project, but once the region has been selected for a function it cannot be changed.
Functions in a given region in a given project must have unique (case insensitive) names, but functions across regions or across projects may share the same name.
Firebase에서 도쿄 권역으로 기획한 뒤 권역 지정을 취소하고 디자인하면 어떨까?
디버깅을 진행하려면 다음과 같은 주의사항을 촉진할 것입니다.
4
The following functions are found in your project but do not exist in your local source code:
	sample(asia-northeast1)

If you are renaming a function or changing its region, it is recommended that you create the new function first before deleting the old one to prevent event loss. For more info, visit https://firebase.google.com/docs/functions/manage-functions#modify

? Would you like to proceed with deletion? Selecting no will continue the rest of the deployments. (y/N)
원래대로 진행하면 GCP와 마찬가지로 여러 구역에서 같은 함수를 설계할 수 있다.
スクリーンショット 2018-10-18 0.10.10.png

Google Cloud SDK 사용


영역 지정은 Google Cloud SDK에서 옵션으로 준비되어 있습니다.
Firebase CLI에는 이 옵션이 없으므로 소스 코드에 영향을 주지 않고 여러 영역에서 프로그램을 해제하는 경우에는 이 방법밖에...
$ gcloud functions deploy --help
NAME
    gcloud functions deploy - create or update a Google Cloud Function

SYNOPSIS
    gcloud functions deploy (NAME : --region=REGION)
        [--entry-point=ENTRY_POINT] [--memory=MEMORY] [--retry]
        [--runtime=RUNTIME] [--source=SOURCE] [--stage-bucket=STAGE_BUCKET]
        [--timeout=TIMEOUT] [--update-labels=[KEY=VALUE,...]]
        [--clear-labels | --remove-labels=[KEY,...]]
        [--trigger-bucket=TRIGGER_BUCKET | --trigger-http
          | --trigger-topic=TRIGGER_TOPIC
          | --trigger-event=EVENT_TYPE --trigger-resource=RESOURCE]
        [GCLOUD_WIDE_FLAG ...]


$ firebase deploy --help
Usage: deploy [options]

deploy code and assets to your Firebase project

Options:
  -p, --public <path>      override the Hosting public directory specified in firebase.json
  -m, --message <message>  an optional message describing this deploy
  -f, --force              delete Cloud Functions missing from the current working directory without confirmation
  --only <targets>         only deploy to specified, comma-separated targets (e.g. "hosting,storage"). For functions, can specify filters with colons to scope function deploys to only those functions (e.g. "--only functions:func1,functions:func2"). When filtering based on export groups (the exported module object keys), use dots to specify group names (e.g. "--only functions:group1.subgroup1,functions:group2)"
  --except <targets>       deploy to all targets except specified (e.g. "database")
  -h, --help               output usage information

최후


GCP를 직접 사용하는 클라우드 펀션이 더 빠르지 않겠느냐는 결론이 나왔는데...

좋은 웹페이지 즐겨찾기