AWS LAMBDA - 通过直接调用PHP卷曲
问题描述:
所以我知道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);
这是可能的吗?我希望它尽可能简单,只需调用函数即可。据我了解,无论如何这是SDK中发生的事情,所以它必须可以不使用SDK。
我知道最明智的方法就是使用SDK,并且我之前成功地使用了它。我遇到了一个不幸的情况:尝试将自定义业务逻辑添加到CMS的过期的蜘蛛网,并且SDK已经包含在插件中,我不能简单地在已定制的函数中重用已命名空间的SDK 。
tldr;在Wordpress中编写publish_post钩子,无法使用AWS开发工具包,因为插件已在使用它,只是想直接调用curl调用该函数,而不打算使用API网关,该怎么做?
****** UPDATE ******
解决我的问题,垂目低的...我不能使用已经加载SDK的原因是一个版本问题 .. 。哦。暂时使用超旧版本,但它工作。
虽然这个问题仍然存在,因为我是一个简单易操作的人,我宁愿只是知道如何自己做,而不是导入一个超级巨大的库(大锤敲钉子类的东西)。好奇听到一个解决方案!
答
使用AWS API Gateway简直无法将其链接到您的Lambda函数。您只需创建资源和舞台,将其与Lambda函数相关联,然后再部署该API。从那里,您将收到一个公共URL,用于发送请求以执行您的Lambda函数。
据我所知,这是通过HTTP执行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);
你将不得不通过签署请求,在与您的帐户凭据来调用AWS API的过程中,唯一的办法(S) ,这是一个巨大的痛苦。为此使用SDK更容易。如果你想要一个“直接卷曲调用”来调用Lambda函数,那么API网关确实是唯一的方法。 –
这些是我说我不想做的两件事hahahahah。我认为这将是一种痛苦,这就是为什么我想知道在潜水之前是否有人已经做到了这一点:p – Meowts