in demo-python/code/indexers/document-intelligence-custom-skill/scripts/setup_search_service.py [0:0]
def get_function_url(credential: DefaultAzureCredential, function_name: str) -> str:
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
client = WebSiteManagementClient(credential=credential, subscription_id=subscription_id)
resource_group = os.environ["AZURE_API_SERVICE_RESOURCE_GROUP"]
function_app_name = os.environ["AZURE_API_SERVICE"]
# It's possible the function is not fully provisioned by the time this script runs
# Retry fetching the function information a few times before giving up if it's not found
for attempt in Retrying(
retry=retry_if_exception_type(ResourceNotFoundError),
wait=wait_random_exponential(min=15, max=60),
stop=stop_after_attempt(5)
):
with attempt:
embedding_function = client.web_apps.get_function(resource_group_name=resource_group, name=function_app_name, function_name=function_name)
embedding_function_keys = client.web_apps.list_function_keys(resource_group_name=resource_group, name=function_app_name, function_name=function_name)
function_url_template = embedding_function.invoke_url_template
function_key = embedding_function_keys.additional_properties["default"]
return f"{function_url_template}?code={function_key}"