概览和工作流 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

概览和工作流

CloudFront 连接函数是一类专用 CloudFront Functions,当客户端尝试建立 mTLS 连接时,这些函数会在 TLS 握手过程中运行。您的连接函数可获取客户端证书信息、mTLS 配置参数、证书吊销检查结果和客户端 IP 地址。

连接函数将在 CloudFront 执行标准证书验证(信任链、到期、签名验证)后进行调用,即使证书吊销检查失败,函数也可以运行。这可让您实施自定义逻辑,以便处理已吊销证书或添加其他验证标准。

创建并发布连接函数后,请务必为连接请求事件类型添加与已启用 mTLS 的分配的关联。这样一来,只要客户端尝试与 CloudFront 建立 mTLS 连接,该函数就会运行。

CloudFront 连接函数遵循两阶段生命周期,可让您先开发并测试函数,然后再将函数部署到生产环境中。此工作流可确保您的连接函数正常运行,然后再用于处理实时流量。

函数阶段

连接函数存在于以下两个阶段之一:

  • DEVELOPMENT:可以修改、测试和更新处于此阶段的函数。当函数处于此阶段时,可以编写和调试函数代码。

  • LIVE:处于此阶段的函数是只读的,可以处理生产流量。您无法直接修改处于 LIVE 阶段的函数。

在创建新的连接函数时,它首先会处于 DEVELOPMENT 阶段。在测试和验证函数后,可以发布函数以将其移至 LIVE 阶段。

开发工作流程

按照此工作流操作,开发和部署连接函数:

  1. 创建:使用初始代码和配置创建处于 DEVELOPMENT 阶段的新连接函数。

  2. 测试:在部署之前,使用测试功能通过示例连接事件验证您的函数。

  3. 更新:根据测试结果按需修改函数代码和配置。

  4. 发布:准备好用于生产环境后,发布函数以将其从 DEVELOPMENT 阶段移至 LIVE 阶段。

  5. 关联:将已发布的函数与已启用 mTLS 的分配相关联以处理实时连接。

要对 LIVE 函数进行更改,您必须更新 DEVELOPMENT 版本并将其重新发布。这将创建处于 LIVE 阶段的新版本。

与其他函数类型的区别

连接函数在几个关键方面与查看器请求和查看器响应函数不同:

  • 连接函数在 mTLS 握手之后且进行任何 HTTP 处理之前运行

  • 连接函数有权获取 TLS 证书信息,而非 HTTP 请求/响应数据

  • 连接函数只能允许或拒绝连接,而不能修改 HTTP 数据

  • 连接函数仅针对新 TLS 连接调用,而不用于连接重用场景

  • mTLS 不支持 TLS 会话恢复,以确保每次连接都进行证书验证

  • 连接函数在标准查看器请求和查看器响应函数之外独立运行

  • 您可以在分配级别而不是在缓存行为级别关联连接函数。

  • 连接函数仅支持 JavaScript 运行时 2.0。