serverless-aws-cn
Serverless plugin compatible with aws cn
Example:
npm i -g serverless@1.27.0
npm i --save-dev serverless-aws-cn
service: name: demoplugins: - serverless-aws-cnprovider: name: aws region: cn-north-1 endpointType: REGIONALfunctions: hello: handler: handler.hello events: - http: method: get path: hello
Some tips about AWS China:
-
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.