Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'un AWS Cloud Map service pour un composant d'application
Après avoir créé un espace de noms, vous pouvez créer des services pour représenter les différents composants de votre application qui répondent à des objectifs particuliers. Par exemple, vous pouvez créer un service pour les ressources de votre application qui traitent les paiements.
Note
Vous ne pouvez pas créer plusieurs services accessibles par des requêtes DNS dont les noms ne diffèrent que par cas (par exemple et exemple). Si vous essayez de le faire, ces services porteront le même nom DNS. Si vous utilisez un espace de noms accessible uniquement par des appels d'API, vous pouvez créer des services dont les noms ne diffèrent qu'au cas par cas.
Procédez comme suit pour créer un service à l'aide du AWS Management Console AWS CLI, et du SDK pour Python.
- AWS Management Console
-
Connectez-vous à la AWS Cloud Map console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudmap/
. -
Dans le panneau de navigation, choisissez Namespaces (Espaces de noms).
-
Sur la page Namespaces (Espaces de noms), choisissez l'espace de noms auquel vous souhaitez ajouter le service.
-
Sur la page Namespace: (Espace de noms :)
nom-espace de noms
, choisissez Create service (Créer un service). -
Dans Nom du service, entrez un nom qui décrit les instances que vous enregistrez lorsque vous utilisez ce service. La valeur est utilisée pour découvrir les instances AWS Cloud Map de service soit dans les appels d'API, soit dans les requêtes DNS.
Note
Si vous AWS Cloud Map souhaitez créer un enregistrement SRV lorsque vous enregistrez une instance et que vous utilisez un système qui nécessite un format SRV spécifique (tel que HAProxy
), spécifiez ce qui suit pour le nom du service : -
Commencez le nom par un trait de soulignement (_), par exemple _exampleservice.
-
Terminez le nom par
.
_protocol, par exemple. _tcp.
Lorsque vous enregistrez une instance, AWS Cloud Map créez un enregistrement SRV et attribuez un nom en concaténant le nom du service et le nom de l'espace de noms, par exemple :
_exampleservice._tcp.example.com
-
-
(Facultatif) Dans Description du service, entrez une description du service. La description que vous entrez ici apparaît sur la page Services et sur la page détaillée de chaque service.
-
Si l'espace de noms prend en charge les requêtes DNS, sous Configuration de la découverte des services, vous pouvez configurer la découvrabilité au niveau du service. Choisissez entre autoriser à la fois les appels d'API et les requêtes DNS ou uniquement les appels d'API pour la découverte d'instances dans ce service.
Note
Si vous choisissez les appels d'API, aucun enregistrement SRV ne AWS Cloud Map sera créé lorsque vous enregistrez une instance.
Si vous choisissez API et DNS, procédez comme suit pour configurer les enregistrements DNS. Vous pouvez ajouter ou supprimer des enregistrements DNS.
-
Pour la politique de routage, sélectionnez la politique de routage Amazon Route 53 pour les enregistrements DNS AWS Cloud Map créés lorsque vous enregistrez des instances. Vous pouvez choisir entre le routage pondéré et le routage des réponses à valeurs multiples. Pour plus d’informations, consultez Stratégie de routage.
Note
Vous ne pouvez pas utiliser la console AWS Cloud Map pour configurer la création d'un enregistrement d'alias Route 53 lorsque vous enregistrez une instance. Si vous AWS Cloud Map souhaitez créer des enregistrements d'alias pour un équilibreur de charge Elastic Load Balancing lorsque vous enregistrez des instances par programmation, choisissez Weighted routing for Routing policy.
-
Pour Type d'enregistrement, choisissez le type d'enregistrement DNS qui détermine ce que Route 53 renvoie en réponse aux requêtes DNS par AWS Cloud Map. Pour plus d’informations, consultez Type de registre.
-
Pour le TTL, spécifiez une valeur numérique pour définir la valeur du temps de vie (TTL), en secondes, au niveau du service. La valeur du TTL détermine la durée pendant laquelle les résolveurs DNS mettent en cache les informations relatives à cet enregistrement avant qu'ils ne transmettent une autre requête DNS à Amazon Route 53 pour obtenir des paramètres mis à jour.
-
-
Sous Configuration du bilan de santé, pour les options de contrôle de santé, choisissez le type de contrôle de santé applicable aux instances de service. Vous pouvez choisir de ne configurer aucun contrôle de santé, ou vous pouvez choisir entre un contrôle de santé Route 53 ou un contrôle de santé externe pour vos instances. Pour plus d’informations, consultez AWS Cloud Map configuration du contrôle de santé du service.
Note
Les contrôles de santé de Route 53 sont configurables uniquement pour les services dans des espaces de noms DNS publics.
Si vous choisissez les bilans de santé Route 53, fournissez les informations suivantes.
-
Pour le seuil de défaillance, fournissez un nombre compris entre 1 et 10 qui définit le nombre de contrôles de santé consécutifs de la Route 53 qu'une instance de service doit réussir ou échouer pour que son état de santé change.
-
Pour le protocole de vérification de l'état, sélectionnez la méthode que Route 53 utilisera pour vérifier l'état des instances de service.
-
Si vous choisissez le protocole de contrôle de santé HTTP ou HTTPS, pour Health check path, indiquez le chemin que vous souhaitez qu'Amazon Route 53 demande lors de l'exécution des contrôles de santé. Le chemin peut être n'importe quelle valeur, telle que le fichier
/docs/route53-health-check.html
. Lorsque la ressource est saine, la valeur renvoyée est un code d'état HTTP au format 2xx ou 3xx. Vous pouvez également inclure des paramètres de chaîne de requête, par exemple,/welcome.html?language=jp&login=y
. La console AWS Cloud Map ajoute automatiquement une barre oblique (/) au début.
Pour plus d'informations sur les bilans de santé de Route 53, consultez la section Comment Amazon Route 53 détermine si un bilan de santé est sain dans le manuel du développeur Amazon Route 53.
-
-
(Facultatif) Sous Balises, choisissez Ajouter des balises, puis spécifiez une clé et une valeur pour étiqueter votre espace de noms. Vous pouvez spécifier une ou plusieurs balises à ajouter à votre espace de noms. Les balises vous permettent de classer vos AWS ressources afin de les gérer plus facilement. Pour plus d’informations, consultez Marquer vos ressources AWS Cloud Map.
-
Choisissez Créer un service.
- AWS CLI
-
-
Créez un service à l'aide de la
create-service
commande. Remplacez les valeursrouges
par les vôtres.aws servicediscovery create-service \ --name
service-name
\ --namespace-idns-xxxxxxxxxxx
\ --dns-config "NamespaceId=ns-xxxxxxxxxxx
,RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A
,TTL=60
}]"Sortie :
{ "Service": { "Id": "srv-xxxxxxxxxxx", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx", "Name": "service-name", "NamespaceId": "ns-xxxxxxxxxxx", "DnsConfig": { "NamespaceId": "ns-xxxxxxxxxxx", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25" } }
-
- AWS SDK for Python (Boto3)
-
Si ce n'est pas déjà
Boto3
fait, vous trouverez les instructions d'installation, de configuration et d'utilisationBoto3
ici. -
Importez
Boto3
et utilisezservicediscovery
en tant que service.import boto3 client = boto3.client('servicediscovery')
-
Créez un service avec
create_service()
. Remplacez les valeursrouges
par les vôtres. Pour plus d'informations, consultez create_service. response = client.create_service( DnsConfig={ 'DnsRecords': [ { 'TTL':
60
, 'Type': 'A
', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx
', 'RoutingPolicy': 'MULTIVALUE
', }, Name='service-name
', NamespaceId='ns-xxxxxxxxxxx
', )Exemple de sortie de réponse
{ 'Service': { 'Arn': 'arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx', 'CreateDate': 1587081768.334, 'DnsConfig': { 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, 'Id': 'srv-xxxxxxxxxxx', 'Name': 'service-name', 'NamespaceId': 'ns-xxxxxxxxxxx', }, 'ResponseMetadata': { '...': '...', }, }
-
Étapes suivantes
Après avoir créé un service, vous pouvez enregistrer les ressources de votre application en tant qu'instances de service contenant des informations sur la manière dont votre application peut localiser la ressource. Pour plus d'informations sur l'enregistrement des instances de AWS Cloud Map service, consultezEnregistrement d'une ressource en tant qu'instance AWS Cloud Map de service.