AWS Lambda - 通过直接调用 PHP curl

AWS Lambda - Invoke by straight PHP curl

好的,

所以我知道 AWS PHP SDK。我不想使用它来进行 curl 调用以调用 lambda 函数。

我找到了有关使用 API 网关的信息。我也不想使用API网关。我只想成为:

$endPoint = "https://urltoinvokethefunction"
$ch = curl_init();
$chOptions = [
    CURLOPT_URL => $endPoint,
    //credentials, headers, etc etc
];
curl_setopt_array($ch, $chOptions);
$result = curl_exec($ch);

这可能吗?我希望它尽可能简单,只是一个直接的 curl 调用来调用该函数。据我了解,无论如何这都是 SDK 中发生的事情,因此不使用 SDK 肯定是可能的。

我知道最明智的方法是使用SDK,我以前也成功使用过。我遇到了一个不幸的情况,即尝试将自定义业务逻辑添加到 CMS 的过时蜘蛛网中,并且 SDK 已包含在插件中我不能简单地在自定义函数中重用已经命名空间的 SDK .

tldr; 在 Wordpress 中编写 publish_post 挂钩,无法使用 AWS SDK,因为插件已经在使用它,只是想做一个直卷曲call 调用函数,不打算使用API 网关,如何?

****** 更新 ******

解决了我的问题,低着头...我无法使用已经加载的 SDK 的原因是 版本控制问题...哦。暂时卡在超老版本,还好用

问题仍然存在,因为我是一个坚持简单的人,我宁愿自己知道如何做,也不愿导入一个超大的库(用大锤敲钉子之类的东西)。很想听听解决方案!

使用 AWS API 网关非常简单 link 它到您的 Lambda 函数。您只需创建一个资源和阶段,将其关联到您的 Lambda 函数,然后部署 API。从那里,您将收到一个 public URL 发送请求到将执行您的 Lambda 函数。

据我所知,这是通过 HTTP(S) 执行 Lambda 函数的唯一方法

$data = array(‘key’=>'key1');
$data_string = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"ENTER_YOUR_PUBLIC_URL");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “POST”); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 
‘Content-Type: application/json’, 
‘Content-Length: ‘ . strlen($data_string)) 
); 
$result = curl_exec($ch);