Share via

Azure Function (Event Grid + DuckDB) Not Publishing – HTTP Function Also Missing After Deploy

dp-Deepak Jain 20 Reputation points
2025-04-19T17:50:10.0666667+00:00

I created an Azure Function (Node.js) with an Event Grid trigger that reads Parquet files from an Azure Storage container using DuckDB. It works perfectly when I run it locally with func start, but after publishing to Azure using func azure functionapp publish <app_name>, the function doesn’t appear or run in the portal. I'm unsure if it's a deployment issue or something related to DuckDB compatibility in Azure Functions. Has anyone faced a similar problem or know how to debug this? Edit1:

I’m working with Azure Functions using Node.js (JavaScript). I created and published an HTTP trigger function using the following command:

func azure functionapp publish my-function --javascript

It worked perfectly — I saw the function listed in the Azure portal.

Later, I added another function with an Event Grid trigger. In this function, I use DuckDB to read a .parquet file from Azure Storage. It works locally when I run func start.

But when I try to publish both functions again using the same command, the new Event Grid function is not deployed, and the previously working HTTP function also disappears from the Azure portal. It seems like something is breaking the deployment.

Here’s the core code from my Event Grid function (using DuckDB to query parquet data from storage):

const duckdb = require('duckdb');

module.exports = async function (req, context) {

try {

const db = new duckdb.Database(':memory:');

const conn = db.connect();

conn.run('INSTALL azure;');

conn.run('LOAD azure;');

conn.run("SET azure_storage_connection_string='my-azure_storage_connection_string';");

const query = "SELECT * FROM 'az://my-container/path/test.parquet';";

const data = await new Promise((resolve, reject) => {

conn.all(query, (err, rows) => {

if (err) reject(err);

else resolve(rows);

});

});

conn.close();

context.res = {

status: 200,

body: data,

};

} catch (error) {

context.res = {

status: 500,

body: 'Internal Server Error',

};

}

};

Azure Functions
Azure Functions

An Azure service that provides an event-driven serverless compute platform.


Answer accepted by question author

Praveen Kumar Gudipudi 1,880 Reputation points Moderator
2025-04-23T17:34:53.1333333+00:00

Hello @dp-Deepak Jain,,

your able to resolve the issue by creating another Python function and using Pandas to convert Parquet to JSON data.

please click Accept Answer and Yes for the provided answer. This will help other community members with similar issues find the solution more easily.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.