Skip to content

vitarn/serverless-aws-cn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serverless-aws-cn

Greenkeeper badge Serverless plugin compatible with aws cn

License NPM Build Status Coverage Status

Example:

npm i -g serverless@1.27.0 npm i --save-dev serverless-aws-cn

service:
  name: demo
plugins:
  - serverless-aws-cn
provider:
  name: aws
  region: cn-north-1
  endpointType: REGIONAL
functions:
  hello:
    handler: handler.hello
    events:
      - http:
          method: get
          path: hello

Some tips about AWS China:

  1. Lambda supported in Beijing cn-north-1 region only. Ningxia cn-northwest-1 region is not supported yet.

  2. If you have a function named hello with http event. You need patch Cloud Formation API Gateway Principal like this:

functions:
  hello:
    handler: handler.hello
    events:
      - http: GET hello

resources:
  Resources:
    HelloLambdaPermissionApiGateway:
      Properties:
        Principal: apigateway.amazonaws.com
  1. You cannot open your endpoint without ICP Recordal. It always return 403 {"Message": null}. Except your function authorize by IAM:
functions:
  hello:
    handler: handler.hello
    events:
      - http:
          method: get
          path: hello
          authorizer: aws_iam

Consider try postman for test your endpoint with AWS4 Authorization header.

  1. Don't set environment in your provider or functions. It's not supported in cn-north-1 region.
provider:
  name: aws
  region: cn-north-1
  endpointType: REGIONAL
  runtime: nodejs6.10
  # Lambda environment is not supported yet!
  # environment:
    # DYNAMODB_TABLE: ${self:service}-${opt:stage, self:provider.stage}
functions:
  hello:
    # environment:
    #   NODE_ENV: production
  1. Don't waste time on Cognito User Pool (trigger or auth). Only Federate Identities available now.
functions:
  preSignUp:
    handler: preSignUp.handler
    events:
      - http:
          path: posts/create
          method: post
          # This ARN is not exists. 
          # authorizer: arn:aws-cn:cognito-idp:cn-north-1:xxx:userpool/cn-north-1_ZZZ
      # This event trigger not work!
      # - cognitoUserPool:
      #     pool: MyUserPool
      #     trigger: PreSignUp
  1. The builtin aws-sdk version is 2.190.0. Doc expired.