#aws-lambda #lambda #aws #response #request-response #http #eh

app gafe

作为一个函数,Eh!

3个稳定版本

1.0.2 2022年4月8日
1.0.1 2022年3月16日
1.0.0 2022年3月15日

#80#lambda

MIT/Apache

16KB
301

作为一个函数,Eh!

crates.io CI

一个用于为您执行HTTP Get请求的AWS Lambda。

这有什么好处吗?

是的。

什么?

将带有headersuri的JSON负载发送到lambda,代码会使用您的headers请求uri。您将获得包含Lambda调用请求ID、HTTP状态和响应头部的JSON。响应体是base64编码的。

示例

请求

{
	"uri": "https://example.org",
	"headers": {
		"x-foo": "bar"
	}
}

响应

{
	"req_id": "dd50c345-8373-4145-8883-1717f2da7f75",
	"status": 200,
	"headers": {
		"accept-ranges": "bytes",
		"vary": "Accept-Encoding"
        ...
	},
	"body": "PCF..."
}

如何?

Lambda Rust运行时有关于如何构建和部署Rust函数的详细信息。但快速简便的方法是

  1. 使用rustserverless/lambda-rust docker镜像构建和打包二进制文件
docker run --rm -u $(id -u):$(id -g) \
  -e BIN=gafe \
  -v ${PWD}:/code \
  -v ${HOME}/.cargo/registry:/cargo/registry \
  -v ${HOME}/.cargo/git:/cargo/git \
  rustserverless/lambda-rust:latest

如果您使用的是64位ARM CPU,可以使用镜像 rustserverless/lambda-rust:latest-arm64

  1. 使用AWS CLI部署函数
 aws lambda create-function --function-name rustTest \
  --handler bootstrap \
  --zip-file fileb://./target/lambda/gafe/bootstrap.zip \
  --runtime provided.al2
  --role arn:aws:iam::XXXXXXXXXXXXX:role/your_lambda_execution_role \
  --environment Variables={LOG_LEVEL=info}
  1. 测试它
$ aws lambda invoke
  --cli-binary-format raw-in-base64-out \
  --function-name rustTest \
  --payload '{"uri": "https://example.org", "headers": {"x-foo":"bar"}}' \
  output.json
$ cat output.json # Prints the full non-formated version of the example response from above

注意

负载限制(请求和响应)

6 MB(同步) 256 KB(异步)

依赖项

~10–23MB
~320K SLoC