AWS API Gateway和Lambda的简单测试

测试了一下使用API Gateway来触发Lambda应用,并将结果显示在网页上。 Lambda支持语言为: Node.js,Java,Python,C#,Go,PowerShell,等等。它具有无需管理服务器,根据需求自动扩展,便宜等优势。 具体流程 在S3 Bucket里存放网页,显示网页后,在网页里通过API Gateway来触发Lambda功能应用,并将Lambda功能应用返回的结果显示在网页上。Route53来使用DNS网址为可选。 创建Lambda应用 Lambda是EC2在一起的Compute界面下,点进去后,再点Create Function来创建函数, 取名为:XiongLambdaFunction,语言设置为Python 3.6,这样会自动生成以下代码: import json def lambda_handler(event, context): # TODO implement return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') } 进行以下替换: import json def lambda_handler(event, context): print("In lambda handler") resp = { "statusCode": 200, "headers": { "Access-Control-Allow-Origin": "*", }, "body": "Xiong Huilin" } return resp 创建API Gateway 创建一个API Gateway,在Networking & Content Delivery下点API Gateway,选择 REST,API取名为:XiongTestAPI,在Actions下点Create Method,选择GET方法,Integration type选择Lambda Function,并选择前面已经创建的XiongLambdaFunction。点保存,有以下提示。 ==You are about to give API Gateway permission to invoke your Lambda function: arn:aws:lambda:ap-southeast-1:606255748358:function:XiongLambdaFunction== 点Deploy API对API进行发布,发布成功后会有一个URL生成,这个生成的URL将会被用做第三步测试: ==Invoke URL: https://p9ciqi7imh.execute-api.ap-southeast-1.amazonaws.com/XiongReturnNameAPI== S3 Bucket网页测试触发API Gateway和Lambda函数 创建两个文件:Index.html和error.html,此测试是根据ACloud Guru所做的示例。 在index.html里,将GET请求的URL替换为: ==https://p9ciqi7imh.execute-api.ap-southeast-1.amazonaws.com/XiongReturnNameAPI==,如下html代码所示: <html> <script> function myFunction() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("my-demo").innerHTML = this.responseText; } }; xhttp.open("GET", "https://p9ciqi7imh.execute-api.ap-southeast-1.amazonaws.com/XiongReturnNameAPI", true); xhttp.send(); } </script> <body><div align="center"><br><br><br><br> <h1>Hello <span id="my-demo">2nd December 2019!</span></h1> <button onclick="myFunction()">Click me</button><br> <img src="https://www.dropbox.com/s/2965glxbyqjmi9h/SanTi.jpg?raw=1"></div> </body> </html> error.html <html><body><h1>There has been an error for Xiong's website!</h1></body></html>