2016-04-08 96 views
1

好吧,我剛剛與亞馬遜網絡服務合作,一切似乎是一個大混亂,我不知道在這一點上走哪條路。如何在AWS上安裝Lambda函數?

我想要做的是使用Lambda函數調整上傳到S3存儲桶的圖像大小。爲此,我發現an AWS Lambda Function to resize/reduce images automatically適合我的需求。

這是因爲它

$ git clone [email protected]:ysugimoto/aws-lambda-image.git 
$ cd aws-lambda-image 
$ npm install . 

所以我想,首先我要通過SSH連接到AWS安裝。爲此,我遵循了AWS教程:Setup Steps for SSH Connections to AWS CodeCommit Repositories on Windows

正如預期的那樣,它以成功的消息結尾並出現錯誤:「您已成功通過SSH進行身份驗證。可以使用Git與AWS CodeCommit進行交互。致命錯誤:服務器關閉網絡連接「

接下來我該如何安裝此Lambda函數?

如何在不允許交互式SSH連接時配置上述功能$ cp config.json.sample config.json這樣的命令?任何想法或線索?我做錯了什麼嗎?

+0

AWS CodeCommit與您嘗試在此處執行的任何操作完全沒有關係。這些安裝步驟只是您需要執行的步驟的第一部分。您需要創建一個運行Amazon Linux和SSH到THAT服務器的AWS EC2服務器,然後執行所有步驟來下載,編譯和打包Lambda函數。然後從該服務器獲取zip文件並將其上傳到AWS Lambda服務。 –

+0

@Mark B哇。但是,如果沒有EC2服務器的需要,不應該使用Lambda函數嗎?這不是全部的想法嗎? – Catalin

+0

它不能在EC2服務器上運行,但您甚至還沒有開始在Lambda上運行該功能。您仍然需要構建和打包函數並將其上傳到Lambda,並且由於您的函數需要某些僅在Amazon Linux上可用的軟件包,因此您需要創建一個Amazon Linux服務器來構建它。 –

回答

1

我懷疑你想要使用一種形式的git-deployment,並將教程中提到的aws cli命令作爲post-commit掛鉤運行? CodeCommit只提供源代碼管理,沒有掛鉤或外殼訪問,因此它不能作爲打包/部署機器。

最簡單的解決方案是使用本地機器來執行此操作,可選地克隆來自CodeCommit或本地存儲庫的內容。有一些工具可以自動執行此操作,如node-lambdanode-aws-lambda

如註釋中所述,替代方法是創建一個小型EC2實例充當包裝機。

1

Tutorial: Using AWS Lambda with Amazon S3顯示瞭如何實現Lambda函數來將圖像上傳到Amazon S3。

此外,作爲調整圖像大小的替代方法,請考慮使用動態調整大小的服務,例如CloudinaryImgix

+0

該鏈接不回答OP的問題 - 如何從源代碼控制部署Lambda。一個正確的答案是「你需要執行這些shell命令,使用aws cli」 –