示例#1
0
def update_front_door(instance, tags=None, enforce_certificate_name_check=None):
    from azext_front_door.vendored_sdks.models import (BackendPoolsSettings)
    with UpdateContext(instance) as c:
        c.update_param('tags', tags, True)
        c.update_param('backend_pools_settings',
                       BackendPoolsSettings(enforce_certificate_name_check=enforce_certificate_name_check), True)
    return instance
示例#2
0
def create_front_door(cmd, resource_group_name, front_door_name, backend_address,
                      friendly_name=None, tags=None, disabled=None, no_wait=False,
                      backend_host_header=None, frontend_host_name=None,
                      probe_path='/', probe_protocol='Https', probe_interval=30,
                      accepted_protocols=None, patterns_to_match=None, forwarding_protocol='MatchRequest',
                      enforce_certificate_name_check='Enabled'):
    from azext_front_door.vendored_sdks.models import (
        FrontDoor, FrontendEndpoint, BackendPool, Backend, HealthProbeSettingsModel, LoadBalancingSettingsModel,
        RoutingRule, ForwardingConfiguration, BackendPoolsSettings)

    # set the default names (consider making user-settable)
    backend_pool_name = 'DefaultBackendPool'
    frontend_endpoint_name = 'DefaultFrontendEndpoint'
    probe_setting_name = 'DefaultProbeSettings'
    load_balancing_settings_name = 'DefaultLoadBalancingSettings'
    routing_rule_name = 'DefaultRoutingRule'

    # get the IDs to fill the references
    backend_pool_id = _front_door_subresource_id(
        cmd, resource_group_name, front_door_name, 'backendPools', backend_pool_name)
    frontend_endpoint_id = _front_door_subresource_id(
        cmd, resource_group_name, front_door_name, 'frontendEndpoints', frontend_endpoint_name)
    probe_settings_id = _front_door_subresource_id(
        cmd, resource_group_name, front_door_name, 'healthProbeSettings', probe_setting_name)
    load_balancing_settings_id = _front_door_subresource_id(
        cmd, resource_group_name, front_door_name, 'loadBalancingSettings', load_balancing_settings_name)

    front_door = FrontDoor(
        tags=tags,
        location='global',
        friendly_name=friendly_name or front_door_name,
        enabled_state='Enabled' if not disabled else 'Disabled',
        backend_pools=[
            BackendPool(
                name=backend_pool_name,
                backends=[
                    Backend(
                        address=backend_address,
                        http_port=80,
                        https_port=443,
                        priority=1,
                        weight=50,
                        backend_host_header=backend_host_header or backend_address,
                        enabled_state='Enabled')
                ],
                health_probe_settings={'id': probe_settings_id},
                load_balancing_settings={'id': load_balancing_settings_id},
                resource_state='Enabled'
            )
        ],
        health_probe_settings=[
            HealthProbeSettingsModel(
                name=probe_setting_name,
                interval_in_seconds=probe_interval,
                path=probe_path,
                protocol=probe_protocol,
                resource_state='Enabled'
            )
        ],
        frontend_endpoints=[
            FrontendEndpoint(
                name=frontend_endpoint_name,
                host_name=frontend_host_name if frontend_host_name else '{}.azurefd.net'.format(front_door_name),
                session_affinity_enabled_state='Disabled',
                resource_state='Enabled'
            )
        ],
        load_balancing_settings=[
            LoadBalancingSettingsModel(
                name=load_balancing_settings_name,
                additional_latency_milliseconds=0,
                sample_size=4,
                successful_samples_required=2,
                resource_state='Enabled'
            )
        ],
        routing_rules=[
            RoutingRule(
                name=routing_rule_name,
                frontend_endpoints=[{'id': frontend_endpoint_id}],
                accepted_protocols=accepted_protocols or ['Http'],
                patterns_to_match=patterns_to_match or ['/*'],
                route_configuration=ForwardingConfiguration(forwarding_protocol=forwarding_protocol,
                                                            backend_pool={'id': backend_pool_id}),
                enabled_state='Enabled',
                resource_state='Enabled'
            )
        ],
        backend_pools_settings=BackendPoolsSettings(enforce_certificate_name_check=enforce_certificate_name_check)
    )
    return sdk_no_wait(no_wait, cf_frontdoor(cmd.cli_ctx, None).create_or_update,
                       resource_group_name, front_door_name, front_door)