-
具有足够 AWS Identity and Access Management (IAM) 权限的
AWS
账户,可以创建 Amazon CloudFront 分配 和Lambda
函数。 -
一个
us-east-1
区域下的Amazon S3
存储桶,以便向其上传Lambda
部署包。 -
一个预先创建好的
S3
多区域接入点。 -
安装并 配置 好的 AWS 命令行 (CLI) 以部署
CloudFormation
模版。 -
Node.js 20 或更高版本,建议使用 nvm 管理你的
Node.js
版本。 -
该解决方案的
GitHub
存储库。你可以使用 Git 命令从终端克隆存储库。 -
用于打包
Lambda
部署包的zip
命令行工具。通常可使用软件包管理器快速安装。 -
用于发出
HTTP
请求的 curl 命令行工具。通常curl
预装在现代操作系统上。
./deploy_get.sh 'MrapX-Get-Demo' 'clst-lambda-pkg' 'mrap-sg-01' 'm7xo58b1n6jet.mrap'
- 第一个参数(必须):
CloudFormation
堆栈名。 - 第二个参数(必须):预先创建好的
us-east-1
区域下的用来临时存储Lambda
部署包的Amazon S3
存储桶名。 - 第三个参数(必须):预先创建好的承担故障转移功能的
Amazon S3
存储桶名。 - 第四个参数(必须):预先创建好的
S3
多区域接入点别名。 - 第五个参数(可选):
AWS CLI
配置名。
堆栈会被部署在 us-east-1
区域。
部署完成后可在 CloudFormation
资源页查看 CloudFront
的分配 ID
,在输出页查看对应的域名。
- 往
S3
多区域接入点关联的任一存储桶手动上传文件,待跨区域复制(CRR
)将文件同步到其他存储桶后,通过CloudFront
分配的域名下载该文件。 - 往承担故障转移功能的
Amazon S3
存储桶手动上传文件,立即通过CloudFront
分配的域名下载该文件。
./clean.sh 'MrapX-Get-Demo'
CloudFormation
可能无法删除Lambda
函数版本,因为它是与CloudFront
发行版关联的复制函数。在这种情况下,请在几个小时后再次尝试删除Lambda
函数。 有关更多信息,请参阅 删除 Lambda@Edge 函数和副本。
./deploy_put.sh 'MrapX-Put-Demo' 'clst-lambda-pkg' 'mrap-sg-01' 'm7xo58b1n6jet.mrap'
- 第一个参数(必须):
CloudFormation
堆栈名。 - 第二个参数(必须):预先创建好的
us-east-1
区域下的用来临时存储Lambda
部署包的Amazon S3
存储桶名。 - 第三个参数(必须):预先创建好的承担故障转移功能的
Amazon S3
存储桶名。 - 第四个参数(必须):预先创建好的
S3
多区域接入点别名。 - 第五个参数(可选):
AWS CLI
配置名。
堆栈会被部署在 us-east-1
区域。
部署完成后可在 CloudFormation
资源页查看 CloudFront
的分配 ID
,在输出页查看对应的域名。
- 为可信密钥组创建密钥对。
- 通过
CloudFront
控制台上传公钥。 - 通过
CloudFront
控制台创建密钥组,并将公钥添加到密钥组。 - 修改分配的行为,打开限制查看器访问,关联密钥组。
- 重新设置密钥对格式,导出
DER
格式的私有密钥。 - 使用 Java 创建 URL 签名。
- 通过签名
URL
,执行POST
方法上传文件,请求体为文件流。 - 通过下载流程的
CloudFront
分配域名执行GET
方法下载文件。
./clean.sh 'MrapX-Put-Demo'
CloudFormation
可能无法删除Lambda
函数版本,因为它是与CloudFront
发行版关联的复制函数。在这种情况下,请在几个小时后再次尝试删除Lambda
函数。 有关更多信息,请参阅 删除 Lambda@Edge 函数和副本。