aws api gateway 使用阿里云的域名访问

创建apigateway

我创建的是Rest Api的网关

创建lambda函数

首先得创建一个lambda函数,代码我用的是golang 1.x。代码如下:

package main

import (
	"context"
	"errors"
	"fmt"

	"github.com/aws/aws-lambda-go/events"
	"github.com/aws/aws-lambda-go/lambda"
)

var (
	// ErrNameNotProvided is thrown when a name is not provided
	HTTPMethodNotSupported = errors.New("no name was provided in the HTTP body")
)

func HandleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
	fmt.Printf("Body size = %d. \n", len(request.Body))
	fmt.Printf("Headers:%+v\n", request.Headers)
	for key, value := range request.Headers {
		fmt.Printf("  %s: %s\n", key, value)
	}
	if request.HTTPMethod == "GET" {
		fmt.Printf("GET METHOD\n")
		return events.APIGatewayProxyResponse{Body: "GET WERBEN", StatusCode: 200}, nil
	} else if request.HTTPMethod == "POST" {
		fmt.Printf("POST METHOD\n")
		return events.APIGatewayProxyResponse{Body: "POST WERBEN", StatusCode: 200}, nil
	} else {
		fmt.Printf("NEITHER\n")
		return events.APIGatewayProxyResponse{}, HTTPMethodNotSupported
	}
}

func main() {
	lambda.Start(HandleRequest)
}

同时创建一个apigateway,然后apigateway的添加到lambda的触发器。

 这里要注意,golang的代码再lambda里面不想nodejs那样可以在线编辑的,要上传lambda的代码,上传的时候需要上传的golang编译后的可执行文件,需要在linux上编译好,然后将可执行文件打包成zip文件上传。然后要注意可执行文件的名称,默认是hello,可以在下面的位置修改。

将阿里云域名授权给AWS的DNS解析

在services里面找到Route 53,这个AWS对应阿里云的域名解析产品

 点击左边的托管区域

点击右边的“创建托管区”,因为我是将二级域名交给aws托管,所以我这里填的域名地址是:aws.xxx.com,也就是在这个二级域名下的三级域名解析都托管给aws来解析了。点击创建托管区。

 创建托管区后,点击域名,会看到有两条(NS和SOA)解析记录。

 这里的NS记录需要同步到阿里云的域名解析哪里去。看下面这里,完成这里就完成将aws.xxx.com的解析托管给aws了,这样aws那边就可以给aws.xxx.com添加A、CNAME等记录了。

 这里可能有生效时间的问题,我用一个简单的方法来测试,回到AWS Route 53 在aws那边添加一条werben.aws.xxx.com的A记录,然后在自己电脑上,ping werben.aws.xxx.com,如果ping到的ip是对的,那就说明托管成功了

自定义域名

在apigateway界面,左边导航下有个自定义域名的菜单,点击进入,输入自定义的域名名称,我这是一个三级子域名。假如是api.aws.xxx.com,

点击创建 ,点击创建新的ACM证书

点击请求证书,请求公有证书,下一步,

 点击请求

 这里有一个等待验证的状态

 点开证书链接,点击“在 Route 53 中创建记录

 这时候在Route 53中会多一条CNAME记录

 最后还需要在Route 53里添加一条A记录,api.aws.xxx.com  A   其值在Api Gateway里面的 域名,如下图

最后可以通过自定义域名访问api gateway了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值