diff --git a/src/containerapp/azext_containerapp/_utils.py b/src/containerapp/azext_containerapp/_utils.py index d0c5c996650..0ed9d21bf43 100644 --- a/src/containerapp/azext_containerapp/_utils.py +++ b/src/containerapp/azext_containerapp/_utils.py @@ -23,15 +23,18 @@ def _get_location_from_resource_group(cli_ctx, resource_group_name): return group.location -def _validate_subscription_registered(cmd, resource_provider): +def _validate_subscription_registered(cmd, resource_provider, subscription_id=None): providers_client = None + if not subscription_id: + subscription_id = get_subscription_id(cmd.cli_ctx) + try: - providers_client = providers_client_factory(cmd.cli_ctx, get_subscription_id(cmd.cli_ctx)) + providers_client = providers_client_factory(cmd.cli_ctx, subscription_id) registration_state = getattr(providers_client.get(resource_provider), 'registration_state', "NotRegistered") if not (registration_state and registration_state.lower() == 'registered'): - raise ValidationError('Subscription is not registered for the {} resource provider. Please run \"az provider register -n {} --wait\" to register your subscription.'.format( - resource_provider, resource_provider)) + raise ValidationError('Subscription {} is not registered for the {} resource provider. Please run \"az provider register -n {} --wait\" to register your subscription.'.format( + subscription_id, resource_provider, resource_provider)) except ValidationError as ex: raise ex except Exception: diff --git a/src/containerapp/azext_containerapp/custom.py b/src/containerapp/azext_containerapp/custom.py index 005bb52d9af..3ef91290a5f 100644 --- a/src/containerapp/azext_containerapp/custom.py +++ b/src/containerapp/azext_containerapp/custom.py @@ -783,7 +783,12 @@ def create_managed_environment(cmd, # Microsoft.ContainerService RP registration is required for vnet enabled environments if infrastructure_subnet_resource_id is not None or app_subnet_resource_id is not None: - _validate_subscription_registered(cmd, "Microsoft.ContainerService") + if (is_valid_resource_id(app_subnet_resource_id)): + parsed_app_subnet_resource_id = parse_resource_id(app_subnet_resource_id) + subnet_subscription = parsed_app_subnet_resource_id["subscription"] + _validate_subscription_registered(cmd, "Microsoft.ContainerService", subnet_subscription) + else: + raise ValidationError('Subnet resource ID is invalid.') if logs_customer_id is None or logs_key is None: logs_customer_id, logs_key = _generate_log_analytics_if_not_provided(cmd, logs_customer_id, logs_key, location, resource_group_name)