管理 Amazon CodeCommit 存储库的触发器 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理 Amazon CodeCommit 存储库的触发器

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

触发器通常配置为:

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

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

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

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

创建资源并添加权限 CodeCommit

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

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

    • 有关在 Amazon SNS 中创建主题的更多信息,请参阅 Amazon SNS 文档

    • 有关使用 Amazon SNS 向 Amazon SQS 队列发送消息的信息,请参阅《Amazon SNS 开发人员指南》中的向 Amazon SQS 队列发送消息

    • 有关使用 Amazon SNS 调用 Lambda 函数的信息,请参阅《Amazon SNS 开发人员指南》中的调用 Lambda 函数

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

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