Serverless plugin compatible with aws cn
npm i -g [email protected]
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
-
Lambda supported in Beijing
cn-north-1
region only. Ningxiacn-northwest-1
region is not supported yet. -
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
- 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.
- 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
- 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
- The builtin
aws-sdk
version is2.190.0
. Doc expired.