我需要将数据发布到 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/