我正在尝试使用AWS API网关和Lambda创建一个简单的服务.
我想管理少量的用户/密码对,以便他们可以登录以获取访问令牌以继续进行未来的API调用.
我不确定我是否为此选择了正确的工具,但我想知道是否有任何现有的包或模型可用于实现此功能?
我似乎遇到了一个问题,就是亚马逊网关API不喜欢我发送的params.
$.ajax({
url: "https://tibqwxuqoh.execute-api.us-east-1.amazonaws.com/dev/getitems",
type: "POST",
data: {
"device": "test",
"datetime": "1446757400919"
},
success: function (returnhtml) {
console.log(returnhtml);
$("#result").append("DOES NOT WORK - <br>" + JSON.stringify(returnhtml));
}
});
$.ajax({
url: "https://tibqwxuqoh.execute-api.us-east-1.amazonaws.com/dev/getitems",
type: "POST",
data: {},
success: function (returnhtml) {
console.log(returnhtml);
$("#result").append("<br>WORKS ???? - <br>" + JSON.stringify(returnhtml));
}
});
Run Code Online (Sandbox Code Playgroud)
这是一个有效的例子. http://jsfiddle.net/Uwcuz/4315/
有人可以让我知道为什么它不会让我每次添加参数时发送参数我得到这个错误.
{
Type = User;
message = "Could not parse request body into json.";
}
Run Code Online (Sandbox Code Playgroud)
好的,但这对我来说真的很麻烦.
$.ajax({
url: "https://tibqwxuqoh.execute-api.us-east-1.amazonaws.com/dev/getitems",
type: "POST",
data: "{\"device\": \"test\",\"datetime\": \"1446757444524\"}",
success: function (returnhtml) {
console.log(returnhtml);
$("#result").append("WORKS …Run Code Online (Sandbox Code Playgroud) 每当我尝试Twilio在我的Lambda函数中包含模块时,都会发出错误:
“ errorMessage”:“找不到模块'twilio'”
错误在线:
var client = require('twilio')(accountSid, authToken);
Run Code Online (Sandbox Code Playgroud)
有人可以帮我介绍模块的方法吗?
我正在尝试使用AWS API Gateway,Lambda和DynamoDB创建Rest API.
我使用java-script作为我的lambda语言,我已经成功创建了一些资源.但是,我不明白如何对我的IP进行身份验证请求.
我想要简单的HTTP身份验证.
有人可以解释如何向API Gateway和Lambda发出经过身份验证的请求吗?
我试图从m RDS数据库返回一个装备.dte字段都在DATETIME格式化,这导致我得到以下错误:
TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个?
继承我的代码:
import pymysql
import json
from rds import *
#rds settings
host = rds_host
name = rds_name
password = rds_password
db_name = rds_db_name
port = rds_port
try:
conn = pymysql.connect(host = host, user=name, passwd=password, db=db_name, connect_timeout=5)
except:
raise Exception('Database Error: The server encountered an unexpected condition which prevented it from fulfilling the request.')
def handler(event, context):
cur = conn.cursor(pymysql.cursors.DictCursor)
#selects a user from the database …Run Code Online (Sandbox Code Playgroud) 我正在尝试将python .zip包部署为AWS Lambda
我选择了hello-python足迹.
我使用内联代码创建了第一个lambda,之后我尝试从开发.zip更改为上传.
我使用的包是.zip包含一个单独的文件hello_python.py,使用与默认内联代码示例相同的代码调用,如下所示:
from __future__ import print_function
import json
print('Loading function')
def lambda_handler(event, context):
#print("Received event: " + json.dumps(event, indent=2))
print("value1 = " + event['key1'])
print("value2 = " + event['key2'])
print("value3 = " + event['key3'])
return event['key1'] # Echo back the first key value
#raise Exception('Something went wrong')
Run Code Online (Sandbox Code Playgroud)
点击"保存并测试"后,没有任何反应,但我得到了这个奇怪的红丝带,但没有其他实质性的错误信息.如果修改为源,重新打包并再次上载,则日志和运行结果不会显示任何更改.
我在async.js中看到的每个例子都是这样的:
var async = require(“async”);
async.series([
function(callback) {
setTimeout(function() {
console.log(“Task 1”);
callback(null, 1);
}, 300);
},
function(callback) {
setTimeout(function() {
console.log(“Task 2”);
callback(null, 2);
}, 200);
},
function(callback) {
setTimeout(function() {
console.log(“Task 3“);
callback(null, 3);
}, 100);
}
], function(error, results) {
console.log(results);
});
Run Code Online (Sandbox Code Playgroud)
最后,他们总是只是console.log结果.但是,你如何实际返回结果.每次我尝试它都会回来,因为未定义.
我需要这样的东西:
var async = require('async');
var handler = function()
{
async.series([
function(callback) {
setTimeout(function() {
console.log('Task 1');
callback(null, 1);
}, 300);
},
function(callback) {
setTimeout(function() {
console.log('Task 2');
callback(null, 2);
}, 200); …Run Code Online (Sandbox Code Playgroud) 我在将maven部署包上传到Amazon s3时遇到了问题.
从Eclipse,我能够成功生成.jar文件,但是我在上传到服务器时遇到了问题.
这是我的Java代码:
package main.java.mavantestproj;
import java.util.Map;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.lambda.runtime.Context;
public class LambdaFunctionHandler {
public String handleRequest(Map<String,Object> input, Context context) {
context.getLogger().log("Input: " + input);
AmazonDynamoDBClient client = new AmazonDynamoDBClient(new ProfileCredentialsProvider("mytest"));
client.setRegion(com.amazonaws.regions.Region.getRegion(Regions.US_WEST_2));
client.describeTable("ProductCatalog");
// TODO: implement your handler
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
在目标文件夹中,我有2个罐子.即lambda-java-example-1.0-SNAPSHOT.jar&original-lambda-java-example-1.0-SNAPSHOT.jar
在这第一个jar是35MB,第二个jar是4KB.我没有得到哪一个上传到S3来运行我的lambda函数.
我一直在修改AWS Lambda中的nodejs代码,由一些API网关端点调用.我注意到,经过一段时间没有任何API网关调用后,下一个API网关请求将超时.我将得到标准的Lambda错误消息,说明函数超时.但是,后续HTTP请求触发我的Lambda工作正常.
从表面上看,看起来某些东西正在进入"空闲"模式,需要在API Gateway-Lambda请求正常工作之前进行充电.我考虑过设置一个wget cron以保持非空闲状态,但是有没有真正的解决方案,我怎样才能更好地理解发生了什么?
我是AWS Lambda的新手,我正在研究如何在nodejs中调用S3 API.我想阅读S3对象的内容,所以这是我的代码:
exports.handler = function (event, context) {
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
s3.getObject({
Bucket: 'lambda-bucket',
Key: 'test.html'
}, function (err, data) {
console.log('this is happening!');
console.log(data);
});
context.done();
}
Run Code Online (Sandbox Code Playgroud)
我遵循API文档,但我甚至没有看到CloudWatch中的第一个日志.我也尝试过putObject,似乎没有工作.我的运行时是nodejs4.3.希望我能在这里得到一些帮助.
谢谢.