指定的提供者“ google”不存在

时间:2019-10-08 07:23:20

标签: google-cloud-platform google-cloud-functions serverless-framework

我正在尝试建立一个无服务器项目,该项目将托管在Google云平台上。这是serverless.yml的样子

plugins: # List of plugins of use on application
    - serverless-offline # Get your serverless configuration and run the server local
    - serverless-plugin-typescript-express

# Project name on the infrastructure created
service: ansaar-auth

provider:
  name: google # Provider name, where the infrastructure has be created
  runtime: nodejs # The node version where the lambda functions going to run
  project: ansaar-auth
  credentials: ~/.gcloud/auth.json
  # stage: dev # Control the environment of application
  # region: us-east-1 # Default region where the lambda functions running

  functions: # The array with definitions of lambda functions of the your application 
  getUsers: # Lambda function name
    handler: src/server.handler # The function name mapped of the application
    events: # Array of events that call the function
      - http: # Type of event, the http event selected, it's event is a endpoint mapped on api gateway
          path: users
          method: get

设置了凭据according to the docs,但是由于某些原因,部署无法正常工作,并始终引发以下错误:

Serverless Error ---------------------------------------

  The specified provider "google" does not exist.

有人知道如何修复它并将项目成功部署到GCP吗?

1 个答案:

答案 0 :(得分:2)

要使用Google云功能,请安装serverless-google-cloudfunctions插件。

您可以使用serverless.yml

生成示例serverless create --template google-nodejs --path gcp

它应该像这样:

service: gcp

provider:
  name: google
  stage: dev
  runtime: nodejs8
  region: us-central1
  project: my-project
  # The GCF credentials can be a little tricky to set up. Luckily we've documented this for you here:
  # https://serverless.com/framework/docs/providers/google/guide/credentials/
  #
  # the path to the credentials file needs to be absolute
  credentials: ~/.gcloud/keyfile.json

plugins:
  - serverless-google-cloudfunctions

# needs more granular excluding in production as only the serverless provider npm
# package should be excluded (and not the whole node_modules directory)
package:
  exclude:
    - node_modules/**
    - .gitignore
    - .git/**

functions:
  first:
    handler: http
    events:
      - http: path

以下是完整的快速入门指南:https://serverless.com/framework/docs/providers/google/guide/quick-start/