【问题标题】:AWS lambda: how can I run aws cli commands in lambdaAWS lambda:如何在 lambda 中运行 aws cli 命令
【发布时间】:2021-12-17 01:24:37
【问题描述】:

我想从 lambda 运行 aws cli 命令

我有一个拉取请求事件,当批准状态发生变化时触发,每当它发生变化时,我需要从 lambda 运行 aws CLI 命令,但 lambda 函数显示未找到 aws! 如何在我的 lambda 函数中获取 PR 的状态?

【问题讨论】:

  • 为什么您要运行 AWS CLI? (这有点像问你是否可以在车内骑自行车。)你想从 Lambda 函数中实现什么?
  • 我想在每次有 ApprovalPullRequestStateChange 时获取一个事件,然后运行 ​​CLI 命令检查是否满足所有批准状态,如果是,那么我想合并拉取请求
  • AWS Lambda 函数可以用各种编程语言编写,它们可以使用AWS SDK 调用 AWS API。实际上,AWS CLI 只是一个使用 AWS 开发工具包调用 AWS 的 Python 程序。您将拥有更多通过编程语言调用 AWS 的控制权,而不是尝试“调用”到 AWS CLI。
  • 通过AWS-SDK可以获取PR审批状态吗?
  • 是的。您可以通过 AWS CLI 执行的任何操作都可以通过 AWS 开发工具包执行...因为 AWS CLI 使用 AWS 开发工具包。只需为您喜欢的编程语言选择一个 SDK 并查看文档。有些命令与 AWS CLI 使用的命令完全匹配。 “PR 批准状态”是指 AWS CodeCommit 吗?您没有在问题中提及特定服务。您将使用哪个 AWS CLI 命令,您首选的编程语言是什么?我可以为您指出相应的文档。

标签: amazon-web-services aws-lambda


【解决方案1】:

默认 lambda 环境不提供 awscli。事实上,在那里使用它的想法很尴尬。您可以通过 sdk 调用 aws cli 可以调用的任何命令,例如 boto3,该环境中提供了该命令。

但是,如果您愿意,您可以在 lambda 中包含二进制文件,然后执行它们。

您还可以考虑为您的 lambda 使用容器映像。你可以在这里找到信息:https://docs.aws.amazon.com/lambda/latest/dg/images-create.html

【讨论】:

  • 您能帮我解决如何在 lambda 中包含二进制文件吗?
  • @ShashankS 你想调用什么“二进制文件”?
  • cli 二进制文件,如何将其包含在 lambda 函数中?
  • 您只需将它们包含在分发中即可。我不记得默认 lambda 图像中的文件夹结构,但您可以使用运行时获取 cwd 来查找。请记住,在 lambda 中运行除运行时以外的二进制文件很少是正确或最佳的做法,但如果必须,您需要在编译时将其静态链接,以确保它具有所需的任何 lib 链接。
猜你喜欢
  • 1970-01-01
  • 2017-01-16
  • 2019-10-30
  • 2017-09-21
  • 2018-02-16
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 2021-10-15
相关资源
最近更新 更多