Cette rubrique décrit l'ID d'instance supplémentaire à configurer sur le client pour se connecter à une instance d'authentification open source via le point de terminaison public.
Champ d'application
Cette rubrique s'applique aux instances ApsaraMQ for RabbitMQ qui remplissent toutes les conditions suivantes :
L'instance utilise le mode d'authentification et de gestion des autorisations open source. Consultez la section Authentification open source.
-
L'édition de l'instance est l'une des suivantes :
-
Serverless :
(Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic
(Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic
(Shared) Pay-by-Messaging-Request
-
Abonnement :
Enterprise Edition
Enterprise Platinum Edition
-
Un point de terminaison public est affiché sur la page Instance Details.
Prérequis
Avant d'établir la connexion, configurez les éléments suivants :
Pour garantir la sécurité de l'accès, activez la liste d'autorisation des adresses IP publiques lorsque vous accédez à une instance via Internet. Ajoutez l'adresse IP publique réelle ou le bloc CIDR du client à la liste d'autorisation. Seuls les clients figurant dans cette plage peuvent accéder à l'instance.
Sur la page Users and Permissions de l'instance, créez un nom d'utilisateur et un mot de passe personnalisés, puis accordez à l'utilisateur les autorisations d'opération sur le vhost cible et les ressources associées. Pour plus d'informations, consultez la section Utilisateurs et autorisations.
Ajoutez l'adresse IP publique réelle ou le bloc CIDR du client à la liste d'autorisation des adresses IP publiques de l'instance. Pour plus d'informations, consultez la section Liste d'autorisation.
Sur la page Instance Details, récupérez l'ID d'instance et le point de terminaison public. Copiez directement le point de terminaison public affiché dans la console. Ne concaténez pas manuellement le nom de domaine.
Configurer l'ID d'instance sur le client
Lors de la connexion via le point de terminaison public, les exigences de configuration du client varient selon l'édition :
|**Série d'instances**
|
**Édition**
|
**ID d'instance requis**
|
**Description**
| | --- | --- | --- | --- | |
Serverless
|
(Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic
|
Non
|
Le serveur identifie automatiquement l'instance cible.
| |
Serverless
|
(Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic
|
Oui
|
Le client doit spécifier l'instance cible via les propriétés du client AMQP.
| |
Serverless
|
(Shared) Pay-by-Messaging-Request
|
Oui
|
Le client doit spécifier l'instance cible via les propriétés du client AMQP.
| |
Abonnement
|
Enterprise Platinum Edition
|
Non
|
Le serveur identifie automatiquement l'instance cible.
| |
Abonnement
|
Enterprise Edition
|
Oui
|
Le client doit spécifier l'instance cible via les propriétés du client AMQP.
|
Exemple de configuration Java
Si votre édition requiert l'ID d'instance (voir le tableau ci-dessus), configurez le point de terminaison public, le nom d'utilisateur, le mot de passe et le vhost en suivant les instructions de la section Utiliser un SDK pour envoyer et recevoir des messages. Ensuite, ajoutez la configuration suivante avant d'appeler newConnection() :
String instanceId = "amqp-cn-xxxxxxxx";
// The factory has been configured with the public endpoint, username, password, and vhost.
Map<String, Object> clientProperties =
new HashMap<String, Object>(factory.getClientProperties());
clientProperties.put("aliyun_rabbitmq_instance_id", instanceId);
factory.setClientProperties(clientProperties);
Connection connection = factory.newConnection();
Tenez compte des points suivants :
La valeur de
aliyun_rabbitmq_instance_iddoit correspondre à l'ID d'instance affiché dans la console, et non au point de terminaison public.Pour les éditions (Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic et (Shared) Pay-by-Messaging-Request de la série Serverless, ainsi que pour l'édition Enterprise Edition de la série Abonnement, définissez cette propriété avant de créer une connexion.
Copiez et conservez les propriétés par défaut issues de
factory.getClientProperties()afin d'éviter d'écraser les informations client intégrées du client Java.Les éditions (Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic de la série Serverless et Enterprise Platinum Edition de la série Abonnement ne nécessitent pas cette propriété. Si vous la définissez néanmoins, la valeur doit correspondre exactement à l'ID d'instance réel.
Dépannage des échecs de connexion
Si la connexion publique est rejetée, vérifiez les éléments suivants dans l'ordre :
Vérifiez que l'adresse IP publique réelle du client a bien été ajoutée à la liste d'autorisation des adresses IP publiques de l'instance cible.
Si vous utilisez l'édition (Shared) Pay-by-Provisioned-Capacity-and-Elastic-Traffic, l'édition (Shared) Pay-by-Messaging-Request de la série Serverless ou l'édition Enterprise Edition de la série Abonnement, vérifiez que
aliyun_rabbitmq_instance_idest défini et correspond exactement à l'ID de l'instance cible. Les éditions (Exclusive) Pay-by-Provisioned-Capacity-and-Elastic-Traffic et Enterprise Platinum Edition ne nécessitent pas cette propriété.Vérifiez que le nom d'utilisateur et le mot de passe personnalisés sont corrects et que l'utilisateur dispose des autorisations d'accès sur le vhost cible.
Vérifiez que le client est configuré avec le point de terminaison public de l'instance, et non avec le point de terminaison du service OpenAPI.
Pour les problèmes liés aux délais d'expiration réseau, aux autorisations des ressources ou aux configurations générales du SDK, consultez la section Causes possibles et solutions pour les échecs de connexion.