Xameer
Xameer

Reputation: 31247

The specified provider "google" does not exist

I'm trying to set up a serverless project which will be hosted on the Google cloud platform. Here is what the serverless.yml looks like

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

The credentials are set according to the docs however for some reasons the deployment is not working and always throws the below error:

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

  The specified provider "google" does not exist.

Does anyone know how to fix it and successfully deploy the project to GCP?

Upvotes: 1

Views: 723

Answers (1)

Aaron Stuyvenberg
Aaron Stuyvenberg

Reputation: 3777

In order to use Google cloud functions, please install the serverless-google-cloudfunctions plugin.

You can generate a sample serverless.yml using serverless create --template google-nodejs --path gcp

It should look like this:

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

Here's the full quickstart guide: https://serverless.com/framework/docs/providers/google/guide/quick-start/

Upvotes: 2

Related Questions