精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:云計(jì)算企業(yè)動(dòng)態(tài) → 正文

AWS發(fā)布用于本地構(gòu)建和測試AWS Lambda無服務(wù)器應(yīng)用的“SAM Local”

責(zé)任編輯:editor004 作者:Daniel Bryant |來源:企業(yè)網(wǎng)D1Net  2017-08-23 11:13:39 本文摘自:INFOQ

AWS最近發(fā)布了一款測試版的新工具SAM Local,該工具可以幫助開發(fā)者在本地計(jì)算機(jī)上更輕松地構(gòu)建并測試無服務(wù)器AWS Lambda應(yīng)用程序。SAM Local提供的核心功能包括:在本地運(yùn)行的Docker中測試AWS Lambda函數(shù),借助SAM模板通過一個(gè)簡單的CLI啟動(dòng)本地API網(wǎng)關(guān)并置于Lambda函數(shù)之前,驗(yàn)證SAM模板,以及針對(duì)S3、Kinesis、CloudTrail等各種AWS事件源的測試工作生成示例載荷。

AWS去年發(fā)布的無服務(wù)器應(yīng)用程序模型(Serverless Application Model,SAM),意在幫助開發(fā)者更輕松地部署無服務(wù)器應(yīng)用。SAM是一種開源規(guī)范,基于AWS CloudFormation構(gòu)建并對(duì)其進(jìn)行了擴(kuò)展,這是AWS提供的基礎(chǔ)架構(gòu)即代碼(IaC)產(chǎn)品,可供開發(fā)者以聲明的方式指定云資源的部署和配置。

SAM Local的主要功能包括:

在本地通過SAM Local和Docker開發(fā)并測試AWS Lambda函數(shù)。 通過SAM模板啟動(dòng)本地Amazon API Gateway,并借助熱重載(Hot-reloading)技術(shù)針對(duì)函數(shù)的開發(fā)進(jìn)行快速迭代。 快速驗(yàn)證SAM模板,包括與Linter或IDE集成。 為Lambda函數(shù)提供了交互式的調(diào)試支持。

通過SAM Local在本地運(yùn)行無服務(wù)器項(xiàng)目和函數(shù)需要安裝并運(yùn)行Docker,此時(shí)SAM Local將使用DOCKER_HOST環(huán)境變量連接Docker守護(hù)進(jìn)程。SAM Local可通過NPM安裝(npm install -g aws-sam-local),或可從原代碼庫直接安裝最新版(訪問github.com/awslabs/aws-sam-loca,并創(chuàng)建一個(gè)名為aws-sam-local,而非sam的二進(jìn)制文件)。

開發(fā)者可通過增強(qiáng)的CloudFormation模板格式指定函數(shù)的部署配置以及相關(guān)的集成式AWS資源(這種格式最終會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)的CloudFormation模板)。例如,下列template.yaml文件定義了一個(gè)簡單的DynamoDB表,一個(gè)基于Python的Lambda函數(shù)(源代碼包含在一個(gè)單獨(dú)的文件中,其名稱可通過'Handler property' lambda_function.py指定),以及一個(gè)支持GET和POST方法的API網(wǎng)關(guān)實(shí)例。

---AWSTemplateFormatVersion : '2010-09-09'Transform: AWS::Serverless-2016-10-31Resources: VotesTable: Type: "AWS::Serverless::SimpleTable" VoteSpacesTabs: Type: "AWS::Serverless::Function" Properties: Timeout: 30 Runtime: python3.6 Handler: lambda_function.lambda_handler Policies: AmazonDynamoDBFullAccess Environment: Variables: TABLE_NAME: !Ref VotesTable Events: GetVotes: Properties: Method: get Path: / Type: Api Vote: Properties: Method: post Path: / Type: Api

Randall Hunt撰寫的一篇AWS博客文章提供了SAM部署與API網(wǎng)關(guān)集成的范例,并演示了SAM Local對(duì)整個(gè)開發(fā)流程提供的幫助。相關(guān)說明已經(jīng)很完善,但實(shí)際使用時(shí)需要首先創(chuàng)建相應(yīng)的DynamoDB表,隨后才能測試函數(shù)(例如下列示例通過AWS CLI執(zhí)行了create-table命令),此外在針對(duì)測試用途運(yùn)行本地DynamoDB時(shí),還需要將函數(shù)中的DynamoDB主機(jī)名改為計(jì)算機(jī)的本地網(wǎng)絡(luò)IP地址,不能直接使用localhost,這是因?yàn)楹瘮?shù)實(shí)際上運(yùn)行在Docker容器內(nèi),而Mac或Windows上的Docker都運(yùn)行在自己的虛擬機(jī)內(nèi),此時(shí)localhost代表不同的上下文。

aws dynamodb create-table --table-name spaces-tabs-votes --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 --endpoint-url http://localhost:8000 

SAM Local可以針對(duì)測試用途生成AWS服務(wù)事件,例如運(yùn)行sam local generate-event 這樣的CLI命令,此外還可通過受支持的IDE進(jìn)行交互式調(diào)試。在Java和Node.js中,-d標(biāo)志和端口可傳遞至sam local CLI命令,借此可立刻啟動(dòng)調(diào)試器。AWS博客建議對(duì)Python使用諸如epdb這樣的二進(jìn)制庫。

在本地開發(fā)并測試無服務(wù)器應(yīng)用后,可以使用SAM CLI將應(yīng)用程序打包并部署到生產(chǎn)環(huán)境。sam package命令可將代碼壓縮為Zip格式,上傳至S3,并生成一個(gè)可直接通過AWS CloudFormation部署至Lambda的SAM文件。sam deploy命令可將打包后的SAM模板部署至CloudFormation。sam package和sam deploy的作用分別等同于AWS CLI中的aws cloudformation package和aws cloudformation deploy命令。

有關(guān)SAM Local的更多信息可訪問AWS博客文章:“新增 - AWS SAM Local (Beta) – 本地構(gòu)建并測試無服務(wù)器應(yīng)用程序”,或訪問該項(xiàng)目的GitHub代碼庫。

閱讀英文原文:AWS Release ‘SAM Local’ to Facilitate Local Build and Test of AWS Lambda Serverless Applications

關(guān)鍵字:AWSSAM

本文摘自:INFOQ

x AWS發(fā)布用于本地構(gòu)建和測試AWS Lambda無服務(wù)器應(yīng)用的“SAM Local” 掃一掃
分享本文到朋友圈
當(dāng)前位置:云計(jì)算企業(yè)動(dòng)態(tài) → 正文

AWS發(fā)布用于本地構(gòu)建和測試AWS Lambda無服務(wù)器應(yīng)用的“SAM Local”

責(zé)任編輯:editor004 作者:Daniel Bryant |來源:企業(yè)網(wǎng)D1Net  2017-08-23 11:13:39 本文摘自:INFOQ

AWS最近發(fā)布了一款測試版的新工具SAM Local,該工具可以幫助開發(fā)者在本地計(jì)算機(jī)上更輕松地構(gòu)建并測試無服務(wù)器AWS Lambda應(yīng)用程序。SAM Local提供的核心功能包括:在本地運(yùn)行的Docker中測試AWS Lambda函數(shù),借助SAM模板通過一個(gè)簡單的CLI啟動(dòng)本地API網(wǎng)關(guān)并置于Lambda函數(shù)之前,驗(yàn)證SAM模板,以及針對(duì)S3、Kinesis、CloudTrail等各種AWS事件源的測試工作生成示例載荷。

AWS去年發(fā)布的無服務(wù)器應(yīng)用程序模型(Serverless Application Model,SAM),意在幫助開發(fā)者更輕松地部署無服務(wù)器應(yīng)用。SAM是一種開源規(guī)范,基于AWS CloudFormation構(gòu)建并對(duì)其進(jìn)行了擴(kuò)展,這是AWS提供的基礎(chǔ)架構(gòu)即代碼(IaC)產(chǎn)品,可供開發(fā)者以聲明的方式指定云資源的部署和配置。

SAM Local的主要功能包括:

在本地通過SAM Local和Docker開發(fā)并測試AWS Lambda函數(shù)。 通過SAM模板啟動(dòng)本地Amazon API Gateway,并借助熱重載(Hot-reloading)技術(shù)針對(duì)函數(shù)的開發(fā)進(jìn)行快速迭代。 快速驗(yàn)證SAM模板,包括與Linter或IDE集成。 為Lambda函數(shù)提供了交互式的調(diào)試支持。

通過SAM Local在本地運(yùn)行無服務(wù)器項(xiàng)目和函數(shù)需要安裝并運(yùn)行Docker,此時(shí)SAM Local將使用DOCKER_HOST環(huán)境變量連接Docker守護(hù)進(jìn)程。SAM Local可通過NPM安裝(npm install -g aws-sam-local),或可從原代碼庫直接安裝最新版(訪問github.com/awslabs/aws-sam-loca,并創(chuàng)建一個(gè)名為aws-sam-local,而非sam的二進(jìn)制文件)。

開發(fā)者可通過增強(qiáng)的CloudFormation模板格式指定函數(shù)的部署配置以及相關(guān)的集成式AWS資源(這種格式最終會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)的CloudFormation模板)。例如,下列template.yaml文件定義了一個(gè)簡單的DynamoDB表,一個(gè)基于Python的Lambda函數(shù)(源代碼包含在一個(gè)單獨(dú)的文件中,其名稱可通過'Handler property' lambda_function.py指定),以及一個(gè)支持GET和POST方法的API網(wǎng)關(guān)實(shí)例。

---AWSTemplateFormatVersion : '2010-09-09'Transform: AWS::Serverless-2016-10-31Resources: VotesTable: Type: "AWS::Serverless::SimpleTable" VoteSpacesTabs: Type: "AWS::Serverless::Function" Properties: Timeout: 30 Runtime: python3.6 Handler: lambda_function.lambda_handler Policies: AmazonDynamoDBFullAccess Environment: Variables: TABLE_NAME: !Ref VotesTable Events: GetVotes: Properties: Method: get Path: / Type: Api Vote: Properties: Method: post Path: / Type: Api

Randall Hunt撰寫的一篇AWS博客文章提供了SAM部署與API網(wǎng)關(guān)集成的范例,并演示了SAM Local對(duì)整個(gè)開發(fā)流程提供的幫助。相關(guān)說明已經(jīng)很完善,但實(shí)際使用時(shí)需要首先創(chuàng)建相應(yīng)的DynamoDB表,隨后才能測試函數(shù)(例如下列示例通過AWS CLI執(zhí)行了create-table命令),此外在針對(duì)測試用途運(yùn)行本地DynamoDB時(shí),還需要將函數(shù)中的DynamoDB主機(jī)名改為計(jì)算機(jī)的本地網(wǎng)絡(luò)IP地址,不能直接使用localhost,這是因?yàn)楹瘮?shù)實(shí)際上運(yùn)行在Docker容器內(nèi),而Mac或Windows上的Docker都運(yùn)行在自己的虛擬機(jī)內(nèi),此時(shí)localhost代表不同的上下文。

aws dynamodb create-table --table-name spaces-tabs-votes --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 --endpoint-url http://localhost:8000 

SAM Local可以針對(duì)測試用途生成AWS服務(wù)事件,例如運(yùn)行sam local generate-event 這樣的CLI命令,此外還可通過受支持的IDE進(jìn)行交互式調(diào)試。在Java和Node.js中,-d標(biāo)志和端口可傳遞至sam local CLI命令,借此可立刻啟動(dòng)調(diào)試器。AWS博客建議對(duì)Python使用諸如epdb這樣的二進(jìn)制庫。

在本地開發(fā)并測試無服務(wù)器應(yīng)用后,可以使用SAM CLI將應(yīng)用程序打包并部署到生產(chǎn)環(huán)境。sam package命令可將代碼壓縮為Zip格式,上傳至S3,并生成一個(gè)可直接通過AWS CloudFormation部署至Lambda的SAM文件。sam deploy命令可將打包后的SAM模板部署至CloudFormation。sam package和sam deploy的作用分別等同于AWS CLI中的aws cloudformation package和aws cloudformation deploy命令。

有關(guān)SAM Local的更多信息可訪問AWS博客文章:“新增 - AWS SAM Local (Beta) – 本地構(gòu)建并測試無服務(wù)器應(yīng)用程序”,或訪問該項(xiàng)目的GitHub代碼庫。

閱讀英文原文:AWS Release ‘SAM Local’ to Facilitate Local Build and Test of AWS Lambda Serverless Applications

關(guān)鍵字:AWSSAM

本文摘自:INFOQ

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號(hào)-6 京公網(wǎng)安備 11010502049343號(hào)

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 旺苍县| 建水县| 隆子县| 札达县| 石棉县| 杂多县| 城步| 水富县| 客服| 芒康县| 丽水市| 吐鲁番市| 甘德县| 广丰县| 宁陕县| 临朐县| 乐昌市| 伊宁市| 南和县| 牙克石市| 固镇县| 三门峡市| 云霄县| 磐安县| 绥芬河市| 安泽县| 藁城市| 洛川县| 金堂县| 盘山县| 札达县| 长乐市| 陕西省| 龙口市| 疏勒县| 嘉善县| 莱芜市| 修武县| 台前县| 永丰县| 威信县|