[英]AWS Lambda - Invoke by straight PHP curl
好的,
因此,我知道了AWS PHP SDK。 我不想用它來制作卷曲要進行的調用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開發工具包,因為插件已在使用它,只是想進行直接的curl調用以調用該函數,而不打算使用API Gateway,該怎么做?
******更新****
解決了我的問題,垂頭喪氣...我無法使用已經加載的SDK的原因是版本問題 ... d'oh。 暫時使用超級舊版本卡住了,但是可以用。
但是,問題仍然存在,因為我是簡單的堅持者,我寧願自己知道如何做,而不是導入一個超大型圖書館(用大錘砸釘子)。 希望聽到解決方案!
使用AWS API Gateway將其鏈接到Lambda函數非常簡單。 您只需創建一個資源並創建階段,將其與Lambda函數相關聯,然后部署API。 從那里,您將收到一個公共URL,向該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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.