Amazon web services 从本地测试访问AWS SAM lambda 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或其他

这里是我的环境:

赢10,WSL2。在WSL2上:Ubuntu20.04,Docker和AWS SAM CLI

我编写了一个带有API网关的lambda函数,该函数将获取xml数据,调用将其转换为PDF的服务,然后将其写入/tmp。 为了测试它,我运行:

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();
    });
  });
}

我认为对类似问题的回答将有助于您: