Integrate Azure Functions deployment with In-Vitro #569
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
A small summary of the requirements (in one/two sentences).
To integrate Azure Functions deployment with In-Vitro. This feature enables deployment of serverless functions on the Azure Functions platform.
Implementation Notes ⚒️
This PR adds a workflow to deploy multiple functions to Azure Functions via ZIP deployment.
Create an Azure Service Principal:
az ad sp create-for-rbac --name "InVitro" --role Contributor --scopes /subscriptions/<your-subscription-id>
Login with Service Principal credentials:
az login --service-principal --username <appId> --password <password> --tenant <tenant-id>
To start deployment:
go run cmd/loader.go --config cmd/config_azure_trace.json
azurefunctions_setup
: this folder contains the relevant config and workload files to be used for deployment.azure_functions.go
: initializes Azure resources required for deployment to Azure Functions, such as Resource Group, Storage Account, and Function App. In order to deploy multiple functions via ZIP, each function must have its own specific folder containing required dependencies, before zipping and deploying all the function folders as a single package. After successful deployment, local temporary folders holding the functions and the zip package are cleaned up.(Note: Azure resource cleanup (e.g., Resource Group) must be performed manually in the Azure Portal for now. This will be addressed in future PRs focused on invocation logic. All cleanup, including local temporary folders, will be done after entire experiment is completed.)
External Dependencies 🍀
Breaking API Changes⚠️
Simply specify none (N/A) if not applicable.