AWS Lambda-通过直接PHP curl调用


AWS Lambda - Invoke by straight PHP curl

好的,

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

我发现了有关使用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,因为插件已经在使用它了,只是想直接调用curl来调用函数,而不是使用API网关,如何?

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

解决了我的问题,低着头。。。我无法使用已加载的SDK的原因是版本控制问题。。。哦。暂时被困在使用超旧版本,但它有效。

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

$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);

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

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