如何通过 aws cli 在组织的 Cloudfront 实例中部署 lambda@edge 代码?

Rob*_*Rob 1 amazon-s3 amazon-web-services amazon-cloudfront aws-lambda

我们在一些 AWS 存储桶前面有一个 Cloudfront 分配,由我团队的另一名成员设置。

我有一些用于 lambda@edge 的 node.js 代码来重写请求。

我的问题是如何使用 aws 命令行工具将这些存储桶部署到 Cloudfront?

我认为,这需要

  1. 请求权限以承担角色;
  2. 将该功能部署在可以使用的地方(而不是我的帐户);
  3. 创建角色/信任关系;
  4. 在 Cloudfront 中创建行为;
  5. 并将该功能与查看器请求事件相关联。

我还没有找到任何连贯的文档或如何完成所有这些的示例,更不用说使用 aws 工具了。

事实上,当我通过网站登录时,我看不到 Cloudfront 或 S3 存储桶,但我可以通过命令行列出 s3 存储桶内容。(我不确定如何通过命令行访问 Cloudfront)。

NHo*_*Hol 5

如果您在 Lambda 中部署了函数,则应将其添加到 CloudFront 分配配置的“LambdaFunctionAssociations”元素,然后使用update-distribution CLI 命令更新您的配置,例如:

aws cloudfront update-distribution --id C123456789 --distribution-config file://local/path/to/distrib-config.json
Run Code Online (Sandbox Code Playgroud)

其中 id 是您的发行版的 ID

如果您想获取当前的 CloudFront 分配配置,您可以执行以下操作 aws cloudfront get-distribution-config --id C123456789

如果您想先创建函数,aws lambda create-function则将返回创建的函数 ARN 以传递到配置中。https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html

当您说“仅针对我的账户”时,您是指单独的 AWS 账户还是指在与 CloudFront 分配和 S3 存储桶相同的 AWS 账户中使用您的 IAM 用户?听起来您的 AWS 控制台用户与在 aws cli 中设置访问密钥的用户不同。aws cloudfront list-distributions将让您通过命令行查看 CloudFront。

程序化 lambda@edge 的 AWS 开发指南链接