我正在编写一个 Cloudformation 配置文件来一次性创建一个网站。这包括创建 lambda 函数、创建 API 网关、设置 S3 存储桶、创建 Route 53 区域和记录。
迄今为止:
因此,domain.com可以毫无问题地提供 S3 存储桶中的文件。将 AWS URI 用于 API Gateway 可以https://trydsoonjc.execute-api.us-west-2.amazonaws.com/app/path/here毫无问题地工作。
我想要设置的是api.domain.com指向 API 网关以访问服务器的 API。
如何将 Route 53 连接到 API Gateway?
我现在的 Cloudformation 是这样的:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description" : "Website",
"Parameters": {
"DomainName": {
"Type" : "String",
"Description" : "The DNS name of …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-cloudformation amazon-api-gateway
我将我网站的静态资产放在 S3 上,并设置 CloudFront 来分发它们。这些本质上包含用户在我的站点上的任何 GET 请求所需的内容,即现有路径,即包含错误的包罗万象。
我还有一些 POST 请求需要处理。表单提交、发送电子邮件、通知、与数据库交互。
我如何为同一域与 CloudFront 并排设置 Lambda(或 API 网关),以便 CloudFront 处理 GET 请求,而 API Gateway 处理带有正文或 POST 请求的请求。或者我可以以某种方式通过单个 URL 来完成吗?
虽然我在尝试部署 api 网关时已经定义了集成,但我不断收到类似于/sf/ask/3226152331/ 的“没有为方法定义集成”错误-a-stage-where-your-api-will-be-deploy?rq=1
他们在这里提到的答复是“设置集成方法”。
但是我已经设置了集成方法。附上截图,那么我的情况到底是什么问题?

我正在评估使用客户端证书来提高我正在处理的应用程序的安全性。这一切都在 AWS 上运行,并通过带有附加 Lambda 授权方的 API 网关。
AWS 文档指出 API Gateway 不支持通过客户端证书进行身份验证,但允许您在后端进行身份验证,但文档并未提及使用 Lambda 授权方时会发生什么。
我的第一个赌注是它不会工作,因为 API Gateway 无法看到标头。但是当 API Gateway 处理证书的创建和存储时,它可能至少可以在数据流内部对等以获取允许 Lambda 授权器工作的标头数据。
在我的情况下,我想将客户端证书添加到我已经存在的基于令牌的授权中。
可以实现此设置,或者只能通过将令牌验证移动到后端来完成。
我有几个微服务在 EC2 上运行。
我的目的是使用 AWS API 网关允许通过互联网访问 EC2 API。
Incoming Traffic is:
internet -> API Gateway -> EC2-server
Run Code Online (Sandbox Code Playgroud)
我计划在 AWS Gateway 上使用一个 geedy HTTP 代理。但我有两个问题:
A) 如何在方法集成中的“URL Endpoint”中寻址 EC2?我可以以某种方式使用AWS私有IP吗?
B) 如何配置 EC2 安全组以允许 API 网关请求进入 EC2?
我通常使用 S3 上的前端单页应用程序和服务器上的后端 API 来开发我的应用程序,通常是弹性 beantalk(所以 ELB + EC2)。我对将什么放在我的 ELB 和 S3 前面的好选择感到困惑 - 主要是 CloudFront 或 API 网关。我现在的主要需求是缓存和性能(减少服务器负载)。当然成本也会是奖金。就我而言,流量通常仅限于一个地区/国家(新加坡)。
所以假设我想保留一个域,我想我肯定会需要 CloudFront?因此 CloudFront 将有 2 个来源 S3 和 ELB。S3 源可以配置长缓存 TTL 和 ELB 较短的缓存,只是为了处理峰值。这是一个好主意吗?
但是如果某些 API,尤其是列表 API 不应该被缓存呢?如果我将 TTL 设置为 0,它不会缓存,但我的理解是它更慢?如何最好地处理这些?
也就是说,我什么时候使用 API 网关?假设我不需要所有 SDK 的东西并且我当前的系统仍在 ELB/EC2 上。在我的情况下,它似乎只是一个代理和缓存系统,就像 cloudfront 一样?
正如标题所暗示的,我有一个 AWS API Gateway 端点,我想将它放在 HAProxy 后面。
这是我当前的 HAProxy 配置
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen http
bind 127.0.0.1:8080
maxconn 18000
acl api_gateway path_beg /api-gateway
use_backend api-gateway-backend if api-gateway
backend api-gateway-backend
http-request set-header Host xxxxx.execute-api.ap-southeast-2.amazonaws.com
server api-gateway xxxxx.execute-api.ap-southeast-2.amazonaws.com:443
Run Code Online (Sandbox Code Playgroud)
当我点击/api-gatewayHAProxy 上的端点时,我得到400 …
haproxy ×1