首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于路径将URL从cloudfront重定向到API网关

基于路径将URL从cloudfront重定向到API网关
EN

Stack Overflow用户
提问于 2020-06-24 07:04:59
回答 2查看 2.9K关注 0票数 4

我正在尝试实现基于路径的从cloudfront重定向到API网关。我的UI有一个cloudfront发行版,源代码是S3桶托管的。

代码语言:javascript
复制
www.example.com

它满足了这些要求。

我想要带有模式的URL

代码语言:javascript
复制
www.example.com/share/*

要重定向到API网关。API网关在内部重定向,指向其他URL。

如果我在浏览器中直接使用API网关端点,它将获取预期的结果。

我不知道如何从cloudfront重定向到API网关。我已经在API网关上放置了云监视日志,并且可以看到cloudfront到API网关重定向不起作用。

我尝试过添加API网关作为源,并添加了与cloudfront中的行为相同的内容,但没有成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-24 07:07:30

您可以在Lambda@Edge中使用CloudFront进行重定向。AWS提供了一个重定向函数这里的示例。

下面的例子

代码语言:javascript
复制
'use strict';

exports.handler = (event, context, callback) => {
    /*
     * Generate HTTP redirect response with 302 status code and Location header.
     */
    const response = {
        status: '302',
        statusDescription: 'Found',
        headers: {
            location: [{
                key: 'Location',
                value: 'http://URL/PATH',
            }],
        },
    };
    callback(null, response);
};

然而,,也许与其进行重定向,不如考虑在CloudFront发行版中使用不同的次要来源来服务API路径,如果它是应用程序的一部分。

要做到这一点,您需要使用站点的域名向API添加一个自定义域,然后在CloudFront中添加一个与/share模式匹配的原点,以转发到您的API。

要获得更多信息,请阅读此页

票数 1
EN

Stack Overflow用户

发布于 2020-06-24 07:10:48

一种方法是使用lambda@edge观看者请求使用重定向url将302 HTTP代码返回给客户机。

在python中,这样的lambda看起来类似于(来自docs):

代码语言:javascript
复制
 def lambda_handler(event, context):
 
     # logic to check the url and generate new url.
     
     response = {
         'status': '302',
         'statusDescription': 'Found',
         'headers': {
             'location': [{
                 'key': 'Location',
                 'value': '<your-api-gateway-url>'
             }]
         }
     }
     
     return response
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62549514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档