node:fs
O módulo node:fs no Azion Runtime: o que as funções de leitura, escrita e diretório retornam ou lançam dentro de uma function com deploy feito.
O módulo node:fs é a API de sistema de arquivos do Node.js. Aplicações Node.js usam esse módulo para entrada e saída (I/O) de arquivos: ler, escrever, atualizar e excluir arquivos e diretórios. No Azion Runtime, o build aceita import fs from "node:fs", mas uma function com deploy feito não consegue escrever arquivos com ele, e o objeto fs expõe 8 membros.
As leituras síncronas vão para um sistema de arquivos em memória que o build preenche a partir da configuração build.memoryFS do azion.config.js. Um caminho relativo é resolvido a partir da raiz, então ./hello.txt é lido como /hello.txt. Um caminho que o build não incorporou lança um erro ENOENT.
Métodos
A tabela lista o que cada chamada retorna ou lança em uma function com deploy feito, em caminhos que o build não incorporou:
| Chamada | Resultado em uma function com deploy feito |
|---|---|
fs.readFileSync('./hello.txt') | Lança Error: ENOENT: no such file or directory, fs.readFileSync call for path '/hello.txt'. |
fs.writeFileSync('/tmp/my-file.txt', 'x') | Lança Error: unsupported. Um fs.readFileSync posterior do mesmo caminho lança ENOENT. |
fs.existsSync('/') | Retorna false. |
fs.readFile('./hello.txt', callback) | Passa Error: missing storage annotation: readfile './hello.txt' para o callback. |
readFile('./hello.txt') de node:fs/promises | Rejeita com Error: missing storage annotation: readfile './hello.txt'. |
writeFile('/tmp/my-file.txt', 'hello') de node:fs/promises | Rejeita com Error: missing storage annotation. |
readdir('/') de node:fs/promises | Rejeita com Error: missing storage annotation: readdir '/'. |
stat('/') de node:fs/promises | Rejeita com Error: missing storage annotation: stat '/'. |