Amazon web services 从本地测试访问AWS SAM lambda tmp文件夹
这里是我的环境: 赢10,WSL2。在WSL2上:Ubuntu20.04,Docker和AWS SAM CLI 我编写了一个带有API网关的lambda函数,该函数将获取xml数据,调用将其转换为PDF的服务,然后将其写入/tmp。 为了测试它,我运行:Amazon web services 从本地测试访问AWS SAM lambda tmp文件夹,amazon-web-services,docker,lambda,aws-lambda,aws-sam,Amazon Web Services,Docker,Lambda,Aws Lambda,Aws Sam,这里是我的环境: 赢10,WSL2。在WSL2上:Ubuntu20.04,Docker和AWS SAM CLI 我编写了一个带有API网关的lambda函数,该函数将获取xml数据,调用将其转换为PDF的服务,然后将其写入/tmp。 为了测试它,我运行: sam local start-api 并调用运行正常、无错误的端点 但是我想访问/tmp文件夹,查看文件是否确实存在。 据我所知,这是在docker的图片上。 那么,我是否有办法挂载这个/tmp文件夹,以便通过win explorer或其他
sam local start-api
并调用运行正常、无错误的端点
但是我想访问/tmp
文件夹,查看文件是否确实存在。
据我所知,这是在docker的图片上。
那么,我是否有办法挂载这个/tmp文件夹,以便通过win explorer或其他方式访问
对于上下文,以下是我的函数:
exports.lambdaHandler = async (event, context) => {
try {
if (!event.queryStringParameters || !event.queryStringParameters.order_id) {
response = {
statusCode: 400,
body: JSON.stringify({
message: "Parameter [order_id] missing.",
}),
};
return response;
}
var url =
"omitted";
var ret = await axios.get(
url,
{
headers: { Authorization: "Basic XXX" },
},
{ timeout: 10 }
);
var xml = ret.data.value[0].xmls[0].xml;
url = "https://www.webdanfe.com.br/danfe/GeraDanfe.php";
const formData = new FormData();
formData.append("arquivoXml", xml);
ret = await axios.post(url, formData, {
headers: formData.getHeaders(),
});
await savePdf(ret.data);
response = {
statusCode: 200,
body: JSON.stringify({}),
};
return response;
} catch (error) {
console.error(error);
response = {
statusCode: 500,
body: JSON.stringify(error),
};
return response;
}
};
function savePdf(data) {
return new Promise((resolve, reject) => {
fs.writeFile("/tmp/danfe.pdf", data, "binary", (err) => {
if (err) {
reject(err);
return;
}
resolve();
});
});
}
我认为对类似问题的回答将有助于您: