gpt4 book ai didi

aws-lambda - AWS Code Star Express API 启用 CORS 和集成响应

转载 作者:行者123 更新时间:2023-12-03 07:45:49 24 4
gpt4 key购买 nike

我正在使用 AWS Code star 并使用 Express Web 服务模板。代码星创建Lambda并创建API网关API。 api 有效,它返回我想要的内容。我正在尝试通过 API 网关启用 CORS,

API GateWay -> API -> 资源 -> 操作 -> 启用 CORS

在选项上设置 CORS 失败,因为未为代理生成集成响应。这是图像。 enter image description here

enter image description here

我想我必须通过 YAML 进行配置才能生成选项和 GET 的集成响应。

这是我的YAML

    AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar

Parameters:
ProjectId:
Type: String
Description: AWS CodeStar projectID used to associate new resources to team members

Resources:
HelloWorld:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs4.3
Role:
Fn::ImportValue:
!Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
Events:
GetEvent:
Type: Api
Properties:
Path: /
Method: get
GetById:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs4.3
Role:
Fn::ImportValue:
!Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
Events:
GetEvent:
Type: Api
Properties:
Path: /api/getById
Method: get

这是我的 Lambda 处理程序。

    'use strict';

const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)

exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context);

如果有人可以帮助我如何调整 CloudFormation 模板,我将不胜感激。

最佳答案

您无法将 header 添加到代理集成的集成响应中。您需要在 lambda 响应中添加 CORS header ,如下所示

{
"isBase64Encoded": true|false,
"statusCode": httpStatusCode,
"headers": { "headerName": "headerValue", ... },
"body": "..."
}

http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html#api-gateway-simple-proxy-for-lambda-output-format

关于aws-lambda - AWS Code Star Express API 启用 CORS 和集成响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44981625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com