Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Aws lambda 无服务器.yml环境变量问题_Aws Lambda_Environment Variables_Serverless - Fatal编程技术网

Aws lambda 无服务器.yml环境变量问题

Aws lambda 无服务器.yml环境变量问题,aws-lambda,environment-variables,serverless,Aws Lambda,Environment Variables,Serverless,我在一个无服务器的网页上,有Lambdas和Dynamo DB练习 我在“添加创建注释API”部分,在测试API时遇到了问题 命令: serverless invoke local --function create --path mocks/create-event.json 产生此错误 Serverless: DOTENV: Loading environment variables from .env: Serverless: - tableName Serverless: B

我在一个无服务器的网页上,有Lambdas和Dynamo DB练习

我在“添加创建注释API”部分,在测试API时遇到了问题 命令:

serverless invoke local --function create --path mocks/create-event.json
产生此错误

Serverless: DOTENV: Loading environment variables from .env:
Serverless:      - tableName
Serverless: Bundling with Webpack...
error is : ResourceNotFoundException: Requested resource not found
    at Request.extractError (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/protocol/json.js:51:27)
    at Request.callListeners (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
    at Request.emit (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
    at Request.emit (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
    at callNextListener (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
    at IncomingMessage.onEnd (/Users/dannybyrne/notes-app-api/node_modules/aws-sdk/lib/event_listeners.js:307:13)
    at IncomingMessage.emit (events.js:215:7)
    at IncomingMessage.EventEmitter.emit (domain.js:476:20)
    at endReadableNT (_stream_readable.js:1183:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  message: 'Requested resource not found',
  code: 'ResourceNotFoundException',
  time: 2019-12-10T18:33:00.494Z,
  requestId: '4D2O3VOI437AE9MTH1M4UPGDUVVV4KQNSO5AEMVJF66Q9ASUAAJG',
  statusCode: 400,
  retryable: false,
  retryDelay: 28.999931507407407
}
{
    "statusCode": 500,
    "headers": {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Credentials": true
    },
    "body": "{\"status\":false}"
}
虽然在.yml文件中

# These environment variables are made available to our functions
  # under process.env.
  environment:
    tableName: notes
我假设这意味着在create.js文件中,在params对象下

TableName: process.env.tableName,
在说明书上写着 “我们使用
process.env.tableName
从环境变量读取DynamoDB表的名称。我们将在下面的
serverless.yml
中进行设置。我们这样做是为了不必在每个函数中硬编码它。”

这是否意味着我不必在包含的.env文件中设置它?当我将此文件重命名为不包含在构建中时,它还会抛出一个请求该文件的错误。当我在.env中定义tableName并将其设置为“notes”时,正如在.yml文件中定义的,它是dynamoDB表的名称,它抛出上述错误


我基本上是想弄清楚hoew.yml pull from.env(或not)

是的,如果在提供程序下定义变量,那么它将可用于所有函数

是如果在提供程序下定义变量,则所有函数都可以使用该变量

如何使用.env文件。你能解释一下吗?我真的想自己弄明白。.env文件的要点是隐藏参数,为什么我们首先要在.yml文件中定义.env变量?您使用的是
https://www.npmjs.com/package/serverless-dotenv-plugin
对。好的,我现在正在使用
.env
方法。你可以用任何一种方法。如果在
.env
文件中执行此操作,则不需要将其包含在
提供程序
下。我认为使用
.env
文件的好处是,您可以在部署过程中包含S3中特定于环境的
.env
文件。您如何使用.env文件。你能解释一下吗?我真的想自己弄明白。.env文件的要点是隐藏参数,为什么我们首先要在.yml文件中定义.env变量?您使用的是
https://www.npmjs.com/package/serverless-dotenv-plugin
对。好的,我现在正在使用
.env
方法。你可以用任何一种方法。如果在
.env
文件中执行此操作,则不需要将其包含在
提供程序
下。我认为使用
.env
文件的好处是,您可以在部署过程中包含S3中特定于环境的
.env
文件。
TableName: process.env.tableName,