Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何替换';最新版本';在输出lambda函数url中?我怎样才能拥有自己的资源?_Node.js_Rest_Amazon Web Services_Lambda_Claudiajs - Fatal编程技术网

Node.js 如何替换';最新版本';在输出lambda函数url中?我怎样才能拥有自己的资源?

Node.js 如何替换';最新版本';在输出lambda函数url中?我怎样才能拥有自己的资源?,node.js,rest,amazon-web-services,lambda,claudiajs,Node.js,Rest,Amazon Web Services,Lambda,Claudiajs,我是新来的AWS Lambda 如中所示,我使用Claudia在AWS Lambda上部署了以下示例: 'use strict'; console.log('Loading hello world function'); exports.handler = function (event, context, callback) { var name = "World"; var responseCode = 200; console.log("request: " +

我是新来的
AWS Lambda

如中所示,我使用Claudia在AWS Lambda上部署了以下示例:

'use strict';
console.log('Loading hello world function');

exports.handler = function (event, context, callback) {
    var name = "World";
    var responseCode = 200;
    console.log("request: " + JSON.stringify(event));
    if (event.queryStringParameters !== null && event.queryStringParameters !== undefined) {
        if (event.queryStringParameters.name !== undefined && event.queryStringParameters.name !== null && event.queryStringParameters.name !== "") {
            console.log("Received name: " + event.queryStringParameters.name);
            name = event.queryStringParameters.name;
        }

        if (event.queryStringParameters.httpStatus !== undefined && event.queryStringParameters.httpStatus !== null && event.queryStringParameters.httpStatus !== "") {
            console.log("Received http status: " + event.queryStringParameters.httpStatus);
            responseCode = event.queryStringParameters.httpStatus;
        }
    }

    var responseBody = {
        message: "Hello " + name + "!",
        input: event
    };
    var response = {
        statusCode: responseCode,
        headers: {
            "x-custom-header": "my custom header value"
        },
        body: JSON.stringify(responseBody)
    };
    console.log("response: " + JSON.stringify(response))
    callback(null, response);
};
我使用Claudia部署的命令是:

claudia create --region us-east-1 --deploy-proxy-api --handler main.handler
它创建了一个如下所示的URL:
https://40barfooxpyj.execute-api.us-east-1.amazonaws.com/latest

为什么要在URL中获取字符串
latest
?如何使URL看起来像:
https://40barfooxpyj.execute-api.us-east-1.amazonaws.com/api/jobs

听起来您想使用

在您的案例中,大致如下:

api.get('jobs', function(request) {
    return "Hello " + request.queryString.name + "!";
});
您还需要在create命令中设置--version,例如:

claudia create --region us-east-1 --deploy-proxy-api --handler main.handler --version api

--版本api将“最新”更改为“api”,api.get('jobs',…创建/api/jobsOkay的最终端点。如果我在末尾需要
api/jobs
,该怎么办?我不确定你在问什么…根据我的回答,你的端点将是:
https://40barfooxpyj.execute-api.us-east-1.amazonaws.com/api/jobs
或:
https://40barfooxpyj.execute-api.us-east-1.amazonaws.com/api/jobs?name=bob
好的!我应该如何定义代理资源?另外,我不想使用claudia api builder。然后应该采用什么方法来解析HTTP请求?api builder几乎是claudia内部处理HTTP请求的标准。如何否则执行此操作的答案超出了初始问题的范围。