簡體   English   中英

使用 lambda 在 aws EC2 服務器中運行 php 腳本

[英]run a php script in aws EC2 server using lambda

我已經為應用程序在其上設置了 EC2 和 RDS,現在我想每天調用 EC2 服務器(運行 ubuntu,Apache)上的腳本(這是另一種服務的一種觸發器)以在 EC2 中運行,或者在 Lambda 本身上運行該 PHP 腳本的方法,從中刪除 EC2。

我確實發現了關於 python 腳本的內容: AWS Lambda 上的無服務器 PHP – Rob Allen 的 DevNotes

選項1:AWS Lambda上的PHP

如果您可以使PHP在Lambda上運行,那么就可以解決一半的問題。 然后,您可以使用Amazon CloudWatch Events安排它。 簡單地創建帶有計划的規則以觸發Lambda函數。

選項2:在Amazon EC2實例上觸發腳本

如果您只想在Amazon EC2實例上觸發腳本,則可以使用本地cron定義。

如果您打算只為腳本運行EC2實例,然后將其關閉,則:

  • 配置腳本以在實例啟動時運行(配置操作系統以運行腳本)
  • 配置Amazon CloudWatch Events規則以每天運行一次AWS Lambda函數
  • Lambda函數應啟動實例
  • 實例上的腳本完成工作后,應調用操作系統以關閉實例。 這將導致EC2停止它。

除了啟動和停止實例外,還可以啟動並終止實例 在這種情況下,提供腳本作為用戶數據,它將在啟動后自動運行。 將實例“關機行為”配置為“ 終止”

我目前這樣做的方法是使用 Node.js 通過 HTTP 調用腳本。

首先,我設置了一個 AWS Lambda 函數,如下所示:

exports.handler = (event, context, callback) => {
    const https = require('https');

    https.get('https://www.example.com/myscript?secret-token', (resp) => {});
};

秘密令牌只是為了讓我是唯一可以通過轉到該 URL 來執行此腳本的人。

接下來,我安排它在 EventBridge 觸發器上運行,使用類似於以下的調度表達式:

cron(0 8 * * ? *)

這使得 AWS Lambda 每天在我當地時間凌晨 5 點(UTC 時間早上 8 點)調用該 URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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