Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
ferwe
Frequent Visitor

Obtenga máquinas virtuales de VCenter a través de la API

Hola

Intento obtener una lista de máquinas virtuales de VMWare VCenter.

Necesito un ID de sesión para conectarme. Si ya tengo el ID de sesión generado, puedo conectarme.

Tengo un fragmento de código para obtener el ID primero, pero no puedo hacer que funcione.

¿Alguna sugerencia?

Dejar
MyToken - let
cuerpo: Text.ToBinary(""),
url "https://vcenter.url/rest/com/vmware/cis/session",

opciones [
Encabezados de tipo de contenido"""application/json"],
Contenido-cuerpo
],
resultado: Web.Contents(url, options),
"Convertido según la tabla" - Xml.Tables(result,null,65001),
access_token "Converted to Table"{0}[SessionToken]
En
access_token,
Fuente: Json.Document(Web.Contents("https://vcenter.url/rest/vcenter/vm", [Headers-[-"vmware-api-session-id"-"MyToken", Accept-"application/json"]])),
valor: Fuente[valor],
"Converted to Table" á Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Columna Expandada1" á Table.ExpandRecordColumn(?"Converted to Table", "Column1", "memory_size_MiB", "vm", "name", "power_state", "cpu_count", "Column1.memory_size_MiB", "Column1.vm", "Column1.name", "Column1.power_state", "Column1.cpu_count"-)
En
"Columna expandida1"

5 REPLIES 5
ferwe
Frequent Visitor

Encontré la solución.

Para todos los que necesitan obtener datos vm de la API de VCenter.

Dejar
MyToken - let
cuerpo: Text.ToBinary(""),
url - "https://%VCenter%/rest/com/vmware/cis/session",
opciones [
Encabezados ?
["Content-type" ?"application/json",
Autorización"Basic %BASE64 contraseñade nombre de usuario codificado% ",
Aceptar "application/json"
],
Contenido-cuerpo
],
resultado: Json.Document(Web.Contents(url, options)),
"Convertido a tabla" - Record.ToTable(result),
"Columnas eliminadas" ? Tabla.RemoveColumns("Converted to Table","Name"-),
Valor de "Columnas eliminadas"{0}[Valor]
En
Valor
Fuente: Json.Document(Web.Contents("https://%VCenter%/rest/vcenter/vm", [Headers-[-"vmware-api-session-id"-MyToken, Accept-"application/json"]])),
valor: Fuente[valor],
"Converted to Table" á Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Columna Expandada1" á Table.ExpandRecordColumn(?"Converted to Table", "Column1", "memory_size_MiB", "vm", "name", "power_state", "cpu_count", "Column1.memory_size_MiB", "Column1.vm", "Column1.name", "Column1.power_state", "Column1.cpu_count"-)
En
"Columna expandida1"

Soy bastante nuevo en PowerBi y PowerBi Desktop, ¿podría explicar un poco cómo se debe implementar esto? ¿El texto que envió es el contenido de una consulta en blanco? ¿Cómo se administran las variables o parámetros %VCenter% y las credenciales? ¿Podría funcionar esto con una puerta de enlace de datos local para conectarse a un vCenter local?

¡Gracias de antemano por los consejos!

Óscar

v-xicai
Community Support
Community Support

Hola @ferwe ,

Puede consultar los enlaces de la siguiente manera:

API REST de Power BI

¿Qué pueden hacer los desarrolladores con la API de Power BI?

Extraiga los datos de la API REST de VMWare vCenter

Saludos

Amy

Equipo de Apoyo Comunitario _ Amy

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

ferwe
Frequent Visitor

Hola @v-xicai

Gracias por su respuesta.

Los dos primeros mensajes son sobre la API de power bi.

Pero necesito una solución para conectarme a la API de vmware.

El tercer post fue el primero que encontré y esto se trata de un problema con el certificado ssl.

Mi problema real es diferente.

Quiero obtener el "id de sesión" de vmware.

Esto se puede hacer con una solicitud de publicación y "autenticación básica" contra la url "https://%vcenter%/rest/com/vmware/cis/session"

Puedo hacer esto con el cartero y Powershell también.

Pero con Power BI sólo tengo "404 página no encontrada"

Estoy bastante seguro de que la autenticación no funciona. Pero desafortunadamente no sé cómo configurar la autenticación dentro del comando "Web.Contents" para una autenticación correcta.

Lo que sé:

1. Necesito un Post reques para obtener el ID de sesión.

2. Para hacer una solicitud de publicación necesito agregar la variable "contenido" como se describe en este enlace

3. Si agrego "contenido" a la parte "web.contents", tengo que usar la autenticación "anónima" para la fuente de datos

Así que mi problema ahora. Cómo autenticar contra el API con la autenticación básica dentro de la petición.

Refiriéndose a este enlace i debe usarlo esto fue:

Dejar
respuesta: Web.Contents("https://%vcenter%/rest/com/vmware/cis/session",

[Headers-[Authorization-"Basic %encoded username password%", content-""" ]])

En
Respuesta

Pero esto no funciona.

Pregunta final.

¿Cómo enviar una solicitud de "publicación" con autenticación básica y sin contenido dentro del elemento web.contents?

O con otras palabras.

¿Alguien tiene un ejemplo de código para que PowerBI se conecte a la API de VCenter?

saludos

ferwe
Frequent Visitor

Hola @v-xicai

Gracias por su respuesta.

Los dos primeros mensajes son sobre la API de power bi.

Pero necesito una solución para conectarme a la API de vmware.

El tercer post fue el primero que encontré y esto se trata de un problema con el certificado ssl.

Mi problema real es diferente.

Quiero obtener el "id de sesión" de vmware.

Esto se puede hacer con una solicitud de publicación y "autenticación básica" contra la url "https://%vcenter%/rest/com/vmware/cis/session"

Puedo hacer esto con el cartero y Powershell también.

Pero con Power BI sólo tengo "404 página no encontrada"

Estoy bastante seguro de que la autenticación no funciona. Pero desafortunadamente no sé cómo configurar la autenticación dentro del comando "Web.Contents" para una autenticación correcta.

Lo que sé:

1. Necesito un Post reques para obtener el ID de sesión.

2. Para hacer una solicitud de publicación necesito agregar la variable "contenido" como se describe en este enlace

3. Si agrego "contenido" a la parte "web.contents", tengo que usar la autenticación "anónima" para la fuente de datos

Así que mi problema ahora. Cómo autenticar contra el API con la autenticación básica dentro de la petición.

Refiriéndose a este enlace i debe usarlo esto fue:

Dejar
respuesta: Web.Contents("https://%vcenter%/rest/com/vmware/cis/session",

[Headers-[Authorization-"Basic %encoded username password%", content-""" ]])

En
Respuesta

Pero esto no funciona.

Pregunta final.

¿Cómo enviar una solicitud de "publicación" con autenticación básica y sin contenido dentro del elemento web.contents?

O con otras palabras.

¿Alguien tiene un ejemplo de código para que PowerBI se conecte a la API de VCenter?

saludos

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.