首页 > 解决方案 > 使用 AWS API Gateway 在我的 AWS lambda 函数(将在 dynamo db 中存储数据)面临的前端问题

问题描述

我正在从事一个自动化项目,我必须为我的 AWS Lambda 函数设计一个前端,该函数将在我的 AWS Dynamo DB 表中创建一个条目。我正在使用 AWS HTTP API Gateway 在前端和 lambda 函数之间创建链接。仅供参考,我的后端,即 lambda 函数和 API URL 工作正常,因为我通过 Postman 进行了检查。我可以通过 Postman 通过 dynamo DB 中的 API 发送数据。所以我知道那里没有错,只是我关心前端。

前端代码:

<html>
<body>

<h2>Project Automation</h2>
<div id="entries">


</div>

<form>
  <label for="projectId">Id:</label><br>
  <input type="text" id="Id"><br>
  <label for="name">Project Name:</label><br>
  <input type="text" id="name"><br><br>
  <button id="submitButton">Submit</button>
</form> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
  $('#submitButton').on('click', function() {
    $.ajax({
      type: 'POST',
      dataType: "json",
      url: 'https://1wuscm3kr7.execute-api.us-east-1.amazonaws.com/prod/entries',
      contentType: "application/json", 
      data: JSON.stringify({"Id": $('#Id').val()}),
      data: JSON.stringify({"name": $('#name').val()}),

      success: function(data) {
        location.reload();
      }
    });

    return false;
  });

</script>
</body>
</html>

拉姆达函数:

console.log('starting function');

const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'us-east-1'});

exports.handler = function(e, ctx, callback) {

  var params = {
    Item: {
      projectId: e.projectId,
      code: e.code,
      name: e.name,
      license: e.license
    },

    TableName: 'ProjectTest'
  };

  docClient.put(params, function(err, data) {
    if(err) {
      callback(err, null);
    } else{
      callback(null, data);
    }
  });
  
}

任何帮助将不胜感激。谢谢!

标签: javascripthtmlajaxamazon-web-servicesaws-lambda

解决方案


推荐阅读