Kon*_*nia 5 amazon-web-services aws-lambda aws-api-gateway localstack
我正在使用 localstack 进行本地 AWS 开发。lambda 通过 API 网关公开。每当 localstack 重新启动时(或者当它在另一台机器上第一次启动时),我必须再次创建该网关,并且它将有一个新生成的 ID。
就像这个控制台输出:
endpoints:
http://localhost:4566/restapis/0ulz03h9kk/local/_user_request_
Run Code Online (Sandbox Code Playgroud)
我怎样才能让这个 URL 看起来很漂亮,这样我就可以有一个简单的前端启动脚本?或者至少,有没有办法使该 id0ulz03h9kk硬编码?
小智 1
您可以使用 localstack 中 api-gateway 设置上的标签创建自定义 API ID。
您可以在资源创建期间使用custom_id标签将自定义 ID 分配给 API Gateway REST 和 HTTP API 。这对于确保 API 的静态端点 URL 非常有用,从而简化测试以及与其他服务的集成。
要将自定义 ID 分配给 API Gateway REST API,请使用带有参数的 create-rest-api 命令
tags={"_custom_id_":"myid123"}。以下示例将自定义 ID“myid123”分配给 API:
awslocal apigateway create-rest-api --name my-api --tags '{"_custom_id_":"myid123"}'
{
"id": "myid123",
....
}
Run Code Online (Sandbox Code Playgroud)
您还可以配置协议类型,可能的值为 HTTP 和
WEBSOCKET:
awslocal apigatewayv2 create-api \
--name=my-api \
--protocol-type=HTTP --tags="_custom_id_=my-api"
{
"ApiEndpoint": "my-api.execute-api.localhost.localstack.cloud:4566",
"ApiId": "my-api",
"Name": "my-api",
"ProtocolType": "HTTP",
"Tags": {
"_custom_id_": "my-api"
}
}
Run Code Online (Sandbox Code Playgroud)