Cette page explique comment diffuser une API à partir d'un domaine personnalisé dont vous êtes le propriétaire, par exemple example.com.
À la place de votre propre nom de domaine, vous pouvez utiliser un nom de domaine géré par Google. Pour plus d'informations, consultez la section Utiliser un domaine géré par Google.
Avant de commencer
Obtenez un nom de domaine auprès d'un service d'enregistrement de noms de domaine, si vous n'en possédez pas encore un pour votre API.
Configurer le projet API pour utiliser votre nom de domaine
Suivez les instructions fournies dans l'onglet approprié.
Compute Engine
La méthode recommandée pour publier une API à partir d'instances Compute Engine consiste à utiliser un équilibreur de charge sur un groupe d'instances. Vous devez réserver une adresse IP externe pour le nom de domaine et utiliser cette adresse IP externe pour l'équilibreur de charge.
Pour publier l'API à partir d'un nom de domaine, procédez comme suit :
Réservez au moins une adresse IP externe statique dans votre projet:
Attribuez le nom de votre choix à l'adresse IP réservée.
Pour le champ Type, cliquez sur Global.
Pour le champ Associé à, cliquez sur Aucun. Vous associerez l'adresse IP à un équilibreur de charge ultérieurement.
Accédez au compte de votre fournisseur de domaine et modifiez les paramètres du domaine. Vous devez créer un enregistrement A contenant le nom de l'API, par exemple myapi.example.com, avec l'adresse IP externe dans son champ de données.
Créez un groupe d'instances comprenant les instances exécutant votre API et Extensible Service Proxy (ESP) :
Cliquez sur Définir un service backend > Créer ou sélectionner un service backend.
Indiquez le nom et la description de votre choix pour cette configuration de service backend.
Dans le champ Protocol, sélectionnez le protocole à utiliser via l'équilibreur de charge, HTTP ou HTTPS.
Dans la liste Instance group (Groupe d'instances), cliquez sur votre groupe d'instances.
Dans le champ Port Numbers (Numéros de port), entrez 8080.
Cliquez sur Health check (Vérification d'état) pour configurer les vérifications d'état :
Saisissez un nom pour la configuration de la vérification de l'état.
Attribuez le port 8080.
Pour accepter les valeurs par défaut restantes, cliquez sur Enregistrer.
Pour l'instant, acceptez les valeurs par défaut pour le reste de la configuration.
Vous pourrez toujours apporter des modifications plus tard si nécessaire, telles que des ports supplémentaires.
Vous n'avez pas besoin de définir quoi que ce soit dans les règles d'hôte et de chemin d'accès ; vous pouvez tout transférer à votre API backend en utilisant les filtres Sans correspondance par défaut. Cela signifie que tout le trafic dans l'équilibreur de charge est dirigé vers l'API sur le port 8080 (le port par défaut) comme défini dans les étapes précédentes.
Cliquez sur Configuration du frontend.
Dans le champ Protocol, sélectionnez le protocole à utiliser via l'équilibreur de charge, HTTP ou HTTPS.
Dans la liste IP, cliquez sur l'adresse IP externe que vous avez créée précédemment.
Pour le protocole HTTPS, vous devez utiliser SSL. Dans la liste Certificate (Certificat), cliquez sur le certificat souhaité.
Si vous souhaitez utiliser un autre protocole, cliquez sur Add frontend IP and port (Ajouter une adresse IP et un port frontend), puis spécifiez le protocole, la même adresse IP externe et un autre port.
Pour créer l’équilibreur de charge entièrement configuré, cliquez sur Créer. Si le bouton Créer n'est pas activé, vérifiez les composants que vous venez de configurer. Une coche doit apparaître à côté de chacun des composants de configuration. S'il manque une coche, cela signifie que vous n'avez pas terminé la configuration.
Une fois que vos modifications DNS se sont propagées, les requêtes sont envoyées à votre API à l'aide de l'équilibreur de charge.
GKE
Pour diffuser une API sur un domaine pour Google Kubernetes Engine (GKE), vous devez exposer ESP en tant que service, en utilisant l'adresse IP externe renvoyée pour les paramètres DNS de votre domaine. Sachez que GKE effectue automatiquement l’équilibrage de charge.
Pour exposer votre API en tant que service, procédez comme suit :
Si vous n'en avez pas déjà un, configurez un service Kubernetes pour les backends d'API. Créez un fichier de configuration de service service.yaml avec un contenu semblable à celui-ci :
Sélectionnez votre adresse IP externe dans la liste.
Dans la liste Type, cliquez sur Statique.
Accédez au compte de votre fournisseur de domaine et modifiez les paramètres du domaine. Vous devez créer un enregistrement A contenant le nom de l'API, par exemple myapi.example.com, avec l'adresse IP externe dans son champ de données.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eThis page guides users on serving an API from a custom domain they own, such as \u003ccode\u003eexample.com\u003c/code\u003e, as an alternative to using a Google-managed domain.\u003c/p\u003e\n"],["\u003cp\u003eBefore beginning, users must obtain a domain name, verify ownership, name their API host, obtain an SSL certificate if needed, and deploy their API and Extensible Service Proxy (ESP).\u003c/p\u003e\n"],["\u003cp\u003eFor Compute Engine, users need to reserve a static external IP address, create an A record with their API name and the external IP, set up an instance group, and configure an HTTP(S) load balancer.\u003c/p\u003e\n"],["\u003cp\u003eFor Google Kubernetes Engine (GKE), users must configure a Kubernetes service, expose ESP as a service to get an external IP address, change this address to static, and create an A record with the API name and the static IP.\u003c/p\u003e\n"],["\u003cp\u003eAfter completing the configuration steps and DNS changes propagate, requests will be sent to the user's API through the load balancer or service.\u003c/p\u003e\n"]]],[],null,["# Serving an API from your domain name\n\n[OpenAPI](/endpoints/docs/openapi/serving-apis-from-domains \"View this page for the Cloud Endpoints OpenAPI docs\") \\| gRPC\n\n\u003cbr /\u003e\n\nThis page shows how to serve an API from a custom domain that you own, for\nexample, `example.com`.\n\nAs an alternative to using your own domain name, you can use a domain name\nmanaged by Google. See\n[Using a domain managed by Google](/endpoints/docs/grpc/configure-endpoints#using_a_domain_managed_by_google)\nfor more information.\n\nBefore you begin\n----------------\n\n- Obtain a domain name from a domain name registrar if you don't already have a domain name to use for your API.\n- [Verify domain ownership](/endpoints/docs/grpc/verify-domain-name).\n- [Name your API host name](/endpoints/docs/grpc/configure-endpoints) with your domain name.\n- If you are using SSL with your domain, obtain and upload your SSL certificate.\n- [Deploy your API and Extensible Service Proxy (ESP)](/endpoints/docs/grpc/deploy-api-backend).\n\nConfigure your API project to use your domain name\n--------------------------------------------------\n\nFollow the instructions in the appropriate tab. \n\n### Compute Engine\n\nThe recommended way to serve an API from Compute Engine instances is\nto use a load balancer across an instance group. You need to reserve an\nexternal IP address for the domain name and use that external IP address for\nthe load balancer.\n\nTo serve the API from a domain name:\n\n1. Reserve at least one static external IP address in your project: \n\n [Go to the External IP Addresses page](https://console.cloud.google.com/networking/addresses/add)\n 1. Assign any name you want to the reserved IP address\n 2. For **Type** , click **Global**.\n 3. For **Attached to** , click **None**. You attach the IP address to a load balancer later.\n2. Visit your domain provider account and edit your domain settings. You must create an *A record* that contains your API name, for example, `myapi.example.com` with the external IP address in its data field\n3. Create an instance group that includes the instances running your API and Extensible Service Proxy (ESP: \n\n [Go to the Create a New Instance group page](https://console.cloud.google.com/compute/instanceGroups/add)\n 1. Assign any name you want for the group and add a description.\n 2. From the **Zone** list, click the zone used by your API instance.\n 3. In the **Instance definition** list, click **Select existing instances**\n 4. In the **VM Instances** field, add the VM instance running the API.\n 5. Click **Create**.\n4. Create and configure an HTTP(S) load balancer: \n\n [Go to the Create a New HTTP(S) load balancer page](https://console.cloud.google.com/networking/loadbalancing/http/add)\n 1. Click **Define a Backend Service** \\\u003e **Create or select a backend service** . \n 2. Assign any name and description you want for this backend service configuration.\n 3. In the **Protocol** field, select the protocol you want to support through the load balancer, **HTTP** or **HTTPS**.\n 4. In the **Instance group** list, click your instance group.\n 5. In the **Port Numbers** field, enter `8080`.\n 6. Click **Health check** to configure health checks:\n - Enter a name for the health check configuration.\n - Assign the port `8080`.\n - To accept the remaining default values, click **Save**.\n 7. For now, accept the defaults for the rest of the configuration. You can make changes later as needed, such as additional ports.\n 8. You don't need to set anything in the **Host and path rules** ; you can forward everything to your backend API by using the default **Any unmatched** filters. This means that all traffic into the load balancer is directed to the API on the port `8080` (the default port) as defined in the preceding steps.\n 9. Click **Frontend configuration** . \n - In the **Protocol** field, select the protocol you want to support through the load balancer, **HTTP** or **HTTPS**.\n - In the **IP** list, click the external IP address you created earlier.\n - For the HTTPS protocol, you need to use SSL. In the **Certificate** list, click the certificate you want.\n - Optionally, if you want to support another protocol, click **Add frontend IP and port**, specify the protocol, the same external IP address, and a different port.\n 10. To create the fully configured load balancer, click **Create** . If the **Create** button isn't enabled, check the components you just configured: a checkmark should appear beside each of the configuration components. A missing checkmark means you haven't completed the configuration.\n 11. After your DNS changes propagate, requests are sent to your API by using the load balancer.\n | **Note:** If requests aren't making it through to your API backend, check your project's [firewall rules](https://console.cloud.google.com/networking/firewalls/list) to make sure your instances can accept traffic on the default ESP port `8080`. For more information, see [Firewalls](/compute/docs/networking#firewalls).\n\n### GKE\n\nTo serve an API over a domain for\nGoogle Kubernetes Engine (GKE), you need to\nexpose ESP as a service, by using the returned external IP\naddress for your domain's DNS settings. Note that GKE\nautomatically does load balancing for you.\n\nTo expose your API as a service:\n\n1. If you don't have one already, [Configure a Kubernetes service](https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/) for your API backends. Create a service configuration file, `service.yaml`, with content similar to the following: \n\n ```\n apiVersion: v1\n kind: Service\n metadata:\n name: echo\n spec:\n ports:\n - port: 80\n targetPort: 8081\n protocol: TCP\n selector:\n app: echo-app\n type: LoadBalancer\n \n ```\n - Change the `selector` label to match your backend labels (`app: echo-app` in this example)\n - Make sure the `targetPort` matches the port used by ESP configured in your API backends. ESP uses port `8081` by default.\n2. Deploy the Kubernetes service: \n\n ```\n kubectl apply -f service.yaml\n \n ```\n3. View the external IP address assigned to your exposed service: \n\n ```\n kubectl get services\n \n ```\n The output displays an `EXTERNAL-IP` address similar to the following: \n\n ```\n NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE\n hello-node 10.X.XXX.202 10X.XXX.XX.123 8080/TCP 1m\n \n ```\n | **Note:** It takes awhile for the API to be exposed as a service, and the external IP isn't visible until this process is complete. So you might have to run `kubectl get services` several times before you see the IP address.\n4. Change the generated external IP from ephemeral to static. \n\n [Go to the External IP Addresses page](https://console.cloud.google.com/networking/addresses/list)\n 1. Select your external IP address from the list.\n 2. In the **Type** list, click **Static**.\n5. Visit your domain provider account and edit your domain settings. You must create an *A record* that contains your API name, for example, `myapi.example.com`, with the external IP address in its data field.\n\nWhat's next\n-----------\n\n- [Serving multiple APIs from a domain](/endpoints/docs/grpc/deploying-apis-subdomains)"]]