簡體   English   中英

AWS Lambda-通過直接的PHP curl調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM