AWS開源並擴充套件無伺服器應用程式模型(SAM)實現

2021-09-17 18:59:26 字數 2227 閱讀 1681

\

\

\\

近日,amazon web services(aws)開源了其無伺服器應用程式模型(sam)實現,並增加了乙個面向cloudwatch logs訂閱過濾器的新事件源。該版本全面擴充套件了通過amazon api閘道器配置和部署rest api的選項,其中包括支援cors頭、區域端點和二進位制**型別。

\\ 無伺服器應用程式模型(sam)是乙個開源規範,擴充套件了aws的基礎設施即**服務cloudformation,有特定的資源型別,「使用一種簡潔的語法定義無伺服器應用程式」。sam實現了目前兩種可用的cloudformation轉換中的一種,旨在「通過精簡aws基礎設施即**的表示式來簡化模板編寫」。當模板指定了aws::serverless轉換時,在使用處理過的模板建立或更新棧之前,cloudformation會把更簡潔的sam語法擴充套件成平常的cloudformation資源型別。

\\ 編寫sam應用程式要借助sam local cli,它讓你可以「在本地測試函式,從sam模板啟動乙個本地api閘道器,驗證sam模板,生成各種事件源的樣例負載」(之前報道過)。然後,開發人員可以使用aws codepipeline、aws codebuild、cloudformation和aws codedeploy

持續地構建,並通過各種金絲雀或線性流量切換配置逐步部署sam應用程式。還可以通過無伺服器應用程式庫以及aws sam應用程式打包、發現和配置平台(之前報道過)共享相容的解決方案。

\\ 雖然sam規範從一開始就是開源的,但aws團隊必須閉門實現其認可的每乙個請求特性。現在,aws開源了將sam轉換成平常的cloudformation模板的**,降低了社群的參與門檻,這樣,任何人都可以實現新特性,並通過pull request和aws團隊合作,加速驗收。samtranslator的源**遵循apache 2.0許可協議,已經提供的aws-sam-translator pypi程式包也會讓無伺服器社群更容易「整合其他框架和部署提供程式」。

\\ 除了開源sam實現外,sam 1.5版本還增加了乙個面向amazon cloudwatch logs的新事件源,當日誌訊息與特定的過濾器模式相匹配時,會觸發乙個lambda函式:

\\

# [...]\\resources:\  logsprocessor:\    type: aws::serverless::function\    properties:\      codeuri: .\      handler: lambda_function.lambda_handler\      runtime: python3.6\      events:\        helloinfoqsubscription:\          type: cloudwatchlogs\          properties:\            loggroupname: !ref cloudwatchlambdalogsgroup\            filterpattern: hello infoq\
\\

之前的sam 1.4版本提供了人們強烈要求的「跨源資源分享(cross-origin resource sharing,縮寫為cors)」amazon api閘道器支援,現在,只需簡單地指定乙個域(還有乙個更細粒度的cors配置)就可以啟用。它還整合了新的api閘道器區域端點、二進位制**型別、日誌、指標、快取ttl設定、aws lambda函式併發以及各種小改進和bug修復。下面的模板節選說明了通過globals段支援sam api閘道器的簡潔性:

\\

---\transform: aws::serverless-2016-10-31\\globals:\  api:\    # 允許www.infoq.com呼叫這個api——sam將自動\    # 新增allowmethods,這是該api使用的http方法的列表\    cors: \"''\"\\    endpointconfiguration: regional\\    binarymediatypes:\      # 在部署時和image/gif、image/png等效\      - image~1gif\      - image~1png\\# [...]\
\\

無伺服器應用程式模型的源**包含乙份開發指南、乙份簡要設計概述和貢獻準則。其中還包含生成的cloudformation資源和相關的cloudformation相容性。截至目前,sam終端使用者支援通過aws lambda論壇提供,後續會轉移到新的aws無伺服器應用程式庫論壇。有興趣與sam社群及團隊合作的開發人員可以加入aws sam開發者頻道(#samdev)。

\\

AWS開源並擴充套件無伺服器應用程式模型(SAM)實現

近日,amazon web services aws 開源了其無伺服器應用程式模型 sam 實現,並增加了乙個面向cloudwatch logs訂閱過濾器的新事件源。該版本全面擴充套件了通過amazon api閘道器配置和部署rest api的選項,其中包括支援cors頭 區域端點和二進位制 型別。...

AWS開源並擴充套件無伺服器應用程式模型(SAM)實現

近日,amazon web services aws 開源了其無伺服器應用程式模型 sam 實現,並增加了乙個面向cloudwatch logs訂閱過濾器的新事件源。該版本全面擴充套件了通過amazon api閘道器配置和部署rest api的選項,其中包括支援cors頭 區域端點和二進位制 型別。...

如何保護無伺服器應用?

現在大部分從業人員都很熟悉雲計算,由於這種熟悉程度,有時候很難回想起雲計算的原始承諾。雲計算的原始承諾是企業可將注意力從不增加價值的事物轉移到增加價值的事物。具體來說,企業原本需要構建基礎設施 維護資料中心以及提供業務所依賴的應用,而雲計算可將其重點轉移到構建更好 更無縫和更相關的應用。然而,僅因為...