import requests import os import logging def call_azure_function(operation, data): function_url = os.getenv('AZURE_FUNCTION_URL') api_key = os.getenv('AZURE_FUNCTION_API_KEY') if not function_url or not api_key: logging.error("AZURE_FUNCTION_URL or AZURE_FUNCTION_API_KEY is not set") raise ValueError("Azure Function URL or API Key is not configured") logging.info(f"Calling Azure Function: {function_url}") logging.info(f"Operation: {operation}") logging.info(f"Data: {data}") headers = { 'Content-Type': 'application/json', 'x-functions-key': api_key } try: response = requests.post(function_url, json={'operation': operation, 'data': data}, headers=headers) logging.info(f"Response status code: {response.status_code}") logging.info(f"Response content: {response.text}") if response.status_code == 200: return response.json() elif response.status_code == 401: logging.error("Authentication failed. Check if the API key is correct.") raise Exception("Authentication failed. Check if the API key is correct.") else: logging.error(f"Error calling Azure Function: {response.text}") raise Exception(f"Error calling Azure Function: {response.text}") except requests.exceptions.RequestException as e: logging.error(f"Request exception: {str(e)}") raise