我是python的新手.我创建一个返回字符串hello世界的python脚本.并创建一个shell脚本.添加从shell到python脚本的调用.
这是我的代码
shellscript1.sh
#!/bin/bash
# script for tesing
clear
echo "............script started............"
sleep 1
python python/pythonScript1.py
exit
Run Code Online (Sandbox Code Playgroud)
pythonScript1.py
#!/usr/bin/python
import sys
print "Starting python script!"
try:
sys.exit('helloWorld1')
except:
sys.exit('helloWorld2')
Run Code Online (Sandbox Code Playgroud) 我需要异步调用另一个lambda的aws lambda.我有一个同步调用的工作代码.
exports.handler = (event, context, callback) => {
var aws = require('aws-sdk');
var lambda = new aws.Lambda({
region: 'myregion' //change to your region
});
console.log("lambda invoke started");
lambda.invoke({
FunctionName: 'testLambda',
Payload: JSON.stringify(event, null, 2) // pass params
}, function (error, data) {
if (error) {
console.log("error");
callback(null, 'hello world');
}
else {
console.log("lambda invoke end");
callback(null, 'hello world');
}
});
}
Run Code Online (Sandbox Code Playgroud)
但就我而言,'testLambda'是一个耗时的功能.因为我需要在调用'testLambda'函数后退出.然后代码就像这样更新
exports.handler = (event, context, callback) => {
var aws = require('aws-sdk');
var lambda = new aws.Lambda({
region: …
Run Code Online (Sandbox Code Playgroud) asynchronous asynccallback amazon-web-services node.js aws-lambda
我需要从单个lambda函数连接弹性缓存和dynamo db.我的代码是
exports.handler = (event, context, callback) => {
var redis = require("redis");
var client;
function connectRedisClient() {
client = redis.createClient(6379, "dgdfgdfgdfgdfgdfgfd.use1.cache.amazonaws.com", { no_ready_check: true });
}
connectRedisClient();
client.set('sampleKey', 'Hello World', redis.print);
console.log("set worked");
client.quit();
var AWS = require("aws-sdk");
var docClient = new AWS.DynamoDB.DocumentClient();
var table = "dummy";
var year = 2015;
var title = "The Big New Movie";
var params = {
TableName: table,
Item: {
"userid": "manafcj",
"year": year,
"title": title,
"test1": [645645, 7988],
"info": {
"plot": "Nothing …
Run Code Online (Sandbox Code Playgroud) caching amazon-web-services amazon-elasticache amazon-vpc aws-lambda
我需要在这样的单个语句中执行插入和删除查询
INSERT INTO COMPANY (ID,NAME) VALUES (1, 'Paul');DELETE FROM COMPANY WHERE ID='12';
Run Code Online (Sandbox Code Playgroud)
这是我用于执行查询的 node.js 代码
pg.connect(pgConString, function (err, client, done) {
if (err) {
callBack("DB connection failed. " + err, null);
return;
}
var query = client.query({
text: "INSERT INTO COMPANY (ID,NAME) VALUES (1, 'Paul');DELETE FROM COMPANY WHERE ID='12';"
values: [1, "Poul1"],
name: "insertQuery"
});
query.on("error", function (err) {
callBack("DB insertion failed. Error Message: " + err, null);
return;
});
query.on('end', function (result) {
done();
return;
});
});
Run Code Online (Sandbox Code Playgroud)
我收到这样的错误信息
错误:无法在准备好的语句中插入多个命令 …
我是C语言的新手.我需要附加两个json_object
用json-c
库创建的数组.这是我的代码:
struct json_object *obj1,*array1,*array2,*array3;
obj1 = json_object_new_object();
array1 = json_object_new_array();
json_object_array_add(array1, json_object_new_int(1));
json_object_array_add(array1, json_object_new_int(2));
json_object_array_add(array1, json_object_new_int(3));
json_object_object_add(obj1, "array1", array1);
array2 = json_object_new_array();
json_object_array_add(array2, json_object_new_int(4));
json_object_array_add(array2, json_object_new_int(5));
json_object_array_add(array2, json_object_new_int(6));
json_object_object_add(obj1, "array2", array2);
json_object_object_add(obj1, "array3", array1+array2);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
错误:无效操作数到二进制+(有'struct json_object*'和'struct json_object*')json_object_object_add(obj1,"array3",array1 + array2);
这不可能吗?我需要像这样的输出:
{
"array1:[1,2,3],
"array2":[4,5,6],
"array3":[1,2,3,4,5,6]
}
Run Code Online (Sandbox Code Playgroud)
或者是否可以将正常的C整数数组添加到Json,就像这样
int32_t smp[100]={0};
smp[0] = 1;
smp[1] = 2;
smp[2] = 3;
smp[3] = 4;
smp[4] = 5;
smp[5] = 6;
json_object_object_add(obj1, "array3", smp);
Run Code Online (Sandbox Code Playgroud) 我需要连接aws-lambda的dynamoDb和elasticache(其他使用NAT网关).
ElastiCache提供了必要的缓存方法,同时帮助使Lambda成为有效的.关注的是Lambda与DynamoDB一起使用时应该设置为NoVPC.
如果我们必须使用ElastiCache,Lambda和两者都必须在同一个VPC.TO中使用,同时使用两个ElastiCache和DynamoDB对Lambda来说是一个相当大的挑战.鉴于VPC的挑战.你有什么建议让这更容易吗?
amazon-web-services amazon-elasticache amazon-dynamodb aws-lambda
我已经配置了jenkins来构建我的ios-swift应用程序.我使用过xcode版本8.1和swift版本3.我是Jenkins的新手并继续整合过程.基于我的控制台输出,我认为构建是成功的.因为控制台输出打印像这样
Touch build/testinng.app
cd /Users/Shared/Jenkins/Home/workspace/testinng_Bit_Test
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/usr/bin/touch -c /Users/Shared/Jenkins/Home/workspace/testinng_Bit_Test/build/testinng.app
CodeSign build/testinng.app
cd /Users/Shared/Jenkins/Home/workspace/testinng_Bit_Test
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Signing Identity: "-"
/usr/bin/codesign --force --sign - --timestamp=none /Users/Shared/Jenkins/Home/workspace/testinng_Bit_Test/build/testinng.app
** BUILD SUCCEEDED **
2016-11-09 19:51:39.300 xcodebuild[2659:26623] [MT] IDETestOperationsObserverDebug: (E99CCCC3-8EED-4FBA-8A00-2CD3C0D7273F) Beginning test session testinngUITests-E99CCCC3-8EED-4FBA-8A00-2CD3C0D7273F at 2016-11-09 19:51:39.299 with Xcode 8B62 on target <DVTiPhoneSimulator: 0x7f9dce6bc690> {
SimDevice: SimDevice : iPhone 7 (223F7310-19DF-4FA7-B147-73AB8B48454F) : state={ Booted } deviceType={ SimDeviceType : com.apple.CoreSimulator.SimDeviceType.iPhone-7 } runtime={ SimRuntime : 10.1 (14B72) - com.apple.CoreSimulator.SimRuntime.iOS-10-1 }
} (10.1 (14B72))
Run Code Online (Sandbox Code Playgroud)
但在此控制台输出打印失败消息后.
failed …
Run Code Online (Sandbox Code Playgroud) 我尝试使用node.js创建一个lambda函数.w用C代码编写代码并使用node-gyp将其转换为节点库.lambda功能完美的工作.但它只打印node.js console.log语句.
这是我的node.js代码
'use strict';
console.log('Loading function');
exports.handler = (event, context, callback) => {
var addon = require('./build/Release/testLibraryfromCcode');
addon.sayHello();
console.log("Completed");
}
Run Code Online (Sandbox Code Playgroud)
这是我的C代码
int sayHello()
{
printf("Haaaaaaaaaaaaai\n");
fflush(stdout);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我从lambda测试控制台获得了这样的输出
TART RequestId: 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Version: $LATEST
2016-06-08T06:21:32.779Z 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Loading function
2016-06-08T06:21:32.779Z 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Completed
Run Code Online (Sandbox Code Playgroud)
Haaaaai印刷品缺失.我需要在我的C代码中打印printf语句.如果有什么想法?
我已经创建了一个示例lambda函数来生成成功和错误响应.功能如下
exports.handler = (event, context, callback) => {
if(event.val1=="1")
{
callback(null, 'success');
}else
{
callback(true, 'fail');
}
};
Run Code Online (Sandbox Code Playgroud)
当我使用API网关测试此功能时,我得到了不同的响应体,但响应代码是相同的(总是返回200 ok响应代码).
是否可以从lambda函数自定义状态代码(例如:错误响应需要500,成功响应需要200)?
我正在尝试评估SNS是否正在构建一个实时应用程序,并且需要在传递消息时快速转换时间<2秒.
由于我位于亚太地区,我在新加坡有一个SNS,在位于Us-east-1的Lambda有一个订户.
鉴于此设置,我运行了一个代码,试图找出调用lambda的延迟并进行零处理并记录时间.有人可能会说你在这种情况下也考虑了lambda调用延迟.这是真的.我需要调用Lambda并执行并在<2秒内回复.
我发送了23914条消息,其中我有平均653.520毫秒的传输+ lambda调用.峰值大约600995毫秒(约10分钟),这是像pubsub这样的技术的潜在延迟.
lambda在<653毫秒内发送和接收大约20117条消息,这意味着3797个数据包或15%的消息比平均时间多.
2958条消息或12.36%消息需要1秒才能执行.调用和执行379条消息或1.59%需要超过2秒(这意味着1.6%的消息不能被视为实时且必须被忽略)超过10秒的82条消息64条消息超过20秒直到~45秒后延迟是10分钟.我有3包,延迟10分钟.
困扰我的是,我的消息中大约2%(如果你也包括处理时间)不能实时处理一小部分~24K消息.
在我试图呈现的比例计算中,要求我每月处理大约2160亿条消息.在这种规模上,我担心我将无法实时处理43亿条消息.
鉴于这种经验,我不确定SNS的扩展程度.那些#of不到实时的消息(读取> 2秒延迟)会更多吗?还是会减少?
现在可能有人质疑我的互联网连接可靠性,我在EC2上重新做了这个实验并得到了非常相似的结果.
事实上,在同一时间内匹配的时间延迟类型.
具体问题
- 什么是SLA到SNS的性能?
- 间接地:这些SLA如何转换为AWS Lambda服务?
- 有关这些延误可能发生在何处的任何理由?
aws-lambda ×5
node.js ×3
c ×2
amazon-sns ×1
amazon-vpc ×1
arrays ×1
asynchronous ×1
bash ×1
caching ×1
firebase ×1
jenkins ×1
json ×1
json-c ×1
jsonobject ×1
lambda ×1
linux ×1
node-gyp ×1
postgresql ×1
python ×1
shell ×1
sql ×1
swift ×1
xcode ×1