Разверните функции Firebase с помощью Google Cloud Build - PullRequest
3 голосов
/ 31 марта 2019

Я пытаюсь использовать Google Cloud Build для развертывания своих функций Firebase, но у меня странная ошибка. Я приложил журналы от Cloud Build.

У меня уже установлен образ докера сообщества Firebase. https://github.com/GoogleCloudPlatform/cloud-builders-community/tree/master/firebase

У меня есть файл cloudbuild.yaml, который просто выполняет несколько этапов развертывания вручную (установка, сборка, сборка), а затем запускает firebase deploy --only functions

cloudbuild.yaml

steps:
# Install
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
# Install
- name: 'gcr.io/cloud-builders/npm'
  args: ['run', 'lint']
# Install
- name: 'gcr.io/cloud-builders/npm'
  args: ['run', 'build']
# Deploy
- name: 'gcr.io/$PROJECT_ID/firebase'
  args: ['deploy', '--only', 'functions', '-P', 'development', '--debug']

Журналы

Step #3: i deploying functions
Step #3: [2019-03-31T04:02:35.891Z] > [functions] package.json contents: {
Step #3: "name": "functions",
Step #3: "scripts": {
Step #3: "lint": "tslint --project tsconfig.json",
Step #3: "build": "tsc",
Step #3: "serve": "npm run build && firebase serve --only functions",
Step #3: "shell": "npm run build && firebase functions:shell",
Step #3: "start": "npm run shell",
Step #3: "deploy": "firebase deploy --only functions",
Step #3: "logs": "firebase functions:log"
Step #3: },
Step #3: "main": "lib/index.js",
Step #3: "dependencies": {
Step #3: "firebase-admin": "~7.0.0",
Step #3: "firebase-functions": "^2.2.0",
Step #3: "geofirestore": "^3.2.3"
Step #3: },
Step #3: "devDependencies": {
Step #3: "tslint": "^5.12.0",
Step #3: "typescript": "^3.2.2"
Step #3: },
Step #3: "private": true
Step #3: }
Step #3: i functions: ensuring necessary APIs are enabled...
Step #3: [2019-03-31T04:02:35.893Z] >>> HTTP REQUEST GET https://servicemanagement.googleapis.com/v1/services/cloudfunctions.googleapis.com/projectSettings/my-project?view=CONSUMER_VIEW 
Step #3: 
Step #3: [2019-03-31T04:02:35.894Z] >>> HTTP REQUEST GET https://servicemanagement.googleapis.com/v1/services/runtimeconfig.googleapis.com/projectSettings/my-project?view=CONSUMER_VIEW 
Step #3: 
Step #3: [2019-03-31T04:02:36.190Z] <<< HTTP RESPONSE 404 vary=X-Origin, Referer, Origin,Accept-Encoding, content-type=application/json; charset=UTF-8, date=Sun, 31 Mar 2019 04:02:36 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, accept-ranges=none, transfer-encoding=chunked
Step #3: [2019-03-31T04:02:36.191Z] <<< HTTP RESPONSE BODY code=404, message=Method not found., status=NOT_FOUND
Step #3: 
Step #3: Error: HTTP Error: 404, Method not found.
Step #3: [2019-03-31T04:02:36.194Z] Error Context: {
Step #3: "body": {
Step #3: "error": {
Step #3: "code": 404,
Step #3: "message": "Method not found.",
Step #3: "status": "NOT_FOUND"
Step #3: }
Step #3: },
Step #3: "response": {
Step #3: "statusCode": 404,
Step #3: "body": {
Step #3: "error": {
Step #3: "code": 404,
Step #3: "message": "Method not found.",
Step #3: "status": "NOT_FOUND"
Step #3: }
Step #3: },
Step #3: "headers": {
Step #3: "vary": "X-Origin, Referer, Origin,Accept-Encoding",
Step #3: "content-type": "application/json; charset=UTF-8",
Step #3: "date": "Sun, 31 Mar 2019 04:02:36 GMT",
Step #3: "server": "ESF",
Step #3: "cache-control": "private",
Step #3: "x-xss-protection": "1; mode=block",
Step #3: "x-frame-options": "SAMEORIGIN",
Step #3: "x-content-type-options": "nosniff",
Step #3: "accept-ranges": "none",
Step #3: "transfer-encoding": "chunked"
Step #3: },
Step #3: "request": {
Step #3: "uri": {
Step #3: "protocol": "https:",
Step #3: "slashes": true,
Step #3: "auth": null,
Step #3: "host": "servicemanagement.googleapis.com",
Step #3: "port": 443,
Step #3: "hostname": "servicemanagement.googleapis.com",
Step #3: "hash": null,
Step #3: "search": "?view=CONSUMER_VIEW",
Step #3: "query": "view=CONSUMER_VIEW",
Step #3: "pathname": "/v1/services/runtimeconfig.googleapis.com/projectSettings/my-project",
Step #3: "path": "/v1/services/runtimeconfig.googleapis.com/projectSettings/my-project?view=CONSUMER_VIEW",
Step #3: "href": "https://servicemanagement.googleapis.com/v1/services/runtimeconfig.googleapis.com/projectSettings/my-project?view=CONSUMER_VIEW"
Step #3: },
Step #3: "method": "GET"
Step #3: }
Step #3: }
Step #3: }
Step #3: [2019-03-31T04:02:36.229Z] <<< HTTP RESPONSE 404 vary=X-Origin, Referer, Origin,Accept-Encoding, content-type=application/json; charset=UTF-8, date=Sun, 31 Mar 2019 04:02:36 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, accept-ranges=none, transfer-encoding=chunked
Step #3: [2019-03-31T04:02:36.230Z] <<< HTTP RESPONSE BODY code=404, message=Method not found., status=NOT_FOUND
Finished Step #3
ERROR
ERROR: build step 3 "gcr.io/my-project/firebase" failed: exit status 1

Стоит также отметить, что учетная запись службы cloudbuild имеет разрешения администратора Firebase. Это странно, я могу использовать Cloud Build с хостингом Firebase без проблем, но при развертывании функций возникает ошибка 404.

...