Deploy Python Azure Functions via Azure DevOps on Azure Cloud - azure

I need to deploy function which is made in Python, to our Azure cloud. I am looking the best approach. For creating infrastructure I am using pulumi. Part what I am not so sure how to update, deploy this function, can I make somehow to azure function track git repo, and if is there some change to do git pull ? Is there any other way?
Thank you in advance :)

Related

I've generated resources using Azure Bicep in ADO pipelines. Need to make a new pipeline that will populate the resources with code. Not sure how

I've got a bicep file that has made the following resources: Function app, storage account, app insights, key vault and app service plan, via a build pipeline in Azure Dev Ops Pipelines. I need to populate these resources with artifacts built from source code e.g. adding functions to the function app. I'm not sure how to do this though. Does anyone have any advice or links to tutorials? I'm new to Azure and would appreciate any help. Thanks.
Basically, Azure pipelines working with tasks to deploy artifacts to the resources. These resources can be AKS, IIS or Azure functions as you mentioned. If you particularly looking for Azure function deployment task you can use the AzureFunction#1 task for that.
Here is some additional useful links;
https://www.azuredevopslabs.com/labs/vstsextend/azurefunctions/#:~:text=Azure%20Functions%20is%20an%20event,well%20as%20on%2Dpremises%20systems.
https://learn.microsoft.com/en-us/azure/azure-functions/functions-how-to-azure-devops?tabs=dotnet-core%2Cyaml%2Ccsharp

Is it possible to add a CI/CD pipeline to an existing app service on Azure? If so, how?

I have an existing app service running on Azure that I previously published directly from Visual Studio. I am trying to get to grips with using DevOps and was wondering if it is possible to add a CI/CD pipeline to an existing app service.
I have seen a lot of tutorials on the web about how to create a pipeline for a new app service (many, of course, are out of date and do not actually relate to what one sees in the Azure portal!) So far, though, I have not come across anything about adding this to an existing app service.
Any advice or links to handy tutorials would be greatly appreciated!
I am hoping that the answer is not delete the existing service and start again from scratch!
If you are a beginner on Azure Devops, I will recommend to use the Azure Devops Starter project to create a pipeline, you can pick AppService as the deployment.
Once the pipelines are created on the Azure Devops , just open the pipeline and select the existing AppService where you want to deploy and also the source from where you want to pull the code. This makes easier rather than creating the stuffs from the scratch.

Deploy Azure function from GitHub actions to Azure portal

I am new to Azure and i would like to deploy a folder with my function azure (python file) and create a function in my function app. Do i need a function.json file and what is it for? I am using GitHub actions as CI / CD. Which method can I use? ZIP deploy, Storage Azure deploy, serverless, other? I tested a lot of things with no results.
The manual:
Which has a section: Source Control.
Which points to: Continuous deployment for Azure Functions

Azure App Services, DevOps and Web API deployment

I am learning Azure. If I developed a Web API project. How exactly is deployed in real-time to Azure App Service? I do saw lot of video where APIs are deployed to Azure App Services. is the way we do in real development? or We use ARM templates? usually,the portal login details are not shared to developer? Once deploy to Azure App Service, How we use Azure DevOps to make CI/CD for the same. Please help/guide with any article/video/tutorial.
or Simply guide how we plan any web app or API from development to Production deployment using Azure App Services and Azure DevOps?
Thanks in Advance for any help.
First thing you need to do is maintain GitHub repository.Push all your code inside it !
Now create a web app in Azure under App service !
Once it is deployed you have to deploy the code to it from GitHub.
There are 2 ways to do it from GitHub to maintain CI Cd pipelines.
One way is you use GitHub actions under deployment center to deploy it or other way is create azure DevOps free account and Import GitHub repository there and then push it in Web App.
Both have some end results.
Now about ci cd pipelines anytime you will make changes to code on respective chosen way the code can be seen working in live app.
This all is concept of ci cd pipelines.

How to maintain many Azure resources and deployments in one git repo?

I have a project that consists of an Azure webapp, a PostgreSQL on Azure, and multiple Azure functions for background ETL workflows. I also have a local Python package that I need to access from both the webapp and the Azure functions.
How can I structure configuration and script deployment for those resources from a single git repo?
Any suggestions or pointers to good examples or tutorials would be very appreciated.
All the Azure tutorials that I've seen are only for small and simple projects.
For now, I've hand-written an admin.py script that does e.g. the webapp and function deployments by creating a Python package, creating ZIP files for each resource and doing ZIP deployments. This is getting messy, and now I want to have QA and PROD versions, and I need to pass secrets so that the DB is reachable, and it's getting more complex. Is there either a nice way to structure this packaging / deployment, or a tool to help with it? For me, putting everything in Kubernetes is not the solution, at least the DB already exists. Also, Azure DevOps is not an option, we are using Gitlab CI, so eventually I want to have a solution that can run on CI/CD there.
Not sure if this will help complete but here we go.
Instead of using a hand-written admin.py script, try using a yaml pipeline flow. For Gitlab, they have https://docs.gitlab.com/ee/ci/yaml/ that you can use to get started. From what you've indicated, I would recommend having several job steps in your yaml pipeline that will build and package your web and function apps. For deployment, you can make use of environments. Have a look at https://docs.gitlab.com/ee/ci/multi_project_pipelines.html as well which illustrates how you can create downstream pipelines.
From a deployment standpoint, the current integration I've found between Azure and GitLab leaves me with two recommendations:
Leverage the script command of yaml to continue zipping your artifacts use Azure CLI (I would assume you can install the tools during the pipeline) to zip deploy.
Keep your code inside the GitLab repo and utilize Azure Pipelines to handle the CI/CD for you.
I hope you find this helpful.

Resources