1.确定访问 S3 服务所需的 IAM 权限都已正确配置,并且 AWS CLI 版本正确。
AWS SAM 本地模拟 S3 等服务时,会以与您在 AWS 上获得的 IAM 凭据相同的权限运行,因此需要确保本地 IAM 用户拥有 S3 服务所需的权限。
2.确认在本地 SAM 应用程序中指定了正确的 S3 存储桶名称和区域。
例如,在应用程序的模板文件中,AWS::S3::Bucket 资源定义应与存储桶名称和区域对应。
3.确保在 SAM 应用程序的环境变量中包含了正确的 AWS 资源访问密钥和密钥对。
在本地 SAM 应用程序开发期间,环境变量定义在 template.yaml
文件的 Globals 部分中,而在 AWS 中定义在 AWS Management Console
或 AWS CLI
等资源管理控制台中。
4.检查 S3 存储桶的访问策略是否启用了非受信任的开发者或非托管 EC2 实例的访问。
要允许 SAM 本地运行和调试的本地 Lambda 访问存储桶、SQS 队列或 SNS 主题,您必须确保您的资源策略允许非受信任的开发人员或非托管 EC2 实例访问这些资源。
5.最后,请升级 SAM CLI 的版本,并使用 sam build
和 sam local invoke
等命令来确保 SAM 应用程序源代码已正确构建,以及我们提供的本地 Lambda Runtime 和 SAM CLI 包已