当前位置: 首页 > 知识库问答 >
问题:

调用AWS API Gateway Private无法从正面访问,但EC2可以工作

潘琨
2023-03-14

OK-POST测试来自EC2实例命令行,这里是curl命令的示例:

curl--location--request POST“https://abcdefghi0123456.execute-api.us-west-2.amazonaws.com/stage/”
--header“content-type:application/json”
--data-raw“{”my_key“:”my_value“}”

错误-在同一EC2实例中部署了React JS build的POST

附加到专用API网关的策略示例:

{“版本”:“2012-10-17”,“语句”:[{“效果”:“拒绝”,“主体”:“”,“动作”:“execute-api:invoke”,“资源”:“arn:aws:execute-api:us-west-2:123456789123:abcde1abc2///”,“条件”:{“StringNotequals”:{“aws:sourcevpce”:“vpce-0abc12d34567e8901”}}},{“效果”:“允许”,“主体”:“”,“动作”:“execute-api:invoke”,“资源”:“arn:aws:execute-api:us-west-2:12345678677 89123:ABCDE1ABC2///”}]}

共有1个答案

冯曾笑
2023-03-14

您的ReactJS不能工作,因为调用API的JavaScript代码在客户端(如web浏览器)执行。

这需要能够在Internet上工作的公共API网关,而不是只在VPC内有效的私有API网关。私有API只能从实例上执行的后端代码中工作,正如您使用curl验证的那样,它不能通过Internet调用。随后,它将无法在客户端工作。

要使您的API网关可以从客户端调用,必须将其更改为公共API。

 类似资料:
  • 问题内容: 如果我使用ActionBarSherlock 3.5.1,则一切正常且正常。但是,如果我想使用4.0 RC1,则会出现错误。 有任何想法吗? 问题答案: 确保将(和您的ActionBarSherlock项目的)目标API级别设置为15。为此: 将两个AndroidManifest.xml文件中的android:targetSdkVersion都更改为“ 15”。 使用项目属性(可能也包

  • 我不确定我是不是漏了一步。 我有一个s3 bucket,我需要能够从一个AWS SDK PHP脚本访问我写的运行在我的EC2上。我创建了一个IAM角色以允许访问。 IAM Allow_S3_Access_to_EC2 我的Bucket策略中没有任何关于我的EC2甚至我附加的IAM角色的内容。我也需要在我的桶策略中添加一些东西吗?这就是我困惑的地方。 我所经历的是,当一个新的对象被创建,我试图从我的

  • 我使用terraform创建了一个新的EC2实例来安装vertica,但无法在实例中访问Internet或pinggoogle.com。 我已使用私有子网设置了 ec2 实例,并使用公有子网设置了 nat 网关。 主路由表允许 0.0.0.0/0 作为目标,目标作为 nat 网关。另一个路由表将子网关联作为私有子网 10.103.2.0/24。互联网网关也连接到 VPC。 我的ec2实例安全组允许

  • 我的POJO课程如下: 当我试图从我的tst/文件夹创建XYZ类的对象时,它失败了,错误是构造函数不能从外部包访问,但当我在POJO中使用@必需的ArgsConstructor时,它开始正常工作,并且不显示错误。实际错误如下: 错误:XYZ(字符串、字符串、状态)在XYZ中不是公共的;无法从包外部访问 所以,我想知道@AllArgsConstructor(由@Value提供)和@必需ArgsCon

  • 我已启动 EC2 - Windows 实例 创建了一个 S3 存储桶,创建了一个角色 S3 完整访问并分配给 EC2 实例。 从EC2实例浏览器中,我能够访问我的角色的元数据:http://169.254.169.254/latest/meta-data/iam/security-credentials/EC2-S3-access 如果我尝试从S3 bucket访问文件:https://s3.ap

  • 问题内容: 因此,从pyspark运行时,我会输入(不指定任何上下文): ..而且效果很好。 但是,当我从运行脚本时,例如 我把以下内容 但这给我一个错误 pyspark.sql.utils.AnalysisException:u’未找到表:experian_int_openings_latest_orc;’ 所以它没有看到我的桌子。 我究竟做错了什么?请帮忙 PS Spark版本在Amazon