Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
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"
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
Hola @ferwe ,
Puede consultar los enlaces de la siguiente manera:
¿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.
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 [Headers-[Authorization-"Basic %encoded username password%", content-""" ]]) |
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
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 [Headers-[Authorization-"Basic %encoded username password%", content-""" ]]) |
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