Configurar Directorio de servicios

En esta página se muestra cómo configurar un espacio de nombres de Directorio de servicios, registrar un servicio en el espacio de nombres y añadir endpoints a un servicio. Puedes crear un espacio de nombres al registrar un servicio o antes de registrarlo.

Antes de ejecutar los comandos que se indican en esta página, familiarízate con los conceptos que se explican en la descripción general de Service Directory y los términos clave relacionados con Service Directory.

Configurar el proyecto

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Service Directory API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Configura gcloud CLI para que use tu identidad federada.

    Para obtener más información, consulta el artículo Iniciar sesión en la CLI de gcloud con tu identidad federada.

  6. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init

    Configurar recursos de Directorio de servicios

    Para rellenar Directorio de servicios con servicios, crea un espacio de nombres y registra tu servicio en él.

    Configurar un espacio de nombres

    Crea un espacio de nombres en tu región para el proyecto. Esta región no tiene por qué ser la misma en la que se ejecutan todos tus servicios y endpoints, pero debe estar cerca, si es posible.

    Puedes registrar tus servicios en cualquier región de Service Directory. Seguirán siendo accesibles a nivel mundial. En una región, los proyectos pueden tener varios espacios de nombres, y esos espacios de nombres pueden estar en diferentes regiones. Un solo espacio de nombres no puede abarcar varias regiones.

    Consola

    1. En la Trusted Cloud consola, ve a la página Espacios de nombres de Service Directory.

      Ir a los espacios de nombres de Directorio de servicios

    2. Haz clic en Crear espacio de nombres.
    3. En la lista Región, selecciona una región para tu espacio de nombres.
    4. En el campo Nombre del espacio de nombres, asigna un nombre al espacio de nombres.
    5. Haz clic en Crear.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    1. Crear un espacio de nombres

      gcloud service-directory namespaces create NAMESPACE \
         --location REGION
      

      Haz los cambios siguientes:

      • NAMESPACE: el nombre del espacio de nombres que vas a crear.
      • REGION: la Trusted Cloud región que contiene el espacio de nombres.
    2. Opcional: Define una política de gestión de identidades y accesos en tu espacio de nombres. De este modo, se asigna al usuario o grupo especificado el rol indicado en este espacio de nombres y en todos los servicios que pertenecen a él.

      gcloud service-directory namespaces add-iam-policy-binding NAMESPACE \
      --member user:someone@example.com \
      --role ROLE \
      --location REGION
      

      Haz los cambios siguientes:

      • NAMESPACE: el nombre del espacio de nombres que has creado.
      • ROLE: el rol que vas a conceder.
      • REGION: la Trusted Cloud región que contiene el espacio de nombres.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Api.Gax.ResourceNames;
    using Google.Cloud.ServiceDirectory.V1;
    
    public class CreateNamespaceSample
    {
        public Namespace CreateNamespace(
            string projectId = "my-project",
            string locationId = "us-east1",
            string namespaceId = "test-namespace")
        {
            // Create client
            RegistrationServiceClient registrationServiceClient = RegistrationServiceClient.Create();
            // Initialize request argument(s)
            var locationName = LocationName.FromProjectLocation(projectId, locationId);
            return registrationServiceClient.CreateNamespace(locationName, new Namespace(), namespaceId);
        }
    }
    
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func createNamespace(w io.Writer, projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    
    	ctx := context.Background()
    	// Create a registration client.
    	client, err := servicedirectory.NewRegistrationClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewRegistrationClient: %w", err)
    	}
    
    	defer client.Close()
    	// Create a Namespace.
    	req := &sdpb.CreateNamespaceRequest{
    		Parent:      fmt.Sprintf("projects/%s/locations/%s", projectID, location),
    		NamespaceId: namespaceID,
    	}
    	resp, err := client.CreateNamespace(ctx, req)
    	if err != nil {
    		return fmt.Errorf("CreateNamespace: %w", err)
    	}
    	fmt.Fprintf(w, "servicedirectory.CreateNamespace result: %s\n", resp.Name)
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.LocationName;
    import com.google.cloud.servicedirectory.v1.Namespace;
    import com.google.cloud.servicedirectory.v1.RegistrationServiceClient;
    import java.io.IOException;
    
    public class NamespacesCreate {
    
      public static void createNamespace() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        String projectId = "your-project-id";
        String locationId = "your-region";
        // This is user-created; must be unique within the project/region above.
        String namespaceId = "your-namespace";
        createNamespace(projectId, locationId, namespaceId);
      }
    
      // Create a new namespace.
      public static void createNamespace(String projectId, String locationId, String namespaceId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (RegistrationServiceClient client = RegistrationServiceClient.create()) {
    
          // The project and location to create the namespace in.
          LocationName parent = LocationName.of(projectId, locationId);
    
          // The namespace object to create. Here, we use the default instance.
          Namespace namespace = Namespace.newBuilder().build();
    
          // Send the request to create the namespace.
          Namespace createdNamespace = client.createNamespace(parent, namespace, namespaceId);
    
          // Process the response.
          System.out.println("Created Namespace: " + createdNamespace.getName());
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    
    // Imports the Google Cloud client library
    const {
      RegistrationServiceClient,
    } = require('@google-cloud/service-directory');
    
    // Creates a client
    const registrationServiceClient = new RegistrationServiceClient();
    
    // Build the location name
    const locationName = registrationServiceClient.locationPath(
      projectId,
      locationId
    );
    
    async function createNamespace() {
      const [namespace] = await registrationServiceClient.createNamespace({
        parent: locationName,
        namespaceId: namespaceId,
      });
    
      console.log(`Created namespace: ${namespace.name}`);
      return namespace;
    }
    
    return createNamespace();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\RegistrationServiceClient;
    use Google\Cloud\ServiceDirectory\V1\CreateNamespaceRequest;
    use Google\Cloud\ServiceDirectory\V1\PBNamespace;
    
    /**
     * @param string $projectId     Your Cloud project ID
     * @param string $locationId    Your GCP region
     * @param string $namespaceId   Your namespace name
     */
    function create_namespace(
        string $projectId,
        string $locationId,
        string $namespaceId
    ): void {
        // Instantiate a client.
        $client = new RegistrationServiceClient();
    
        // Run request.
        $locationName = RegistrationServiceClient::locationName($projectId, $locationId);
        $createNamespaceRequest = (new CreateNamespaceRequest())
            ->setParent($locationName)
            ->setNamespaceId($namespaceId)
            ->setNamespace(new PBNamespace());
        $namespace = $client->createNamespace($createNamespaceRequest);
    
        // Print results.
        printf('Created Namespace: %s' . PHP_EOL, $namespace->getName());
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def create_namespace(project_id: str, location: str, namespace_id: str) -> Namespace:
        """Creates a namespace in the given location.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the new namespace.
            namespace_id: A unique id for the namespace.
    
        Returns:
            The created namespace.
        """
    
        client = servicedirectory_v1.RegistrationServiceClient()
    
        namespace = servicedirectory_v1.Namespace(
            name=client.namespace_path(project_id, location, namespace_id)
        )
    
        response = client.create_namespace(
            parent=f"projects/{project_id}/locations/{location}",
            namespace=namespace,
            namespace_id=namespace_id,
        )
    
        print(f"Created namespace {response.name}.")
    
        return response
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the new namespace"
    # namespace = "The name of the namespace you are creating"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    registration_service = Google::Cloud::ServiceDirectory.registration_service
    
    # The parent path of the namespace
    parent = registration_service.location_path(
      project: project, location: location
    )
    
    # Use the Service Directory API to create the namespace
    response = registration_service.create_namespace(
      parent: parent, namespace_id: namespace
    )
    puts "Created namespace: #{response.name}"

    Configurar un servicio

    Crea un servicio en el espacio de nombres. Un servicio consta de un nombre y anotaciones opcionales relacionadas con el servicio. Hay algunas restricciones en el formato de los nombres de servicio:

    • Los nombres de los servicios deben ser únicos en un espacio de nombres.
    • Los nombres de los servicios deben seguir la convención de nomenclatura de las etiquetas DNS.

    Para crear una regla de reenvío de Private Service Connect y registrarla como servicio en el Directorio de servicios, consulta Registrar un endpoint de Private Service Connect en el Directorio de servicios.

    Para registrar un servicio estándar en Directorio de servicios, sigue estos pasos:

    Consola

    1. En la Trusted Cloud consola, ve a la página Service Directory.

      Ir al directorio de servicios

    2. Haz clic en Registrar servicio.
    3. Haz clic en Estándar y, a continuación, en Siguiente.
    4. Elige una región en la que registrar tu servicio.
    5. Elige un espacio de nombres en el que registrar tu servicio. Si no tienes un espacio de nombres, sigue estos pasos para crear uno:
      1. En el cuadro Espacio de nombres, haz clic en Crear espacio de nombres.
      2. Escribe el nombre del espacio de nombres.
      3. Haz clic en Crear.
    6. Introduce un nombre de servicio.
    7. Opcional: Si quieres añadir anotaciones al servicio, haz lo siguiente:
      1. Haz clic en Añadir anotación.
      2. Añada una clave y un valor.
      3. Para añadir más anotaciones, vuelve a hacer clic en Añadir anotación.
    8. Haz clic en Crear.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    1. Crea un servicio en un espacio de nombres.

      gcloud service-directory services create SERVICE \
         --annotations KEY_1=VALUE_1,KEY_2=VALUE_2 \
         --namespace NAMESPACE \
         --location REGION
      

      Haz los cambios siguientes:

      • SERVICE: el nombre del servicio que vas a crear.
      • NAMESPACE: el nombre del espacio de nombres que contiene tu servicio.
      • REGION: la Trusted Cloud región que contiene el espacio de nombres.
      • KEY_1,VALUE_1,KEY_2, VALUE_2: conjunto de cadenas de clave y valor en pares.
    2. Opcional: Define una política de gestión de identidades y accesos en tu servicio. De esta forma, el usuario o grupo especificado obtiene el rol indicado para este servicio y todos los endpoints que le pertenecen.

      gcloud service-directory services add-iam-policy-binding SERVICE \
      --member user:someone@example.com \
      --role ROLE \
      --namespace NAMESPACE \
      --location REGION
      

      Haz los cambios siguientes:

      • SERVICE: el nombre que le has dado a tu servicio.
      • NAMESPACE: el nombre del espacio de nombres que contiene tu servicio
      • ROLE: el rol que vas a conceder.
      • REGION: la Trusted Cloud región que contiene el espacio de nombres.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Cloud.ServiceDirectory.V1;
    
    public class CreateServiceSample
    {
        public Service CreateService(
            string projectId = "my-project",
            string locationId = "us-east1",
            string namespaceId = "test-namespace",
            string serviceId = "test-service")
        {
            // Create client
            RegistrationServiceClient registrationServiceClient = RegistrationServiceClient.Create();
            // Initialize request argument(s)
            var namespaceName = NamespaceName.FromProjectLocationNamespace(projectId, locationId, namespaceId);
            return registrationServiceClient.CreateService(namespaceName, new Service(), serviceId);
        }
    }
    
    
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func createService(w io.Writer, projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    	serviceID := "golang-test-service"
    
    	ctx := context.Background()
    	// Create a registration client.
    	client, err := servicedirectory.NewRegistrationClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewRegistrationClient: %w", err)
    	}
    
    	defer client.Close()
    	// Create a Service.
    	req := &sdpb.CreateServiceRequest{
    		Parent:    fmt.Sprintf("projects/%s/locations/%s/namespaces/%s", projectID, location, namespaceID),
    		ServiceId: serviceID,
    		Service: &sdpb.Service{
    			Annotations: map[string]string{
    				"key1": "value1",
    				"key2": "value2",
    			},
    		},
    	}
    	service, err := client.CreateService(ctx, req)
    	if err != nil {
    		return fmt.Errorf("CreateSerice: %w", err)
    	}
    	fmt.Fprintf(w, "servicedirectory.Createservice result %s\n", service.Name)
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.NamespaceName;
    import com.google.cloud.servicedirectory.v1.RegistrationServiceClient;
    import com.google.cloud.servicedirectory.v1.Service;
    import java.io.IOException;
    
    public class ServicesCreate {
    
      public static void createService() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // These variables should refer to an existing Service Directory namespace.
        String projectId = "your-project-id";
        String locationId = "your-region";
        String namespaceId = "your-namespace";
        // This is user-created; must be unique within the namespace above.
        String serviceId = "your-service";
        createService(projectId, locationId, namespaceId, serviceId);
      }
    
      // Create a new service.
      public static void createService(
          String projectId, String locationId, String namespaceId, String serviceId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (RegistrationServiceClient client = RegistrationServiceClient.create()) {
    
          // The namespace to create the service in.
          NamespaceName parent = NamespaceName.of(projectId, locationId, namespaceId);
    
          // The service object to create.
          // Optionally add some annotations for the service.
          Service service = Service.newBuilder().putAnnotations("protocol", "tcp").build();
    
          // Send the request to create the namespace.
          Service createdService = client.createService(parent, service, serviceId);
    
          // Process the response.
          System.out.println("Created Service: " + createdService.getName());
          System.out.println("Annotations: " + createdService.getAnnotationsMap());
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    // const serviceId = 'my-service';
    
    // Imports the Google Cloud client library
    const {
      RegistrationServiceClient,
    } = require('@google-cloud/service-directory');
    
    // Creates a client
    const registrationServiceClient = new RegistrationServiceClient();
    
    // Build the namespace name
    const namespaceName = registrationServiceClient.namespacePath(
      projectId,
      locationId,
      namespaceId
    );
    
    async function createService() {
      const [service] = await registrationServiceClient.createService({
        parent: namespaceName,
        serviceId: serviceId,
      });
    
      console.log(`Created service: ${service.name}`);
      return service;
    }
    
    return createService();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\RegistrationServiceClient;
    use Google\Cloud\ServiceDirectory\V1\CreateServiceRequest;
    use Google\Cloud\ServiceDirectory\V1\Service;
    
    /**
     * @param string $projectId Your Cloud project ID
     * @param string $locationId Your GCP region
     * @param string $namespaceId Your namespace name
     * @param string $serviceId Your service name
     */
    function create_service(
        string $projectId,
        string $locationId,
        string $namespaceId,
        string $serviceId
    ): void {
        // Instantiate a client.
        $client = new RegistrationServiceClient();
    
        // Run request.
        $namespaceName = RegistrationServiceClient::namespaceName($projectId, $locationId, $namespaceId);
        $createServiceRequest = (new CreateServiceRequest())
            ->setParent($namespaceName)
            ->setServiceId($serviceId)
            ->setService(new Service());
        $service = $client->createService($createServiceRequest);
    
        // Print results.
        printf('Created Service: %s' . PHP_EOL, $service->getName());
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def create_service(
        project_id: str, location: str, namespace_id: str, service_id: str
    ) -> Service:
        """Creates a service in the given namespace.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the namespace.
            namespace_id: The id of the parent namespace.
            service_id: The id of the service you are creating. Service names must be unique within a namespace and follow
                conventions for DNS labels.
    
        Returns:
            The created service.
        """
    
        client = servicedirectory_v1.RegistrationServiceClient()
    
        service = servicedirectory_v1.Service(
            name=client.service_path(project_id, location, namespace_id, service_id)
        )
    
        response = client.create_service(
            parent=client.namespace_path(project_id, location, namespace_id),
            service=service,
            service_id=service_id,
        )
    
        print(f"Created service {response.name}.")
    
        return response
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the namespace"
    # namespace = "The name of the parent namespace"
    # service   = "The name of the service you are creating"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    registration_service = Google::Cloud::ServiceDirectory.registration_service
    
    # The parent path of the service
    parent = registration_service.namespace_path(
      project: project, location: location, namespace: namespace
    )
    
    # Use the Service Directory API to create the service
    response = registration_service.create_service parent: parent, service_id: service
    puts "Created service: #{response.name}"

    Configurar un endpoint

    Una vez que hayas registrado el servicio, añade algunos endpoints. Un endpoint consta de un nombre único, una dirección IP y un puerto opcionales, y anotaciones de clave-valor. Si se especifica, la dirección IP debe ser una dirección IPv4 o IPv6 válida.

    Consola

    1. En la Trusted Cloud consola, ve a la página Service Directory.

      Ir al directorio de servicios

    2. Haz clic en un servicio.
    3. Haz clic en Añadir endpoint.
    4. Proporciona un nombre de endpoint.
    5. Introduce una dirección IP IPv4 o IPv6.
    6. Introduce un número de puerto.
    7. Opcional: Si quieres añadir anotaciones al endpoint, haz lo siguiente:
      1. En Anotaciones, haz clic en Añadir anotación.
      2. Añada una clave y un valor.
      3. Para añadir más anotaciones, vuelve a hacer clic en Añadir anotación.
    8. Haz clic en Crear.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    Una vez que hayas registrado el servicio, añade algunos endpoints.

    gcloud service-directory endpoints create ENDPOINT \
       --address IP_ADDRESS \
       --port PORT_NUMBER \
       --annotations KEY_1=VALUE_1,KEY_2=VALUE_2 \
       --service SERVICE \
       --namespace NAMESPACE \
       --location REGION
    
    gcloud service-directory endpoints create ENDPOINT2 \
       --address IP_ADDRESS2 \
       --port PORT_NUMBER2 \
       --service SERVICE \
       --namespace NAMESPACE \
       --location REGION
    

    Haz los cambios siguientes:

    • ENDPOINT y ENDPOINT2: los nombres de los endpoints que vas a crear en tu servicio.
    • IP_ADDRESS y IP_ADDRESS2: las direcciones IPv6 e IPv4 de los endpoints, respectivamente.
    • PORT_NUMBER y PORT_NUMBER2: los puertos en los que se ejecutan los endpoints.
    • SERVICE: el nombre del servicio que contiene tu endpoint.
    • NAMESPACE: el nombre del espacio de nombres que contiene tu servicio.
    • REGION: la Trusted Cloud región que contiene el espacio de nombres.
    • KEY_1,VALUE_1,KEY_2, VALUE_2: conjunto de cadenas de clave y valor en pares.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Cloud.ServiceDirectory.V1;
    
    public class CreateEndpointSample
    {
    	public Endpoint CreateEndpoint(
            string projectId = "my-project",
            string locationId = "us-east1",
            string namespaceId = "test-namespace",
            string serviceId = "test-service",
            string endpointId = "test-endpoint")
        {
            RegistrationServiceClient registrationServiceClient = RegistrationServiceClient.Create();
            var serviceName = ServiceName.FromProjectLocationNamespaceService(projectId, locationId, namespaceId, serviceId);
            return registrationServiceClient.CreateEndpoint(serviceName, new Endpoint(), endpointId);
        }
    }
    
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func createEndpoint(w io.Writer, projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    	serviceID := "golang-test-service"
    	endpointID := "golang-test-endpoint"
    
    	ctx := context.Background()
    	// Create a registration client.
    	client, err := servicedirectory.NewRegistrationClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewRegistrationClient: %w", err)
    	}
    
    	defer client.Close()
    	// Create an Endpoint.
    	req := &sdpb.CreateEndpointRequest{
    		Parent:     fmt.Sprintf("projects/%s/locations/%s/namespaces/%s/services/%s", projectID, location, namespaceID, serviceID),
    		EndpointId: endpointID,
    		Endpoint: &sdpb.Endpoint{
    			Address: "8.8.8.8",
    			Port:    8080,
    			Annotations: map[string]string{
    				"key1": "value1",
    				"key2": "value2",
    			},
    		},
    	}
    	endpoint, err := client.CreateEndpoint(ctx, req)
    	if err != nil {
    		return fmt.Errorf("CreateEndpoint: %w", err)
    	}
    	fmt.Fprintf(w, "servicedirectory.CreateEndpoint result: %s", endpoint.Name)
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.Endpoint;
    import com.google.cloud.servicedirectory.v1.RegistrationServiceClient;
    import com.google.cloud.servicedirectory.v1.ServiceName;
    import java.io.IOException;
    
    public class EndpointsCreate {
    
      public static void createEndpoint() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // These variables should refer to an existing Service Directory service.
        String projectId = "your-project-id";
        String locationId = "your-region";
        String namespaceId = "your-namespace";
        String serviceId = "your-service";
        // This is user-created; must be unique within the service above.
        String endpointId = "your-endpoint";
        createEndpoint(projectId, locationId, namespaceId, serviceId, endpointId);
      }
    
      // Create a new endpoint.
      public static void createEndpoint(
          String projectId, String locationId, String namespaceId, String serviceId, String endpointId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (RegistrationServiceClient client = RegistrationServiceClient.create()) {
    
          // The service to create the endpoint in.
          ServiceName parent = ServiceName.of(projectId, locationId, namespaceId, serviceId);
    
          // The endpoint to create, with fields filled in.
          // Optionally set an IP address and port for the endpoint.
          Endpoint endpoint = Endpoint.newBuilder().setAddress("10.0.0.1").setPort(443).build();
    
          // Send the request to create the endpoint.
          Endpoint createdEndpoint = client.createEndpoint(parent, endpoint, endpointId);
    
          // Process the response.
          System.out.println("Created Endpoint: " + createdEndpoint.getName());
          System.out.println("IP Address: " + createdEndpoint.getAddress());
          System.out.println("Port: " + createdEndpoint.getPort());
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    // const serviceId = 'my-service';
    // const endpointId = 'my-endpoint';
    
    // Imports the Google Cloud client library
    const {
      RegistrationServiceClient,
    } = require('@google-cloud/service-directory');
    
    // Creates a client
    const registrationServiceClient = new RegistrationServiceClient();
    
    // Build the service name
    const serviceName = registrationServiceClient.servicePath(
      projectId,
      locationId,
      namespaceId,
      serviceId
    );
    
    async function createEndpoint() {
      const [endpoint] = await registrationServiceClient.createEndpoint({
        parent: serviceName,
        endpointId: endpointId,
        endpoint: {address: '10.0.0.1', port: 8080},
      });
    
      console.log(`Created endpoint: ${endpoint.name}`);
      return endpoint;
    }
    
    return createEndpoint();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\RegistrationServiceClient;
    use Google\Cloud\ServiceDirectory\V1\CreateEndpointRequest;
    use Google\Cloud\ServiceDirectory\V1\Endpoint;
    
    /**
     * @param string $projectId     Your Cloud project ID
     * @param string $locationId    Your GCP region
     * @param string $namespaceId   Your namespace name
     * @param string $serviceId     Your service name
     * @param string $endpointId    Your endpoint name
     * @param string $ip            (Optional) Defaults to ''
     * @param int    $port          (Optional) Defaults to 0
     */
    function create_endpoint(
        string $projectId,
        string $locationId,
        string $namespaceId,
        string $serviceId,
        string $endpointId,
        string $ip = '',
        int $port = 0
    ): void {
        // Instantiate a client.
        $client = new RegistrationServiceClient();
    
        // Construct Endpoint object.
        $endpointObject = (new Endpoint())
            ->setAddress($ip)
            ->setPort($port);
    
        // Run request.
        $serviceName = RegistrationServiceClient::serviceName($projectId, $locationId, $namespaceId, $serviceId);
        $createEndpointRequest = (new CreateEndpointRequest())
            ->setParent($serviceName)
            ->setEndpointId($endpointId)
            ->setEndpoint($endpointObject);
        $endpoint = $client->createEndpoint($createEndpointRequest);
    
        // Print results.
        printf('Created Endpoint: %s' . PHP_EOL, $endpoint->getName());
        printf('  IP: %s' . PHP_EOL, $endpoint->getAddress());
        printf('  Port: %d' . PHP_EOL, $endpoint->getPort());
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def create_endpoint(
        project_id: str,
        location: str,
        namespace_id: str,
        service_id: str,
        endpoint_id: str,
        address: str,
        port: str,
    ) -> Endpoint:
        """Creates a endpoint in the given service.
    
        An endpoint consists of a unique name, an optional IP address and a port, and key-value annotations.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the namespace.
            namespace_id: The id of the parent namespace.
            service_id: The id of the parent service.
            endpoint_id: A name for the endpoint you are creating.
            address: IP address for the endpoint.
            port: Port number for the endpoint.
    
        Returns:
            The created endpoint.
        """
    
        client = servicedirectory_v1.RegistrationServiceClient()
    
        endpoint = servicedirectory_v1.Endpoint(
            name=client.endpoint_path(
                project_id, location, namespace_id, service_id, endpoint_id
            ),
            address=address,
            port=port,
        )
    
        response = client.create_endpoint(
            parent=client.service_path(project_id, location, namespace_id, service_id),
            endpoint=endpoint,
            endpoint_id=endpoint_id,
        )
    
        print(f"Created endpoint {response.name}.")
    
        return response
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the namespace"
    # namespace = "The name of the parent namespace"
    # service   = "The name of the parent service"
    # endpoint  = "The name of the endpoint you are creating"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    registration_service = Google::Cloud::ServiceDirectory.registration_service
    
    # The parent path of the endpoint
    parent = registration_service.service_path(
      project:   project,
      location:  location,
      namespace: namespace,
      service:   service
    )
    
    # Set the IP Address and Port on the Endpoint
    endpoint_data = Google::Cloud::ServiceDirectory::V1::Endpoint.new(
      address: "10.0.0.1",
      port:    443
    )
    
    # Use the Service Directory API to create the endpoint
    response = registration_service.create_endpoint(
      parent: parent, endpoint_id: endpoint, endpoint: endpoint_data
    )
    puts "Created endpoint: #{response.name}"

    Resolver un servicio

    Service Directory permite a los clientes resolver servicios mediante DNS, HTTP y gRPC. Al resolver el servicio, se devuelven todas sus propiedades, todos sus puntos finales y todas sus anotaciones.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    gcloud service-directory services resolve SERVICE \
       --namespace NAMESPACE \
       --location REGION
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio que estás resolviendo.
    • NAMESPACE: el nombre del espacio de nombres que contiene tu servicio.
    • REGION: la Trusted Cloud región que contiene el espacio de nombres.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Cloud.ServiceDirectory.V1;
    
    public class ResolveServiceSample
    {
        public Service ResolveService(
            string projectId = "my-project",
            string locationId = "us-east1",
            string namespaceId = "test-namespace",
            string serviceId = "test-service")
        {
            // Create client
            LookupServiceClient lookupServiceClient = LookupServiceClient.Create();
            // Initialize request argument(s)
            ResolveServiceRequest request = new ResolveServiceRequest
            {
                ServiceName = ServiceName.FromProjectLocationNamespaceService(projectId, locationId, namespaceId, serviceId),
            };
            // Make the request
            ResolveServiceResponse response = lookupServiceClient.ResolveService(request);
            return response.Service;
        }
    }
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func resolveService(w io.Writer, projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    	serviceID := "golang-test-service"
    
    	ctx := context.Background()
    	// Create a lookup client.
    	resolver, err := servicedirectory.NewLookupClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewLookupClient: %w", err)
    	}
    
    	defer resolver.Close()
    	// Now Resolve the service.
    	req := &sdpb.ResolveServiceRequest{
    		Name: fmt.Sprintf("projects/%s/locations/%s/namespaces/%s/services/%s", projectID, location, namespaceID, serviceID),
    	}
    	result, err := resolver.ResolveService(ctx, req)
    	if err != nil {
    		return fmt.Errorf("ResolveService: %w", err)
    	}
    
    	fmt.Fprintf(w, "Successfully Resolved Service %v\n", result)
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.Endpoint;
    import com.google.cloud.servicedirectory.v1.LookupServiceClient;
    import com.google.cloud.servicedirectory.v1.ResolveServiceRequest;
    import com.google.cloud.servicedirectory.v1.ResolveServiceResponse;
    import com.google.cloud.servicedirectory.v1.ServiceName;
    import java.io.IOException;
    
    public class ServicesResolve {
    
      public static void resolveService() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // These variables should refer to an existing Service Directory service.
        String projectId = "your-project-id";
        String locationId = "your-region";
        String namespaceId = "your-namespace";
        String serviceId = "your-service";
        resolveService(projectId, locationId, namespaceId, serviceId);
      }
    
      // Resolve a service.
      public static void resolveService(
          String projectId, String locationId, String namespaceId, String serviceId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (LookupServiceClient client = LookupServiceClient.create()) {
          // The service to resolve.
          ServiceName name = ServiceName.of(projectId, locationId, namespaceId, serviceId);
    
          // Construct the resolve request to be sent to the client.
          ResolveServiceRequest request =
              ResolveServiceRequest.newBuilder().setName(name.toString()).build();
    
          // Send the request to resolve the service.
          ResolveServiceResponse resolveResponse = client.resolveService(request);
    
          // Process the response.
          System.out.println("Resolved Service: " + resolveResponse.getService().getName());
    
          System.out.println("Endpoints found:");
          for (Endpoint endpoint : resolveResponse.getService().getEndpointsList()) {
            System.out.println(
                endpoint.getName() + " -- " + endpoint.getAddress() + ":" + endpoint.getPort());
          }
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    // const serviceId = 'my-service';
    
    // Imports the Google Cloud client library
    const {LookupServiceClient} = require('@google-cloud/service-directory');
    
    // Creates a client
    const lookupServiceClient = new LookupServiceClient();
    
    // Build the service name
    const serviceName = lookupServiceClient.servicePath(
      projectId,
      locationId,
      namespaceId,
      serviceId
    );
    
    async function resolveService() {
      const [response] = await lookupServiceClient.resolveService({
        name: serviceName,
      });
    
      console.log(`Resolved service: ${response.service.name}`);
      for (const e of response.service.endpoints) {
        console.log(`\n${e.name}`);
        console.log(`Address: ${e.address}`);
        console.log(`Port: ${e.port}\n`);
      }
      return response.service;
    }
    
    return resolveService();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\LookupServiceClient;
    use Google\Cloud\ServiceDirectory\V1\ResolveServiceRequest;
    use Google\Cloud\ServiceDirectory\V1\Service;
    
    /**
     * @param string $projectId     Your Cloud project ID
     * @param string $locationId    Your GCP region
     * @param string $namespaceId   Your namespace name
     * @param string $serviceId     Your service name
     */
    function resolve_service(
        string $projectId,
        string $locationId,
        string $namespaceId,
        string $serviceId
    ): void {
        // Instantiate a client.
        $client = new LookupServiceClient();
    
        // Run request.
        $serviceName = LookupServiceClient::serviceName($projectId, $locationId, $namespaceId, $serviceId);
        $resolveServiceRequest = (new ResolveServiceRequest())
            ->setName($serviceName);
        $service = $client->resolveService($resolveServiceRequest)->getService();
    
        // Print results.
        printf('Resolved Service: %s' . PHP_EOL, $service->getName());
        print('Endpoints:' . PHP_EOL);
        foreach ($service->getEndpoints() as $endpoint) {
            printf('  Name: %s' . PHP_EOL, $endpoint->getName());
            printf('    IP: %s' . PHP_EOL, $endpoint->getAddress());
            printf('    Port: %d' . PHP_EOL, $endpoint->getPort());
        }
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def resolve_service(
        project_id: str, location: str, namespace_id: str, service_id: str
    ) -> ResolveServiceResponse:
        """Resolves a service in the given namespace.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the namespace.
            namespace_id: The id of the parent namespace.
            service_id: The id of the service to resolve.
    
        Returns:
            The resolved service response, which returns all properties of the service, all endpoints, and all annotations.
        """
    
        client = servicedirectory_v1.LookupServiceClient()
    
        request = servicedirectory_v1.ResolveServiceRequest(
            name=servicedirectory_v1.RegistrationServiceClient().service_path(
                project_id, location, namespace_id, service_id
            )
        )
    
        response = client.resolve_service(request=request)
    
        print("Endpoints found:")
        for endpoint in response.service.endpoints:
            print(f"{endpoint.name} -- {endpoint.address}:{endpoint.port}")
    
        return response
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the namespace"
    # namespace = "The name of the parent namespace"
    # service   = "The name of the service"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    lookup_service = Google::Cloud::ServiceDirectory.lookup_service
    
    # The name of the service
    service_path = lookup_service.service_path(
      project:   project,
      location:  location,
      namespace: namespace,
      service:   service
    )
    
    # Use the Service Directory API to resolve the service
    response = lookup_service.resolve_service name: service_path
    puts "Resolved service: #{response.service.name}"
    puts "Endpoints: "
    response.service.endpoints.each do |endpoint|
      puts "#{endpoint.name} #{endpoint.address} #{endpoint.port}"
    end

    Eliminar recursos

    Si no necesitas un recurso, puedes eliminarlo del directorio de servicios.

    Eliminar un endpoint de un servicio

    Consola

    1. En la Trusted Cloud consola, ve a la página Service Directory.

      Ir al directorio de servicios

    2. Haz clic en el servicio del que quieras eliminar el endpoint.
    3. Seleccione la casilla situada junto al endpoint que quiera eliminar.
    4. Haz clic en Eliminar.
    5. En el cuadro de diálogo de confirmación, haz clic de nuevo en Eliminar.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    gcloud service-directory endpoints delete ENDPOINT \
        --service=SERVICE \
        --namespace=NAMESPACE \
        --location=REGION
    

    Haz los cambios siguientes:

    • ENDPOINT: el nombre del endpoint que vas a eliminar.
    • SERVICE: el nombre del servicio que contiene tu endpoint.
    • NAMESPACE: el nombre del espacio de nombres que contiene tu servicio.
    • REGION: la Trusted Cloud región que contiene el espacio de nombres.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Cloud.ServiceDirectory.V1;
    
    public class DeleteEndpointSample
    {
        public void DeleteEndpoint(
            string projectId = "my-project",
            string locationId = "us-east1",
            string namespaceId = "test-namespace",
            string serviceId = "test-service",
            string endpointId = "test-endpoint")
        {
            // Create client
            RegistrationServiceClient registrationServiceClient = RegistrationServiceClient.Create();
            // Initialize request argument(s)
            var endpointName = EndpointName.FromProjectLocationNamespaceServiceEndpoint(projectId, locationId, namespaceId, serviceId, endpointId);
            registrationServiceClient.DeleteEndpoint(endpointName);
        }
    }
    
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func deleteEndpoint(projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    	serviceID := "golang-test-service"
    	endpointID := "golang-test-endpoint"
    
    	ctx := context.Background()
    	// Create a registration client.
    	client, err := servicedirectory.NewRegistrationClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewRegistrationClient: %w", err)
    	}
    
    	defer client.Close()
    	// Delete an Endpoint
    	req := &sdpb.DeleteEndpointRequest{
    		Name: fmt.Sprintf("projects/%s/locations/%s/namespaces/%s/services/%s/endpoints/%s", projectID, location, namespaceID, serviceID, endpointID),
    	}
    	if err := client.DeleteEndpoint(ctx, req); err != nil {
    		return fmt.Errorf("DeleteEndpoint: %w", err)
    	}
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.EndpointName;
    import com.google.cloud.servicedirectory.v1.RegistrationServiceClient;
    import java.io.IOException;
    
    public class EndpointsDelete {
    
      public static void deleteEndpoint() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // These variables should refer to an existing Service Directory endpoint.
        String projectId = "your-project-id";
        String locationId = "your-region";
        String namespaceId = "your-namespace";
        String serviceId = "your-service";
        String endpointId = "your-endpoint";
        deleteEndpoint(projectId, locationId, namespaceId, serviceId, endpointId);
      }
    
      // Delete an endpoint.
      public static void deleteEndpoint(
          String projectId, String locationId, String namespaceId, String serviceId, String endpointId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (RegistrationServiceClient client = RegistrationServiceClient.create()) {
    
          // The endpoint to delete.
          EndpointName endpointName =
              EndpointName.of(projectId, locationId, namespaceId, serviceId, endpointId);
    
          // Send the request to delete the endpoint.
          client.deleteEndpoint(endpointName);
    
          // Log the action.
          System.out.println("Deleted Endpoint: " + endpointName.toString());
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    // const serviceId = 'my-service';
    // const endpointId = 'my-endpoint';
    
    // Imports the Google Cloud client library
    const {
      RegistrationServiceClient,
    } = require('@google-cloud/service-directory');
    
    // Creates a client
    const registrationServiceClient = new RegistrationServiceClient();
    
    // Build the endpoint name
    const endpointName = registrationServiceClient.endpointPath(
      projectId,
      locationId,
      namespaceId,
      serviceId,
      endpointId
    );
    
    async function deleteEndpoint() {
      await registrationServiceClient.deleteEndpoint({
        name: endpointName,
      });
    
      console.log(`Deleted endpoint: ${endpointName}`);
    }
    
    deleteEndpoint();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\RegistrationServiceClient;
    use Google\Cloud\ServiceDirectory\V1\DeleteEndpointRequest;
    
    /**
     * @param string $projectId     Your Cloud project ID
     * @param string $locationId    Your GCP region
     * @param string $namespaceId   Your namespace name
     * @param string $serviceId     Your service name
     * @param string $endpointId    Your endpoint name
     */
    function delete_endpoint(
        string $projectId,
        string $locationId,
        string $namespaceId,
        string $serviceId,
        string $endpointId
    ): void {
        // Instantiate a client.
        $client = new RegistrationServiceClient();
    
        // Run request.
        $endpointName = RegistrationServiceClient::endpointName($projectId, $locationId, $namespaceId, $serviceId, $endpointId);
        $deleteEndpointRequest = (new DeleteEndpointRequest())
            ->setName($endpointName);
        $client->deleteEndpoint($deleteEndpointRequest);
    
        // Print results.
        printf('Deleted Endpoint: %s' . PHP_EOL, $endpointName);
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def delete_endpoint(
        project_id: str,
        location: str,
        namespace_id: str,
        service_id: str,
        endpoint_id: str,
    ) -> bool:
        """Deletes a endpoint in the given service.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the namespace.
            namespace_id: The id of the parent namespace.
            service_id: The id of the parent service.
            endpoint_id: The id of the endpoint to delete.
        """
    
        client = servicedirectory_v1.RegistrationServiceClient()
    
        endpoint_name = client.endpoint_path(
            project_id, location, namespace_id, service_id, endpoint_id
        )
    
        client.delete_endpoint(name=endpoint_name)
        print(f"Deleted endpoint {endpoint_name}.")
        return True
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the namespace"
    # namespace = "The name of the parent namespace"
    # service   = "The name of the parent service"
    # endpoint  = "The name of the endpoint"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    registration_service = Google::Cloud::ServiceDirectory.registration_service
    
    # The path of the endpoint
    endpoint_path = registration_service.endpoint_path(
      project:   project,
      location:  location,
      namespace: namespace,
      service:   service,
      endpoint:  endpoint
    )
    
    # Use the Service Directory API to delete the endpoint
    registration_service.delete_endpoint name: endpoint_path
    puts "Deleted endpoint: #{endpoint_path}"

    Eliminar un servicio de un espacio de nombres

    Puedes eliminar un servicio que tenga endpoints. Cuando se elimina un servicio, también se eliminan todos sus endpoints.

    Puedes eliminar un servicio que tenga una zona de Directorio de servicios que apunte a él. Las consultas DNS posteriores de ese servicio devuelven NXDOMAIN.

    Consola

    1. En la Trusted Cloud consola, ve a la página Service Directory.

      Ir al directorio de servicios

    2. Marca la casilla situada junto al servicio que quieras eliminar.
    3. Haz clic en Eliminar.
    4. En el cuadro de diálogo de confirmación, haz clic de nuevo en Eliminar.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    gcloud service-directory services delete SERVICE \
        --namespace=NAMESPACE \
        --location=REGION
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio que vas a eliminar.
    • NAMESPACE: el nombre del espacio de nombres que contiene tu servicio.
    • REGION: la Trusted Cloud región que contiene el espacio de nombres.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Cloud.ServiceDirectory.V1;
    
    public class DeleteServiceSample
    {
        public void DeleteService(
            string projectId = "my-project",
            string locationId = "us-east1",
            string namespaceId = "test-namespace",
            string serviceId = "test-service")
        {
            // Create client
            RegistrationServiceClient registrationServiceClient = RegistrationServiceClient.Create();
            // Initialize request argument(s)
            var serviceName = ServiceName.FromProjectLocationNamespaceService(projectId, locationId, namespaceId, serviceId);
            registrationServiceClient.DeleteService(serviceName);
        }
    }
    
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func deleteService(projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    	serviceID := "golang-test-service"
    
    	ctx := context.Background()
    	// Create a registration client.
    	client, err := servicedirectory.NewRegistrationClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewRegistrationClient: %w", err)
    	}
    
    	defer client.Close()
    	// Delete a service
    	req := &sdpb.DeleteServiceRequest{
    		Name: fmt.Sprintf("projects/%s/locations/%s/namespaces/%s/services/%s", projectID, location, namespaceID, serviceID),
    	}
    	if err := client.DeleteService(ctx, req); err != nil {
    		return fmt.Errorf("DeleteService: %w", err)
    	}
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.RegistrationServiceClient;
    import com.google.cloud.servicedirectory.v1.ServiceName;
    import java.io.IOException;
    
    public class ServicesDelete {
    
      public static void deleteService() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // These variables should refer to an existing Service Directory service.
        String projectId = "your-project-id";
        String locationId = "your-region";
        String namespaceId = "your-namespace";
        String serviceId = "your-service";
        deleteService(projectId, locationId, namespaceId, serviceId);
      }
    
      // Delete a service.
      public static void deleteService(
          String projectId, String locationId, String namespaceId, String serviceId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (RegistrationServiceClient client = RegistrationServiceClient.create()) {
    
          // The service to delete.
          ServiceName serviceName = ServiceName.of(projectId, locationId, namespaceId, serviceId);
    
          // Send the request to delete the service.
          client.deleteService(serviceName);
    
          // Log the action.
          System.out.println("Deleted Service: " + serviceName.toString());
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    // const serviceId = 'my-service';
    
    // Imports the Google Cloud client library
    const {
      RegistrationServiceClient,
    } = require('@google-cloud/service-directory');
    
    // Creates a client
    const registrationServiceClient = new RegistrationServiceClient();
    
    // Build the service name
    const serviceName = registrationServiceClient.servicePath(
      projectId,
      locationId,
      namespaceId,
      serviceId
    );
    
    async function deleteService() {
      await registrationServiceClient.deleteService({
        name: serviceName,
      });
    
      console.log(`Deleted service: ${serviceName}`);
    }
    
    deleteService();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\RegistrationServiceClient;
    use Google\Cloud\ServiceDirectory\V1\DeleteServiceRequest;
    
    /**
     * @param string $projectId     Your Cloud project ID
     * @param string $locationId    Your GCP region
     * @param string $namespaceId   Your namespace name
     * @param string $serviceId     Your service name
     */
    function delete_service(
        string $projectId,
        string $locationId,
        string $namespaceId,
        string $serviceId
    ): void {
        // Instantiate a client.
        $client = new RegistrationServiceClient();
    
        // Run request.
        $serviceName = RegistrationServiceClient::serviceName($projectId, $locationId, $namespaceId, $serviceId);
        $deleteServiceRequest = (new DeleteServiceRequest())
            ->setName($serviceName);
        $client->deleteService($deleteServiceRequest);
    
        // Print results.
        printf('Deleted Service: %s' . PHP_EOL, $serviceName);
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def delete_service(
        project_id: str, location: str, namespace_id: str, service_id: str
    ) -> bool:
        """Deletes a service in the given namespace.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the namespace.
            namespace_id: The id of the parent namespace.
            service_id: The id of the service to delete.
        """
    
        client = servicedirectory_v1.RegistrationServiceClient()
    
        service_name = client.service_path(project_id, location, namespace_id, service_id)
    
        client.delete_service(name=service_name)
        print(f"Deleted service {service_name}.")
        return True
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the namespace"
    # namespace = "The name of the parent namespace"
    # service   = "The name of the service"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    registration_service = Google::Cloud::ServiceDirectory.registration_service
    
    # The path of the service
    service_path = registration_service.service_path(
      project:   project,
      location:  location,
      namespace: namespace,
      service:   service
    )
    
    # Use the Service Directory API to delete the service
    registration_service.delete_service name: service_path
    puts "Deleted service: #{service_path}"

    Eliminar un espacio de nombres

    Puedes eliminar un espacio de nombres que tenga servicios y endpoints. Cuando se elimina un espacio de nombres, también se eliminan todos sus servicios y endpoints.

    Puedes eliminar un espacio de nombres que tenga una zona de Directorio de servicios que apunte a él. Las consultas de DNS posteriores (sin incluir las solicitudes de SOA o NS del origen de la zona) devuelven NXDOMAIN.

    Consola

    1. En la Trusted Cloud consola, ve a la página Espacios de nombres de Service Directory.

      Ir a los espacios de nombres de Directorio de servicios

    2. Seleccione la casilla situada junto al espacio de nombres que quiera eliminar.
    3. Haz clic en Eliminar.
    4. En el cuadro de diálogo de confirmación, haz clic de nuevo en Eliminar.

    gcloud

    Para usar Service Directory en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.

    gcloud service-directory namespaces delete NAMESPACE \
        --location=REGION
    

    Haz los cambios siguientes:

    • NAMESPACE: el nombre del espacio de nombres que vas a eliminar.
    • REGION: la Trusted Cloud región que contiene el espacio de nombres.

    C#

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de C# e instalar el SDK de servicio de directorio de servicios.

    
    using Google.Cloud.ServiceDirectory.V1;
    
    public class DeleteNamespaceSample
    {
        public void DeleteNamespace(
            string projectId = "projectId",
            string locationId = "us-east1",
            string namespaceId = "test-namespace")
        {
            // Create client
            RegistrationServiceClient registrationServiceClient = RegistrationServiceClient.Create();
            // Initialize request argument(s)
            var namespaceName = NamespaceName.FromProjectLocationNamespace(projectId, locationId, namespaceId);
            registrationServiceClient.DeleteNamespace(namespaceName);
        }
    }
    
    

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Service Directory.

    import (
    	"context"
    	"fmt"
    
    	servicedirectory "cloud.google.com/go/servicedirectory/apiv1"
    	sdpb "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb"
    )
    
    func deleteNamespace(projectID string) error {
    	// projectID := "my-project"
    	location := "us-east4"
    	namespaceID := "golang-test-namespace"
    
    	ctx := context.Background()
    	// Create a registration client.
    	client, err := servicedirectory.NewRegistrationClient(ctx)
    	if err != nil {
    		return fmt.Errorf("ServiceDirectory.NewRegistrationClient: %w", err)
    	}
    
    	defer client.Close()
    	// Delete a Namespace.
    	req := &sdpb.DeleteNamespaceRequest{
    		Name: fmt.Sprintf("projects/%s/locations/%s/namespaces/%s", projectID, location, namespaceID),
    	}
    	if err := client.DeleteNamespace(ctx, req); err != nil {
    		return fmt.Errorf("DeleteNamespace: %w", err)
    	}
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Service Directory.

    
    import com.google.cloud.servicedirectory.v1.NamespaceName;
    import com.google.cloud.servicedirectory.v1.RegistrationServiceClient;
    import java.io.IOException;
    
    public class NamespacesDelete {
    
      public static void deleteNamespace() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // These variables should refer to an existing Service Directory namespace.
        String projectId = "your-project-id";
        String locationId = "your-region";
        String namespaceId = "your-namespace";
        deleteNamespace(projectId, locationId, namespaceId);
      }
    
      // Delete a namespace.
      public static void deleteNamespace(String projectId, String locationId, String namespaceId)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests. After completing all of your requests, call
        // the "close" method on the client to safely clean up any remaining background resources.
        try (RegistrationServiceClient client = RegistrationServiceClient.create()) {
    
          // The namespace to delete.
          NamespaceName namespaceName = NamespaceName.of(projectId, locationId, namespaceId);
    
          // Send the request to delete the namespace.
          client.deleteNamespace(namespaceName);
    
          // Log the action.
          System.out.println("Deleted Namespace: " + namespaceName.toString());
        }
      }
    }

    Node.js

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de servicio de directorio de servicios de Node.js.

    //
    // TODO(developer): Uncomment these variables before running the sample.
    //
    // const projectId = 'my-project';
    // const locationId = 'us-central1';
    // const namespaceId = 'my-namespace';
    
    // Imports the Google Cloud client library
    const {
      RegistrationServiceClient,
    } = require('@google-cloud/service-directory');
    
    // Creates a client
    const registrationServiceClient = new RegistrationServiceClient();
    
    // Build the namespace name
    const namespaceName = registrationServiceClient.namespacePath(
      projectId,
      locationId,
      namespaceId
    );
    
    async function deleteNamespace() {
      await registrationServiceClient.deleteNamespace({
        name: namespaceName,
      });
    
      console.log(`Deleted namespace: ${namespaceName}`);
    }
    
    deleteNamespace();

    PHP

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de PHP e instalar el SDK de PHP de Service Directory.

    use Google\Cloud\ServiceDirectory\V1\Client\RegistrationServiceClient;
    use Google\Cloud\ServiceDirectory\V1\DeleteNamespaceRequest;
    
    /**
     * @param string $projectId     Your Cloud project ID
     * @param string $locationId    Your GCP region
     * @param string $namespaceId   Your namespace name
     */
    function delete_namespace(
        string $projectId,
        string $locationId,
        string $namespaceId
    ): void {
        // Instantiate a client.
        $client = new RegistrationServiceClient();
    
        // Run request.
        $namespaceName = RegistrationServiceClient::namespaceName($projectId, $locationId, $namespaceId);
        $deleteNamespaceRequest = (new DeleteNamespaceRequest())
            ->setName($namespaceName);
        $client->deleteNamespace($deleteNamespaceRequest);
    
        // Print results.
        printf('Deleted Namespace: %s' . PHP_EOL, $namespaceName);
    }

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Service Directory.

    def delete_namespace(project_id: str, location: str, namespace_id: str) -> bool:
        """Deletes a namespace in the given location.
    
        Args:
            project_id: Your Google Cloud project id.
            location: The Google Cloud region containing the namespace to delete.
            namespace_id: The id for the namespace to delete.
        """
    
        client = servicedirectory_v1.RegistrationServiceClient()
    
        namespace_name = client.namespace_path(project_id, location, namespace_id)
    
        client.delete_namespace(name=namespace_name)
        print(f"Deleted namespace {namespace_name}.")
        return True
    
    

    Ruby

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Ruby e instalar el SDK de servicio de directorio de servicios.

    # project   = "Your Google Cloud project ID"
    # location  = "The Google Cloud region containing the namespace"
    # namespace = "The name of the namespace"
    
    require "google/cloud/service_directory"
    
    # Initialize the client
    registration_service = Google::Cloud::ServiceDirectory.registration_service
    
    # The path of the namespace
    namespace_name = registration_service.namespace_path(
      project: project, location: location, namespace: namespace
    )
    
    # Use the Service Directory API to delete the namespace
    registration_service.delete_namespace name: namespace_name
    puts "Deleted namespace: #{namespace_name}"

    Siguientes pasos