Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ VPC Endpoint/ Referencia de la API/ API/ Etiquetas/ Consulta de recursos por etiqueta
Actualización más reciente 2024-09-14 GMT+08:00

Consulta de recursos por etiqueta

Función

Esta API se utiliza para consultar los recursos de un tenant por etiqueta.

Método de invocación

Para obtener más información, consulte Invocación a las API.

URI

POST /v1/{project_id}/{resource_type}/resource_instances/action

Tabla 1 Parámetros de enrutamiento

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto.

Mínimo: 1

Máximo: 64

resource_type

String

Especifica el tipo de recurso. El tipo es endpoint_service o punto de conexión.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Especifica el token de usuario. Se puede obtener invocando a la API de IAM. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario.

Content-Type

No

String

Especifica el tipo MIME del cuerpo de la solicitud. Se recomienda el valor application/json. Para las API utilizadas para cargar objetos o imágenes, el tipo MIME varía en función del tipo de flujo.

Valor predeterminado: application/json

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

tags

No

Array of TagValuesList objects

Se incluyen etiquetas. Se incluye un máximo de 10 claves de etiqueta y cada valor de etiqueta puede tener un máximo de 10 valores. Cada valor de etiqueta puede ser una matriz vacía, pero no puede faltar la estructura de etiqueta. Las claves de etiqueta deben ser únicas. Los valores de la misma clave de etiqueta deben ser únicos. Especifica todas las etiquetas devueltas del recurso. Las claves se encuentran en la relación AND, mientras que los valores de la estructura clave-valor se encuentran en la relación OR. Si no se especifica ninguna condición de filtrado para las etiquetas, se devuelven datos completos.

Longitud del arreglo: 1 - 10

tags_any

No

Array of TagValuesList objects

Se incluyen las etiquetas. Se incluye un máximo de 10 claves de etiqueta y cada clave de etiqueta puede tener un máximo de 10 valores. Los valores de cada clave de etiqueta pueden ser una matriz vacía, pero no puede faltar la estructura de etiqueta. Tanto las claves de etiqueta como los valores de la misma clave de etiqueta deben ser únicos. Especifica recursos, incluidas las etiquetas devueltas. Las claves y los valores de la estructura clave-valor están en la relación OR. Si no se especifica ninguna condición de filtrado, se devuelven los datos completos.

Longitud del arreglo: 1 - 10

not_tags

No

Array of TagValuesList objects

Se excluyen las etiquetas, se incluye un máximo de 10 claves de etiqueta y cada valor de etiqueta puede tener un máximo de 10 valores. Cada valor de etiqueta puede ser una matriz vacía, pero no puede faltar la estructura de etiqueta. Las claves de etiqueta deben ser únicas. Los valores de la misma clave de etiqueta deben ser únicos. Especifica recursos, excluidas las etiquetas devueltas. Las claves se encuentran en la relación AND, mientras que los valores de la estructura clave-valor se encuentran en la relación OR. Si no se especifica ninguna condición de filtrado, se devuelven los datos completos.

Longitud del arreglo: 1 - 10

not_tags_any

No

Array of TagValuesList objects

Se excluyen las etiquetas, se incluye un máximo de 10 claves de etiqueta y cada valor de etiqueta puede tener un máximo de 10 valores. Cada valor de etiqueta puede ser una matriz vacía, pero no puede faltar la estructura de etiqueta. Las claves de etiqueta deben ser únicas. Los valores de la misma clave de etiqueta deben ser únicos. Especifica recursos, excluidas las etiquetas devueltas. Las claves se encuentran en la relación AND, mientras que los valores de la estructura clave-valor se encuentran en la relación OR. Si no se especifica ninguna condición de filtrado, se devuelven los datos completos.

Longitud del arreglo: 1 - 10

sys_tags

No

Array of TagValuesList objects

Especifica las etiquetas del sistema.

limit

No

String

Especifica el número de registros que se van a consultar. Este parámetro es igual cuando la acción está configurada para contar. Si la action se define como filtrar, el valor predeterminado es 1000. El valor máximo del límite es 1000 y el valor mínimo es 1.

offset

No

String

Especifica la posición y el desfase del índice. La consulta comienza a partir de los datos después del primer desfase de datos. Este parámetro es igual cuando la acción está configurada para contar. Si la acción se establece en filtro, el valor predeterminado es 0, lo que indica que la consulta comienza desde los primeros datos. El valor debe ser un número no negativo.

action

String

Especifica la acción, que solo puede filtrarse y contarse. Si este parámetro se establece para filtrar, la consulta se realiza en función de los criterios de filtrado. Si el parámetro se establece para contar, solo se debe devolver el número total de recursos.

matches

No

Array of Match objects

Especifica el campo de búsqueda. La clave de etiqueta es el campo que debe coincidir, por ejemplo, resource_name. El valor de etiqueta indica el valor coincidente. La clave de la etiqueta es un valor fijo del diccionario y no puede ser una clave duplicada o una clave no admitida. Especifica si se requiere una coincidencia difusa basada en el valor de la clave de etiqueta. Por ejemplo, si la clave de etiqueta es resource_name, se utiliza la búsqueda difusa (no distingue entre mayúsculas y minúsculas) de forma predeterminada. Si el valor es una cadena vacía, se utiliza la coincidencia exacta. Se devuelve una lista vacía porque el resource_name de la mayoría de los servicios no se puede dejar en blanco. Si la clave de etiqueta es resource_id, se utiliza la coincidencia exacta. Solo se admite resource_name para clave. Otros valores clave estarán disponibles más adelante.

without_any_tag

No

Boolean

El valor predeterminado es false. El valor puede ser true o false. Cuando withoutAnyTag se establece en true, ignore la verificación de parámetros en tags, tagsAny, notTags y notTagsAny.

Tabla 4 TagValuesList

Parámetro

Obligatorio

Tipo

Descripción

key

String

Especifica la clave de etiqueta. Contiene un máximo de 127 caracteres Unicode. Una clave de etiqueta no se puede dejar en blanco. (El conjunto de caracteres de este parámetro no se comprueba durante la búsqueda.) La clave de etiqueta no puede dejarse en blanco, cadenas vacías o espacios. Antes de verificarlo y usarlo, elimine el valor al principio y al final de la clave de etiqueta.

Mínimo: 1

Máximo: 36

values

Array of strings

Especifica los valores de etiqueta. Cada valor de etiqueta contiene un máximo de 255 caracteres de Unicode. Antes de verificarlo y usarlo, elimine los espacios al principio y al final del valor de etiqueta. El valor de etiqueta puede ser una matriz vacía, pero no puede dejarse en blanco. Si el valor se deja en blanco, indica any_value (consulta de cualquier valor). Los valores están en la relación OR. El sistema no verifica el conjunto de caracteres de valores al buscar recursos, sino que solo verifica la longitud.

Mínimo: 1

Máximo: 255

Longitud del arreglo: 1 - 1000

Tabla 5 Match

Parámetro

Obligatorio

Tipo

Descripción

key

String

Indica la clave de etiqueta. Solo se admite resource_name para clave. Otros valores clave estarán disponibles más adelante.

Mínimo: 1

Máximo: 36

value

String

El valor. Cada valor puede contener un máximo de 255 caracteres de Unicode. No se verifica el conjunto de caracteres del valor.

Mínimo: 1

Máximo: 43

Parámetros de respuesta

Código de estado: 200

Tabla 6 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

resources

Array of ResourceInstance objects

Especifica los detalles del recurso.

total_count

Integer

Especifica el número total de registros.

Mínimo: 1

Tabla 7 ResourceInstance

Parámetro

Tipo

Descripción

resource_id

String

El ID del recurso, el ID del servicio de punto de conexión o el ID del punto de conexión.

Mínimo: 1

Máximo: 64

tags

Array of TagList objects

Indica la lista de etiquetas.

resource_name

String

Nombre del recurso. Si el recurso no tiene nombre, se devuelve el ID.

Mínimo: 0

Máximo: 128

Tabla 8 TagList

Parámetro

Tipo

Descripción

key

String

Especifica la clave de etiqueta. Una clave de etiqueta contiene un máximo de 36 caracteres de Unicode. No puede quedar en blanco. No puede contener signos iguales (=), asteriscos (*), menos que signos (<), mayor que signos (>), barras invertidas (), comas (,), barras verticales (|), y barras (/), y los caracteres primero y último no pueden ser espacios.

Mínimo: 1

Máximo: 36

value

String

Especifica la clave de etiqueta. Un valor de etiqueta contiene un máximo de 43 caracteres y puede ser una cadena vacía. No puede contener signos iguales (=), asteriscos (*), menos que signos (<), mayor que signos (>), barras invertidas (), comas (,), barras verticales (|), y barras (/), y los caracteres primero y último no pueden ser espacios.

Mínimo: 1

Máximo: 43

Ejemplo de las solicitudes

  • Consulta de puntos de conexión de VPC por etiqueta

    POST https://{endpoint}/v1/{project_id}/endpoint/resource_instances/action
    
    When action is set to filter:    "offset": "100",
        "limit": "100",
        "action": "filter",
        "matches": [
            {
                "key": "resource_name",
                "value": "resource1"
            }
        ],
        "not_tags": [
            {
                "key": "key1",
                "values": [
                    "*value1",
                    "value2"
                ]
            }
        ],
        "tags": [
            {
                "key": "key1",
                "values": [
                    "*value1",
                    "value2"
                ]
            }
        ],
        "tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "not_tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ]
    }
  • Consulta del número total de servicios de punto de conexión de VPC

    https://{endpoint}/v1/{project_id}/endpoint_service/ resource_instances/action
    
    When action is set to count:
    {
        "action": "count",
        "not_tags": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "*value2"
                ]
            }
        ],
        "tags": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            },
            {
                "key": "key2",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "not_tags_any": [
            {
                "key": "key1",
                "values": [
                    "value1",
                    "value2"
                ]
            }
        ],
        "matches": [
            {
                "key": "resource_name",
                "value": "resource1"
            }
        ]
    }

Ejemplo de las respuestas

Código de estado: 200

El servidor procesó correctamente la solicitud.

– When **action** is set to **filter**:
{
"resources": [
{
"resource_id": "cdfs_cefs_wesas_12_dsad",
"resource_name": "resource1",
"tags": [
{
"key": "key1", "value": "value1"
},
{
"key": "key2", "value": "value1"
}
]
}
],
"total_count": 1000
}

Ejemplo de código del SDK

El ejemplo de código del SDK es el siguiente.

Java

  • Consulta de puntos de conexión de VPC por etiqueta

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.vpcep.v1.region.VpcepRegion;
    import com.huaweicloud.sdk.vpcep.v1.*;
    import com.huaweicloud.sdk.vpcep.v1.model.*;
    
    
    public class ListResourceInstancesSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
    
            ICredential auth = new BasicCredentials()
                    .withAk(ak)
                    .withSk(sk);
    
            VpcepClient client = VpcepClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(VpcepRegion.valueOf("cn-north-4"))
                    .build();
            ListResourceInstancesRequest request = new ListResourceInstancesRequest();
            try {
                ListResourceInstancesResponse response = client.listResourceInstances(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • Querying the total number of VPC endpoint services

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.vpcep.v1.region.VpcepRegion;
    import com.huaweicloud.sdk.vpcep.v1.*;
    import com.huaweicloud.sdk.vpcep.v1.model.*;
    
    
    public class ListResourceInstancesSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
    
            ICredential auth = new BasicCredentials()
                    .withAk(ak)
                    .withSk(sk);
    
            VpcepClient client = VpcepClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(VpcepRegion.valueOf("cn-north-4"))
                    .build();
            ListResourceInstancesRequest request = new ListResourceInstancesRequest();
            try {
                ListResourceInstancesResponse response = client.listResourceInstances(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    

Python

  • Consulta de puntos de conexión de VPC por etiqueta

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # coding: utf-8
    
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkvpcep.v1 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.getenv("CLOUD_SDK_AK")
        sk = os.getenv("CLOUD_SDK_SK")
    
        credentials = BasicCredentials(ak, sk) \
    
        client = VpcepClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(VpcepRegion.value_of("cn-north-4")) \
            .build()
    
        try:
            request = ListResourceInstancesRequest()
            response = client.list_resource_instances(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Querying the total number of VPC endpoint services

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # coding: utf-8
    
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkvpcep.v1 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.getenv("CLOUD_SDK_AK")
        sk = os.getenv("CLOUD_SDK_SK")
    
        credentials = BasicCredentials(ak, sk) \
    
        client = VpcepClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(VpcepRegion.value_of("cn-north-4")) \
            .build()
    
        try:
            request = ListResourceInstancesRequest()
            response = client.list_resource_instances(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    

Go

  • Consulta de puntos de conexión de VPC por etiqueta

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            Build()
    
        client := vpcep.NewVpcepClient(
            vpcep.VpcepClientBuilder().
                WithRegion(region.ValueOf("cn-north-4")).
                WithCredential(auth).
                Build())
    
        request := &model.ListResourceInstancesRequest{}
    	response, err := client.ListResourceInstances(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • Querying the total number of VPC endpoint services

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            Build()
    
        client := vpcep.NewVpcepClient(
            vpcep.VpcepClientBuilder().
                WithRegion(region.ValueOf("cn-north-4")).
                WithCredential(auth).
                Build())
    
        request := &model.ListResourceInstancesRequest{}
    	response, err := client.ListResourceInstances(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

Otro más

Para obtener un ejemplo de código del SDK de más lenguajes de programación, consulta la ficha Ejemplo de código en API Explorer. El ejemplo de código del SDK se puede generar automáticamente.

Códigos de estado

Código de estado

Descripción

200

El servidor procesó correctamente la solicitud.

Códigos de error

Consulte Códigos de error.