如何通过Node访问Lambda中的/ tmp文件夹?

时间:2018-12-13 15:43:22

标签: node.js typescript aws-lambda

我正在尝试将处理过的图像暂时保存在/ tmp文件夹中,但对我来说不起作用。假设它在根文件夹下,我试图通过这种方式获取它:

let tempraryImageDirectory: string;
if (process.env.DEV && process.env.DEV === 'Yes') {
  tempraryImageDirectory = path.join(__dirname, `../../tmp/`);
} else {
  tempraryImageDirectory = path.join(__dirname, `./tmp/`);
}

此处的else选项是本地测试。我不想在根目录中创建/ tmp文件夹。在当地,一切都很好。但是在Lambda中,此刻对目录进行的任何操作CloudWatch都不会显示此后写入的任何日志,并且我的功能由于未知原因而失败。 我能正确寻址/ tmp文件夹吗?

2 个答案:

答案 0 :(得分:1)

更改为:./tmp/,即“当前工作目录下的/ tmp目录”

为此:/tmp/,即“根文件系统下的/ tmp目录”

答案 1 :(得分:1)

该目录仅为import numpy as np import boto3 client = boto3.client('sagemaker-runtime') def np2csv(arr): csv = io.BytesIO() np.savetxt(csv, arr, delimiter=',', fmt='%g') return csv.getvalue().decode().rstrip() endpoint_name = 'DEMO-XGBoostEndpoint-2018-12-12-22-07-28' test_vector = np.array([3.60606061e+00, 3.91395664e+00, 1.34200000e+03, 4.56100000e+03, 2.00000000e+02, 2.00000000e+02]) csv_test_vector = np2csv(test_vector) response = client.invoke_endpoint(EndpointName=endpoint_name, ContentType='text/csv', Body=csv_test_vector) ,与工作目录无关:

/tmp

如果您没有故意将变量重命名为在let tempraryImageDirectory: string; if (process.env.DEV && process.env.DEV === 'Yes') { tempraryImageDirectory = path.join(__dirname, `../../tmp/`); } else { tempraryImageDirectory = '/tmp/'; } 中包含o,那么您可能希望重命名该变量。