microsoft / microsoft/aspire

Track TypeScript AppHost support for Azure Functions apps

Open
#17,979 1 comment 0 reactions 0 assignees View on GitHub
area-integrations azure triage:bot-seen
Dominant language
C#
Stars
6.3k
Forks
991
Avg merge
2d 15h
Merged PRs (30d)
196

Description

## Summary

Track the Azure Functions non-.NET language POC for TypeScript AppHosts and TypeScript/JavaScript Functions apps.

## Current POC status

- Added a directory-based Azure Functions app resource for Node worker apps.
- Added TypeScript AppHost support via `addAzureFunctionsApp(...)`.
- Added local run support with Azure Functions Core Tools and `FUNCTIONS_WORKER_RUNTIME=node`.
- Added Node debugging support using `languageWorkers__node__arguments=--inspect=` and VS Code `pwa-node` attach.
- Added deterministic Dockerfile publishing for TypeScript/JavaScript Functions apps using the official Azure Functions Node base image.
- Added an Azure Container Apps publish path where Functions containers use `targetPort: 80` and `kind: functionapp`.
- Added a playground sample at `playground/TypeScriptApps/AzureFunctionsWithStorage` with a TypeScript AppHost, TypeScript Function, and Azure Storage dependency.

## Validation completed

- Clean isolated local `aspire start` for the TypeScript AppHost.
- `aspire wait functions` reached healthy.
- HTTP trigger wrote a blob through the modeled `samples` blob container.
- `aspire publish` emitted ACA Bicep and the generated Functions Dockerfile.
- `aspire deploy --list-steps` produced a deploy pipeline without creating Azure resources.
- Targeted Azure Functions hosting tests passed.
- Focused VS Code Node Functions debugger test passed.

## Follow-ups

- Decide whether the new public API shape is final or should be refined before merging.
- Decide whether to generalize beyond TypeScript/JavaScript to Python or other script workers.
- Decide if debug port allocation should avoid collisions for multiple Node Functions apps.
- Decide whether Dockerfile options such as Node version/base image should become customization APIs.
- Run a real Azure deploy once subscription/resource group/location are chosen and billable resource creation is approved.

Contributor guide

Open the contributing guide

Research direction

Start with addAzureFunctionsApp(...) and the playground sample at playground/TypeScriptApps/AzureFunctionsWithStorage, then review the targeted Azure Functions hosting tests and the VS Code Node Functions debugger test. The POC validation is complete; the remaining work is to resolve the public API, worker-language scope, debug-port, Dockerfile customization, and deployment decisions.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, docker, javascript, node.js, typescript
Domain
backend, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.