我很奇怪(或者至少对我来说是这样)。我使用无服务器技术在AWS APIG上部署了一个api。在此api中,有两个端点,一个端点(A),另一个端点(B)。
在serverless.yml之后使用“无服务器部署”对api进行初始部署后,在启用了CORS的情况下,GET端点可以正常工作,但是发布不起作用。因此我必须从APIG控制台启用两个端点的cors。然后从控制台部署api。
现在回到前端,获取请求可以正常工作,而当需要进行发布请求时,它也可以正常工作。因此,从现在开始,应该没问题,但是在此之后发生的事情很奇怪。让请求停止工作,说它没有启用CORS,直到我重新部署POST停止工作后,它才开始工作。
那是我的serverless.yml
# NOTE: update this with your service name
service: api
# Use the serverless-webpack plugin to transpile ES6
plugins:
- serverless-webpack
- serverless-offline
# serverless-webpack configuration
# Enable auto-packing of external modules
custom:
webpack:
webpackConfig: ./webpack.config.js
includeModules: true
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: eu-west-2
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:DescribeTable
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource: "arn:aws:dynamodb:eu-west-2:*:*"
functions:
selections:
handler: endpoints/selections.main
events:
- http:
path: selections
method: post
cors: true
authorizer: arn:aws:lambda:eu-west-2:xxxx:function:eca-custom-atuh
activities:
handler: endpoints/activities.main
events:
- http:
path: activities
method: get
cors: true
authorizer: arn:aws:lambda:eu-west-2:xxxx:function:eca-custom-atuh