Este repositório contém uma Azure Function escrita em Python, simulando um Sistema que lista filmes, com o objetivo de estudar recursos serverless na plataforma Azure.
Antes de começar, certifique-se de ter os seguintes itens instalados:
- Python 3.8+
- Azure Functions Core Tools
- Azure CLI
- Visual Studio Code com a extensão Azure Functions (opcional, mas recomendado)
-
Clone o repositório:
git clone https://github.com/endmrf/example-azure-function.git cd example-azure-function -
Crie e ative um ambiente virtual:
python -m venv .venv source .venv/bin/activate -
Instale as dependências:
pip install -r requirements.txt
-
Inicie a função localmente:
func start
A função estará disponível em http://localhost:7071/api/movies.
function_app.py: Código principal da Azure Function.host.json: Configurações do host da função.requirements.txt: Lista de dependências Python..funcignore: Arquivos e pastas ignorados pelo Azure Functions Core Tools..vscode/: Configurações para o Visual Studio Code..github/workflows/: Configurações de integração contínua (CI) com GitHub Actions.
Para implantar a função no Azure:
-
Efetue login no Azure:
az login
-
Crie um grupo de recursos e uma conta de armazenamento:
az group create --name myResourceGroup --location brazilsouth az storage account create --name mystorageaccount --location brazilsouth --resource-group myResourceGroup --sku Standard_LRS
-
Crie o plano de hospedagem e a Function App:
az functionapp plan create --resource-group myResourceGroup --name myFunctionPlan --location brazilsouth --number-of-workers 1 --sku B1 --is-linux az functionapp create --resource-group myResourceGroup --consumption-plan-location brazilsouth --runtime python --runtime-version 3.8 --functions-version 3 --name myFunctionApp --storage-account mystorageaccount
-
Implante a função:
func azure functionapp publish myFunctionApp
É possível também criar um novo registro de filme apontando para a mesma url (método POST), passando o seguinte payload
{
"title": "nome do filme",
"gender": "gênero do filme",
"year": "ano do filme"
}