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

No one assigned

    Labels

    area-integrationsIssues pertaining to Aspire Integrations packages

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions