3个稳定版本
1.0.2 | 2022年4月8日 |
---|---|
1.0.1 | 2022年3月16日 |
1.0.0 | 2022年3月15日 |
#80 在 #lambda
16KB
301 行
作为一个函数,Eh!
一个用于为您执行HTTP Get请求的AWS Lambda。
这有什么好处吗?
是的。
什么?
将带有headers
和uri
的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函数的详细信息。但快速简便的方法是
- 使用
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
- 使用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}
- 测试它
$ 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