in azure_functions_worker/loader.py [0:0]
def process_indexed_function(functions_registry: functions.Registry,
indexed_functions, function_dir):
"""
fx_metadata_results is a list of the RpcFunctionMetadata for
all the functions in the particular app.
fx_binding_logs represents a dictionary of each function in
the app and its corresponding bindings. The raw bindings and
binding logs are generated from the base extension if the
function is using deferred bindings. If not, the raw bindings
come from the azure-functions sdk and no additional binding
logs are generated.
"""
fx_metadata_results = []
fx_bindings_logs = {}
for indexed_function in indexed_functions:
function_info = functions_registry.add_indexed_function(
function=indexed_function)
binding_protos = build_binding_protos(indexed_function)
retry_protos = build_retry_protos(indexed_function)
raw_bindings, bindings_logs = get_fx_raw_bindings(
indexed_function=indexed_function,
function_info=function_info)
function_metadata = protos.RpcFunctionMetadata(
name=function_info.name,
function_id=function_info.function_id,
managed_dependency_enabled=False, # only enabled for PowerShell
directory=function_dir,
script_file=indexed_function.function_script_file,
entry_point=function_info.name,
is_proxy=False, # not supported in V4
language=PYTHON_LANGUAGE_RUNTIME,
bindings=binding_protos,
raw_bindings=raw_bindings,
retry_options=retry_protos,
properties={METADATA_PROPERTIES_WORKER_INDEXED: "True"})
fx_bindings_logs.update({indexed_function: bindings_logs})
fx_metadata_results.append(function_metadata)
return fx_metadata_results, fx_bindings_logs