小编Abd*_*naf的帖子

从python脚本返回值到shell脚本

我是python的新手.我创建一个返回字符串hello世界的python脚本.并创建一个shell脚本.添加从shell到python脚本的调用.

  1. 我需要将参数从shell传递给python.
  2. 我需要在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)

python linux bash shell

19
推荐指数
2
解决办法
3万
查看次数

异步调用另一个lambda的aws lambda

我需要异步调用另一个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

14
推荐指数
3
解决办法
7029
查看次数

无法从我的vpc配置的lambda函数连接dynamo Db

我需要从单个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

13
推荐指数
2
解决办法
2599
查看次数

使用 postgres 和 node js 在单个语句中执行多个查询

我需要在这样的单个语句中执行插入和删除查询

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)

我收到这样的错误信息

错误:无法在准备好的语句中插入多个命令 …

sql postgresql node.js

11
推荐指数
2
解决办法
2万
查看次数

使用jsonc库在C中附加json_object_arrays

我是C语言的新手.我需要附加两个json_objectjson-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)

c arrays json json-c jsonobject

9
推荐指数
1
解决办法
1610
查看次数

如何在不使用NAT网关的情况下从aws-lambda连接elasticache和dynamoDb

我需要连接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

9
推荐指数
1
解决办法
2005
查看次数

缺少必需的模块Firebase - Jenkins构建错误

我已经配置了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)

xcode continuous-integration jenkins firebase swift

8
推荐指数
1
解决办法
4604
查看次数

Printf声明不适用于lambda

我尝试使用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语句.如果有什么想法?

c lambda amazon-web-services node.js node-gyp

7
推荐指数
1
解决办法
342
查看次数

Lambda只返回200个respose代码

我已经创建了一个示例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)?

amazon-web-services aws-lambda aws-api-gateway

7
推荐指数
1
解决办法
2913
查看次数

Amazon SNS消息的预期SLA(服务级别协议)是什么?

我正在尝试评估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上重新做了这个实验并得到了非常相似的结果.

事实上,在同一时间内匹配的时间延迟类型.

具体问题

  1. 什么是SLA到SNS的性能?
  2. 间接地:这些SLA如何转换为AWS Lambda服务?
  3. 有关这些延误可能发生在何处的任何理由?

amazon-web-services amazon-sns aws-lambda

6
推荐指数
1
解决办法
2067
查看次数