管理 AWS CodeCommit 仓库的触发器 - AWS CodeCommit

AWS CodeCommit 不再向新客户提供。 AWS CodeCommit 的现有客户可以继续正常使用该服务。了解更多

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 AWS CodeCommit 仓库的触发器

您可以配置 CodeCommit 存储库,以便代码推送或其他事件触发操作,例如从亚马逊简单通知服务 (AmazonSNS) 发送通知或在中 AWS Lambda调用函数。您最多可以为每个 CodeCommit 存储库创建 10 个触发器。

触发器通常配置为:

  • 有人向存储库推送内容时,向订阅用户发送电子邮件。

  • 有人向存储库的主分支推送内容后,通知外部构建系统启动构建。

对于通知外部构建系统等场景,需要编写 Lambda 函数来与其他应用程序交互。电子邮件场景只需要创建一个 Amazon SNS 主题即可。

本主题向您展示如何设置允许 CodeCommit 在 Amazon SNS 和 Lambda 中触发操作的权限。此外,它还包括创建、编辑、测试和删除触发器的示例的链接。

创建资源并添加权限 CodeCommit

您可以将 Amazon SNS 主题和 Lambda 函数与中的触发器集成 CodeCommit,但必须先创建资源,然后使用授予与这些资源交互 CodeCommit 的权限的策略配置资源。您必须在与 CodeCommit 存储库 AWS 区域 相同的位置创建资源。例如,如果存储库位于美国东部(俄亥俄州)(us-east-2),则SNS亚马逊主题或 Lambda 函数必须位于美国东部(俄亥俄州)。

  • 对于亚马逊SNS主题,如果使用与 CodeCommit 存储库相同的账户创建亚马逊SNS主题,则无需配置其他IAM策略或权限。创建并订阅了 Amazon SNS 主题后,您就可以立即创建 CodeCommit 触发器。

  • 如果您想将触发器配置为在另一个 AWS 账户中使用某个 Amazon SNS 主题,则必须先使用允许 CodeCommit 向该主题发布内容的策略配置该主题。有关更多信息,请参阅 示例 1:创建允许对 Amazon SNS 主题进行跨账户存取的策略

  • 您可以通过在 Lambda 控制台中创建作为 Lambda 函数一部分的触发器来对该函数进行配置。这是最简单的方法,因为在 Lambda 控制台中创建的触发器会自动包含调用 Lambda 函数所需的 CodeCommit 权限。如果您在中创建触发器 CodeCommit,则必须包含 CodeCommit 允许调用该函数的策略。有关更多信息,请参阅为现有的 Lambda 函数创建触发器示例 3:创建与 CodeCommit 触发器 AWS Lambda 集成的策略