Azure fonction consommateur obtient 401 lors de l'utilisation de la chaîne de connexion

0

La question

Je suis très nouveau pour Azure mécanismes et j'ai coincé sur ce problème.

J'ai l'azur de la fonction qui est censé être déclenchée par des événements publiés sur un événement hub. J'ai mis le sas de la chaîne de connexion obtenu dans le cas hub portail azure (avec les "gérer" grant option) et utilisé la même clé dans le EventHubTrigger annotation (C'est une Java 11 fonction)

Au début, j'ai eu une erreur indiquant que la fonction IP a été empêché de connexion, erreur de je me suis débarrassé en cochant la case "permettre à Microsoft de confiance de service" dans les paramètres réseau de l'événement hub.

Puis j'ai eu un 401 accès non autorisé.

Suppression de toutes les adresses ip des restrictions de l'événement hub (rendre public), il commence à écouter et traiter les événements poussé dans le cas hub.

Évidemment, je voudrais mettre ces restrictions en arrière, mais l'autoroute 401 exception ne s'arrêtent pas.

Ce qui me manque?

Modifier (Ajout de code de la fonction):

public class Function {
    @FunctionName("feed-collector")
    public void run(
            @EventHubTrigger(name = "collect", consumerGroup = "$Default", connection = "AzureEventHubConnectionString", eventHubName = "feed-ordini", cardinality = Cardinality.MANY)
            String message,
            final ExecutionContext context
    ) {
        context.getLogger().info(message);
    }
}

AzureEventHubConnectionString est défini dans les paramètres de l'application et sa valeur est dans le format

Endpoint=sb://[hub-host].servicebus.windows.net/;SharedAccessKeyName=[SasPolicyName];SharedAccessKey=[primarykey]

azure azure-eventhub azure-functions
2021-11-23 21:26:35
2
0

Selon la documentation,

Les droits prévus par la règle de stratégie peut être une combinaison de:

  • Envoyez – Donne le droit d'envoyer des messages à l'entité
  • Écoutez – Donne le droit d'écouter ou de recevoir de l'entité
  • Gérer – Donne le droit de gérer la topologie de l'espace de noms, y compris la création et la suppression d'entités

Dans votre cas, étant donné que votre fonction est à l'écoute sur les événements de la eventhub, vous devez utiliser un écouter de la politique de SAS.

2021-11-24 01:15:05
0

SAS Politique donne des granulés de portée seulement au niveau de l'entité et non pas au niveau des consommateurs.

Cela signifie que les privilèges définis au niveau espace de noms ou de l'événement hub instance ou le sujet sera appliqué pour le groupe de consommateurs de cette entité.

J'ai mis le sas de la chaîne de connexion obtenu dans le cas hub portail azure (avec les "gérer" grant option)

Event hubs jeton d'authentification exige de ses clients de disposer de la gérer les droits ou les écouter les privilèges attribués à son Événement Hubs de l'espace de noms ou de l'événement hub instance ou d'un sujet.

Pour le Code Java dans la génération d'une signature SAS (jeton) à partir d'une politique, reportez-vous ici.

Pour lire les informations détaillées sur les règles de politique comme les Envoyer, de les Écouter et de les Gérer, de la limite de règles appliquées à l' espace de noms ou de l'entité politique et les meilleures pratiques lors de l'utilisation de SAS, veuillez jeter un oeil à cette documentation de Microsoft.

2021-11-24 03:18:35

J'ai eu un coup d'oeil à la documentation mais je n'ai pas trouvé de réponses. Comment puis-je générer la SAS jeton à partir du code Java si la fonction n'a même pas de déclencheur? Et même si je créer la SAS jeton de l'extérieur de la fonction, où dois-je l'utiliser?
Esotopo21

pourriez-vous nous communiquer le code de la fonction de la façon dont vous avez écrit pour le déclenchement de l'événement.
HariKrishnaRajoli-MT

J'ai édité la question avec le code et la chaîne de connexion que j'utilise
Esotopo21

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................