microsoft / microsoft/aspire

Polyglot ConfigureInfrastructure for Azure resources

Open
#14,828 1 comment 1 reaction 1 assignee Claimed by @sebastienros View on GitHub
area-integrations area-polyglot
Dominant language
C#
Stars
6.3k
Forks
991
Avg merge
2d 15h
Merged PRs (30d)
196

Description

When AppHosts need to customize bicep properties for Azure resources, we use special libraries from the Azure SDK: `Azure.Provisioning.*`. These C# APIs are generated from the Azure specifications for the corresponding service.

To do this in non-.NET AppHosts, we will need to somehow project these APIs to other languages.

One way to accomplish this that I can imagine is:

1. The Azure SDK team builds similar Azure.Provisioning.* libraries for the language - let's say TypeScript.
2. We serialize the provisioning objects between the .NET AppHost process and the language's AppHost to allow for the developer to customize the object.
- Since the whole point of these libraries is to generate bicep, one way to serialize this information is to write and parse bicep. Today we don't have a "parse" mechanism in Azure.Provisioning libraries. Each supported language would need to implement both parse and write bicep.
- Alternatively, since these are relatively simple objects, we could come up with some other serialization format, as parsing bicep may not be feasible.

Another approach would be to simply project ALL the APIs from Azure.Provisioning to each language. However, there are a LOT of APIs and we will continually add more as we bring on more Azure services.

cc @davidfowl @sebastienros @m-nash @ArcturusZhang

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.