Skip to content

Polyglot ConfigureInfrastructure for Azure resources #14828

@eerhardt

Description

@eerhardt

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

Metadata

Metadata

Assignees

Labels

area-integrationsIssues pertaining to Aspire Integrations packagesarea-polyglotIssues related to polyglot apphosts

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions