使用 Next.js getStaticProps 重新验证时出现 AWS Amplify 503 错误

Won*_*ang 3 amazon-cloudfront next.js aws-amplify

我尝试在页面上使用 Nextjs getStaticProps 函数

并将其部署在 AWS Amplify 上。然而,当我给出“重新验证”选项时

AWS Cloudfront 发生错误。503错误说没有权限

类似的事情...有人知道如何解决这个问题吗?

Vin*_*t J 6

首先,进入发生错误的区域中的 Cloudwatch 日志,使用 Log Insights 查找错误。您将获得有关 Lambda 提出 503 原因的更多详细信息。

我敢打赌这是 SQS 的权利。如此处引用: https: //github.com/aws-amplify/amplify-hosting/issues/2175#issuecomment-900514998

可以像这样修复:

TL;DR:将 SQS 权限添加到您的 lambda 函数执行角色。

1/ 通过日志错误,您将获得 lambda 函数名称 在此输入图像描述

2/ 进入lambda函数配置,获取角色名称,然后点击编辑 在此输入图像描述

3/ 在 JSON 中编辑权限策略并添加以下内容:

       {
            "Action": [
                "sqs:*"
            ],
            "Resource": [
                "arn:aws:sqs:us-east-1:*:*"
            ],
            "Effect": "Allow"
        }
Run Code Online (Sandbox Code Playgroud)

审查并应用,它应该有效。