php - 如何使用 AWS PHP SDK 访问 API 网关终端节点

标签 php aws-sdk aws-api-gateway

我需要将数据发布到 AWS API Gateway URL。

我不知道如何使用 PHP 来做到这一点。 (就像我无法想象会有这么困难。)

如有任何帮助,我们将不胜感激。

我需要将 JSON 正文发送到 API 网关 API (IAM),SDK 似乎没有任何可以帮助我的文档。

我需要发布此内容:

{
    "entity": "Business",
    "action": "read",
    "limit": 100
}

使用 sig 4 到 API 网关端点 端点示例 (https://myendpoint.com/api)

最佳答案

我真的很挣扎,最后通过以下方法解决了这个问题:

require './aws/aws-autoloader.php';

use Aws\Credentials\Credentials;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use Aws\Signature\SignatureV4;
use Aws\Credentials\CredentialProvider;

$url = '<your URL>';
$region = '<your region>';
$json = json_encode(["Yourpayload"=>"Please"]);

$provider = CredentialProvider::defaultProvider();
$credentials = $provider()->wait();
# $credentials = new Credentials($access_key, $secret_key); # if you do not run from ec2
$client = new Client();
$request = new Request('POST', $url, [], $json);
$s4 = new SignatureV4("execute-api", $region);
$signedrequest = $s4->signRequest($request, $credentials);
$response = $client->send($signedrequest);
echo($response->getBody());

此示例假设您正在从 EC2 或具有允许访问此 API 网关组件和 ./aws 目录中的 AWS PHP SDK 的实例配置文件的设备运行。

关于php - 如何使用 AWS PHP SDK 访问 API 网关终端节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52781293/

相关文章:

javascript - 将绳子分成相等的两半

php - 如何避免在 Laravel 模型创建事件中创建记录

node.js - AWS-SDK:S3的列表对象中的查询参数

amazon-web-services - AWS Mock 与动态状态代码集成

php - 从 PHP 调用 SOAP Web 服务

php - 连接两个表时遇到问题

javascript - 当我在 Amazon S3 中将 Quiet 设置为 true 以在 deleteObjects() 方法中启用安静模式时会发生什么?

node.js - 使用 sendUsersMessages(javascript SDK)时,AWS Pinpoint 出现 TemplateConfiguration 错误

amazon-web-services - API 网关自定义授权方 - 获取源 IP 地址

amazon-web-services - 何时在 AWS 中通过 API Gateway 使用应用程序负载均衡器?