Control: Ensure that 'HTTP Version' is the latest, if used to run the Function app
Description
Periodically, newer versions are released for HTTP either due to security flaws or to include additional functionality. Using the latest HTTP version for web apps to take advantage of security fixes, if any, and/or new functionalities of the newer version. Currently, this policy only applies to Linux web apps.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.appservice_function_app_latest_http_versionSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.appservice_function_app_latest_http_version --shareSQL
This control uses a named query:
with all_function_app as (  select    id  from    azure_app_service_function_app  where    exists (      select      from        unnest(regexp_split_to_array(kind, ',')) elem      where        elem like 'functionapp%'    )    and    exists (      select      from        unnest(regexp_split_to_array(kind, ',')) elem      where        elem = 'linux'    ))select  a.id as resource,  case    when b.id is null then 'skip'    when configuration -> 'properties' ->> 'http20Enabled' = 'true' then 'ok'    else 'alarm'  end as status,  case    when b.id is null then a.title || ' is not a linux function app.'    when configuration -> 'properties' ->> 'http20Enabled' = 'true' then a.name || ' is using the latest HTTP version.'    else a.name || ' not using latest HTTP version.'  end as reason    , a.resource_group as resource_group  , sub.display_name as subscriptionfrom  azure_app_service_function_app as a  left join all_function_app as b on a.id = b.id  left join azure_subscription as sub on sub.subscription_id = a.subscription_id;