Comment puis-je configurer la découverte de service avec AWS Cloud Map via AWS CLI ?

Lecture de 5 minute(s)
0

Je souhaite utiliser AWS Cloud Map avec l'interface de la ligne de commande AWS (AWS CLI) pour créer une zone hébergée.

Résolution

Remarque : si vous recevez des messages d'erreur lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), reportez-vous à Correction des erreurs AWS CLI. Assurez-vous également que vous utilisez la version la plus récente d'AWS CLI.

Créer un espace de noms DNS

  1. Créez l'espace de noms à l'aide d'AWS CLI, en remplaçant exemple.com par le nom de domaine que vous souhaitez utiliser.

  2. Vous devez choisir si l'espace de noms créé sera public ou privé. Les espaces de noms publics sont visibles sur Internet lorsque le nom de domaine est enregistré. Les espaces de noms privés sont visibles uniquement dans le cloud privé virtuel (VPC). Lorsque vous créez un espace de noms privé, vous devez spécifier l'ID du VPC.

    Pour créer un espace de noms public, exécutez cette commande :

    $ aws servicediscovery create-public-dns-namespace --name example.com

    Pour créer un espace de noms privé, exécutez cette commande :

    $ aws servicediscovery create-private-dns-namespace --name example.com --vpc vpc-0c92f38bf7db24a05

    Remarque : n'incluez pas d'informations sensibles dans le nom, car il est accessible au public dans les requêtes DNS.


  3. Notez la valeur de OperationId dans la sortie, comme dans cet exemple :

    {
        "OperationId": "igbkufld72o4vbsbwejfi6eyinfprhc3-jkwmz00b"
    }
  4. Pour obtenir des informations détaillées sur l'opération, exécutez la commande get-operation. Remplacez OPERATION_VALUE par la valeur OperationId de l'étape précédente :

    aws servicediscovery get-operation --operation-id OPERATION_VALUE
  5. Dans la sortie, vérifiez que la valeur Statut est RÉUSSITE. Notez également la valeur ESPACE DE NOMS. Il s'agit de l'ID d'espace de noms qui crée le service et enregistre l'instance :

    {
      "Operation": {
        "Status": "SUCCESS",
        "CreateDate": 1534428266.699,
        "Id": "igbkufld72o4vbsbwejfi6eyinfprhc3-jkwmz00b",
        "UpdateDate": 1534428267.113,
        "Type": "CREATE_NAMESPACE",
        "Targets": {
          "NAMESPACE": "ns-f2wjnv2p7pqtz5f2"
        }
      }
    }

    Remarque : lorsque vous créez l'espace de noms, Amazon Route 53 crée automatiquement une zone hébergée pour le domaine. La valeur Nom de domaine de la zone hébergée est la même que celle de votre espace de noms. La valeur Commentaire est Créé par Route 53 Auto Naming.

Pour vérifier la zone hébergée, procédez comme suit :

  1. Ouvrez la console Route 53.
  2. Dans le volet de navigation, choisissez Zones hébergées.
  3. Trouvez votre zone hébergée dans la liste des zones hébergées du volet de contenu.

Créer votre service

Pour créer votre service, procédez comme suit :

  1. Exécutez la commande servicediscovery create-service avec une syntaxe abrégée, comme indiqué dans cet exemple. Remplacez WORKERS par le nom de service de votre choix. Route 53 utilise ce nom de service pour créer des enregistrements :

    $aws servicediscovery create-service --name WORKERS--dns-config 'NamespaceId="ns-f2wjnv2p7pqtz5f2",RoutingPolicy="WEIGHTED",DnsRecords=[{Type="A",TTL="300"}]'

    Remarque : n'incluez pas d'informations sensibles si l'espace de noms est détectable par des requêtes DNS publiques. Pour les services accessibles par les requêtes DNS, vous ne pouvez pas en créer plusieurs dont les noms diffèrent uniquement par la casse (par EXEMPLE et exemple). En revanche, si vous utilisez un espace de noms qui est accessible seulement par des appels d'API, vous pouvez créer des services dont les noms diffèrent uniquement par la casse.

    La stratégie de routage par défaut est MULTIVALEUR. Les stratégies de routage prises en charge sont MULTIVALEUR et PONDÉRÉ.

  2. Notez la sortie. La valeur Id correspond à l'ID du service que vous venez de créer :
    Remarque : le champ CreatorRequestId correspond à l'ID de la demande. Si l'appel d'API échoue, utilisez CreatorRequestId pour répéter l'opération.

    {
      "Service": {
        "DnsConfig": {
          "NamespaceId": "ns-f2wjnv2p7pqtz5f2",
          "DnsRecords": [
            {
              "Type": "A",
              "TTL": 300
            }
          ]
        },
        "CreatorRequestId": "93e0a17a-230b-4c58-b986-f03f3217869f",
        "Id": "srv-iy3d7hhlf5cjciph",
        "Arn": "arn:aws:servicediscovery:eu-west-1:356906700443:service/srv-iy3d7hhlf5cjciph",
        "Name": "workers"
      }
    }

Enregistrer votre instance

Pour enregistrer votre instance, procédez comme suit :

  1. Exécutez la commande servicediscovery register-instance. Remplacez les espaces réservés aux valeurs service-id, instance-id et attributes par les valeurs correspondantes. Sans ces paramètres, l'appel d'API échoue. Notez que vous ne pouvez exécuter qu'une seule demande à la fois pour enregistrer une instance avec les mêmes options service-id et instance-id.

    $ aws servicediscovery register-instance --service-id srv-iy3d7hhlf5cjciph --instance-id i-039444aa1e2932ca3 --attributes=AWS_INSTANCE_IPV4=172.1.1.1

    Avertissement : vous devez attendre la fin d'une demande instance-id pour en soumettre une autre avec les mêmes ID de service et d'instance.

  2. Vérifiez la sortie. Elle inclut la valeur OperationId, comme dans cet exemple :

    {
        "OperationId": "z7dfqgeadkvwwid2wa2n5ckicrxs255x-jkwr1x9f"
    }
  3. Ouvrez la console Route 53.

  4. Dans le volet de navigation, choisissez Zones hébergées.

  5. Sélectionnez la zone hébergée que vous avez créée précédemment.

  6. Choisissez Accéder aux jeux d'enregistrements, puis vérifiez que les jeux d'enregistrements ont bien été créés pour la zone hébergée.

    Remarque : lorsque vous enregistrez l'instance, Route 53 crée automatiquement un enregistrement avec les noms de service et de domaine.

    Pour Amazon Elastic Container Service (Amazon ECS) et la découverte de service Route 53, vous pouvez utiliser l'espace de noms Route 53 et le nom de service afin de configurer les services. Route 53 crée, supprime ou met à jour automatiquement les enregistrements dans votre zone hébergée, conformément aux paramètres de votre conteneur Amazon ECS.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois