{"id":742,"date":"2022-12-03T22:23:23","date_gmt":"2022-12-03T21:23:23","guid":{"rendered":"https:\/\/old-web.terracloud.fr\/?p=742"},"modified":"2024-03-26T11:19:29","modified_gmt":"2024-03-26T10:19:29","slug":"powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j","status":"publish","type":"post","link":"https:\/\/old-web.terracloud.fr\/en\/blog\/2022\/12\/03\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\/","title":{"rendered":"Running Power BI On-Premises Data Gateway on AWS for $0.12 a day"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"742\" class=\"elementor elementor-742\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a08e0df elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a08e0df\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-253e7fae\" data-id=\"253e7fae\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-31ee7194 elementor-widget elementor-widget-shortcode\" data-id=\"31ee7194\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><span><span><a href=\"https:\/\/old-web.terracloud.fr\/\">Accueil<\/a><\/span><\/span><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a55fd44 e-transform elementor-widget elementor-widget-heading\" data-id=\"3a55fd44\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_translateX_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37e27db2 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"37e27db2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Aujourd\u2019hui, je vais expliquer comment d\u00e9ployer une passerelle PowerBI fiable et fonctionnelle. En cadeau, des extraits de code et un repo GitHub pour d\u00e9ployer le tout en 5min avec Terraform \ud83d\ude42<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-577cc18a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"577cc18a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5679411f\" data-id=\"5679411f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5e7d3dd elementor-widget elementor-widget-heading\" data-id=\"5e7d3dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Qu\u2019est-ce qu\u2019une passerelle de donn\u00e9es locale PowerBI ? A quoi sert-elle ?\n\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b77937 elementor-widget elementor-widget-text-editor\" data-id=\"2b77937\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Pourquoi, me demandez-vous, auriez vous m\u00eame besoin de PowerBI si vous avez \u00e0 dispo le cloud AWS et son offre compl\u00e8te de services autour de la\u00a0<em>data<\/em>\u00a0(<em>pour en nommer quelques-uns: Glue pour l\u2019ETL, S3 pour le stockage, Athena pour requ\u00eater en SQL, Redshift pour l\u2019entrep\u00f4t et Quicksight pour la data visualisation<\/em>)\u00a0?<\/p><p>Bon.. vous savez que tout le monde aime Excel? Eh bien, PowerBI est le nouvel Excel\u00a0\ud83d\ude42 Sa capacit\u00e9 \u00e0 fournir de beaux graphiques (<em>si vous avez boss\u00e9 chez un \u00e9diteur de logiciel, vous savez d\u2019exp\u00e9rience qu\u2019aucun soft ne se vend sans dashboard, m\u00eame si personne ne les utilise \u00e0 la fin)<\/em>\u00a0\u00e0 partir de fichiers\u00a0.xlsx locaux et de base de donn\u00e9es fait croire aux utilisateurs que le data management est chose simple (en mettant sous le tapis les difficult\u00e9s li\u00e9es au data lineage, au cataloging et des difficutl\u00e9s \u201cmineures\u201d comme la scalabilit\u00e9, la securit\u00e9 et la gouvernance).<\/p><p>Donc vos donn\u00e9es sont dans le cloud, et quelqu\u2019un veut les analyser avec Power BI. Bon professionnel que vous \u00eates, vous ne les laissez pas ex\u00e9cuter de requ\u00eates en direct sur la BDD de prod (que celui qui n\u2019a jamais p\u00e9ch\u00e9\u2026). Voici donc \u00e0 quoi sert la \u201c<em>Passerelles de donn\u00e9es locale PowerBI\u201d\u00a0!<\/em><\/p><ul><li>La\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/data-integration\/gateway\/service-gateway-onprem#how-the-gateway-works\" target=\"_blank\" rel=\"noreferrer noopener\">passerelle sert de proxy<\/a>\u00a0sortant entre votre BDD et le service PowerBI, ce qui limite le besoin de monter un lien r\u00e9seau entre le service\/Azure (ou les utilisateurs) et la base de donn\u00e9es<\/li><\/ul><p>\u00a0<\/p><ul><li>Si vous ne controllez pas ce que les utilisateurs vont faire dans PowerBI, je vous recommande d\u2019\u00e9viter le mode\u00a0<em>Direct Query\u00a0<\/em>et de param\u00e9trer une synchronisation p\u00e9riodique des donn\u00e9es dans ce que PowerBI appelle un\u00a0<em>Dataflow<\/em>\u00a0(c\u2019est un stockage local au service que les utilisateurs vont attaquer).<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03ea712 elementor-widget elementor-widget-heading\" data-id=\"03ea712\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Voici ce que nous allons d\u00e9ployer<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-221588d elementor-widget elementor-widget-text-editor\" data-id=\"221588d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Le code dans le repo \u00e0 la fin de cet article d\u00e9ploie ce qui suit\u00a0:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a5efc30 elementor-widget elementor-widget-image\" data-id=\"a5efc30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"328\" src=\"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram-1024x420.png\" class=\"attachment-large size-large wp-image-734\" alt=\"\" srcset=\"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram-1024x420.png 1024w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram-300x123.png 300w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram-768x315.png 768w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram-1536x630.png 1536w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram-18x7.png 18w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png 1623w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c87b645 elementor-widget elementor-widget-text-editor\" data-id=\"c87b645\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Pourquoi d\u00e9ployer la Data gateway dans un AutoscalingGroup EC2\u00a0?<\/p><ul><li><strong>Le co\u00fbt\u00a0<\/strong>(et l\u2019empreinte environnementale)\u00a0: l\u2019ASG permet de\u00a0<strong>planifier la cr\u00e9ation\/suppression\u00a0<\/strong>de notre instance EC2. Pour faire une synchro incr\u00e9mentale, nous avons juste besoin de booter l\u2019instance quelques minutes avant le d\u00e9clenchement du job de synchro et de l\u2019\u00e9teindre apr\u00e8s. Dans notre cas, j\u2019utilise aussi une\u00a0<strong>requ\u00eate spot<\/strong>\u00a0qui permet encore de r\u00e9duire le co\u00fbt de ~30%.. je vais peut-\u00eatre louper un cycle de synchro si AWS n\u2019a pas de ressource dispo (REX\u00a0: en 4 mois, j\u2019ai eu 2 cycles manqu\u00e9s). Une m5a.large (type d\u2019instance qui correspond aux exigences assez \u00e9lev\u00e9es de Microsoft pour ce cas d\u2019usage) qui tourne 3 fois par jour pendant 20 minutes me co\u00fbtera $0.12\/j soit moins de $50.<\/li><li><strong>Fiabilit\u00e9 sans maintenance<\/strong>: l\u2019instance d\u00e9marre chaque fois de la m\u00eame image. De cette fa\u00e7on, je n\u2019aurai jamais de souci de type disque plein, fuite m\u00e9moire, Windows qui ralentit (oui, la passerelle\u00a0<em>doit<\/em>\u00a0tourner sous Windows server). Un des principes devops (Pets vs. Cattle) est de consid\u00e9rer les machines comme dispensables!<\/li><\/ul><p>Puisque les experts PowerBI m\u2019ont indiqu\u00e9 que la Passerelle aura besoin de\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/data-integration\/gateway\/service-gateway-monthly-updates\" target=\"_blank\" rel=\"noreferrer noopener\">mises \u00e0 jour r\u00e9guli\u00e8res<\/a>\u00a0pour suivre le cycle de release de PowerBI, mon archi initiale impliquait un pipeline\u00a0<a href=\"https:\/\/aws.amazon.com\/fr\/image-builder\/\" target=\"_blank\" rel=\"noreferrer noopener\">EC2 Image Builder<\/a>\u00a0pour g\u00e9n\u00e9rer une image machine en combinant\u00a0<em>a.\u00a0<\/em>la derni\u00e8re image (AMI) Windows\u00a0<em>b.\u00a0<\/em>la derni\u00e8re version du package d\u2019installation de passarelle PowerBI, et\u00a0<em>c.\u00a0<\/em>un script d\u2019installation-configuration de la passerelle.<\/p><p>Pauvre fou! Ce serait esp\u00e9rer que Microsoft fournisse un produit fini, installable de fa\u00e7on silencieuse. Au risque de vous d\u00e9cevoir\u00a0:<\/p><ul><li>M\u00eame si\u00a0<a href=\"https:\/\/community.powerbi.com\/t5\/Community-Blog\/Data-Gateway-Automation-using-PowerShell-Part-1\/ba-p\/1117330\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft a publi\u00e9 un module Powershell<\/a>\u00a0pour automatiser le setup, les cmdlets qu\u2019il propose permettent uniquement de cr\u00e9er un nouveau cluster mais\u00a0<strong>pas d\u2019enregistrer une nouvelle machine comme participante d\u2019un cluster existant.\u00a0<\/strong>Autant pour l\u2019idempotence.<\/li><li>La passerelle d\u00e9pend de drivers tiers. Le driver pour PostgreSQL est npgsql (dans une version assez obsol\u00e8te, la 4.0.10) qui doit \u00eatre install\u00e9e avec une option non active par default (Global Assembly Cache, ou GAC)\u00a0<strong>qui ne peut l\u2019\u00eatre via une installation silencieuse.<\/strong>\u00a0Au temps pour l\u2019automatisation.<\/li><\/ul><p>Pour ces raisons, j\u2019ai d\u00fb me r\u00e9soudre \u00e0 devoir g\u00e9n\u00e9rer l\u2019image Windows manuellement.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08533ca elementor-widget elementor-widget-heading\" data-id=\"08533ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">D\u00e9ployer l\u2019infrastructure\n\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc6d669 elementor-widget elementor-widget-text-editor\" data-id=\"bc6d669\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>L\u2019infra elle-m\u00eame est relativement simple. Dans le model Autoscaling :<\/p><ul><li>On d\u00e9finit le planning de cr\u00e9ation\/destruction<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c564ea2 elementor-widget elementor-widget-html\" data-id=\"c564ea2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/gist.github.com\/psantus\/aad5a7271c77b2d0e2666fc98dd30ff8.js\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-439c085 elementor-widget elementor-widget-text-editor\" data-id=\"439c085\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>On dit qu\u2019on prend des instances au prix spot<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23b9357 elementor-widget elementor-widget-html\" data-id=\"23b9357\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/gist.github.com\/psantus\/6393c97c917e4c07a9b29a293db49f7f.js\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60656b2 elementor-widget elementor-widget-text-editor\" data-id=\"60656b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>On donne \u00e0 l\u2019instance un r\u00f4le qui permet de s\u2019y connecter en RDP via AWS Systems Manager<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29523e3 elementor-widget elementor-widget-html\" data-id=\"29523e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/gist.github.com\/psantus\/7291710a81990ee4f38f2e05fcb4414a.js\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ba499a0 elementor-widget elementor-widget-text-editor\" data-id=\"ba499a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>On s\u2019assure que l\u2019instance peut joindre tant la BDD que le service PowerBI.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-916e79f elementor-widget elementor-widget-html\" data-id=\"916e79f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/gist.github.com\/psantus\/ddc7abf41827c3399ba63ea8d631108e.js\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8aff63d elementor-widget elementor-widget-text-editor\" data-id=\"8aff63d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Et voil\u00e0\u00a0!<\/p><p>Un code Terraform pleinement fonctionnel est dispo sur mon compte Github\u00a0:\u00a0<a href=\"https:\/\/github.com\/psantus\/powerbi-onpremises-data-gateway.terraform\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/psantus\/powerbi-onpremises-data-gateway.terraform<\/a><\/p><p>D\u00e9ployez le dans un premier temps avec l\u2019AMI Windows standard. Puis apr\u00e8s avoir fait le setup initial d\u00e9crit ci-dessous, faites un snapshot de la VM et dites \u00e0 l\u2019AutoScaling Group de l\u2019utiliser pour les d\u00e9ploiments suivants.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f60f033 elementor-widget elementor-widget-html\" data-id=\"f60f033\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/gist.github.com\/psantus\/7be7815a2effb3f569668c9843324772.js\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-825262f elementor-widget elementor-widget-heading\" data-id=\"825262f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Installation de la passerelle de donn\u00e9es PowerBI<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ad0d32 elementor-widget elementor-widget-text-editor\" data-id=\"2ad0d32\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"graf graf--p\">Apr\u00e8s que vous avez d\u00e9ploy\u00e9 l\u2019image Windows standard, vous pouvez suivre les \u00e9tapes suivantes pour installer les paquets de la passerelle PowerBI Gateway et les configurer ainsi que le service PowerBI.<\/p>\n\n<ul>\n \t<li>Connectez vous \u00e0 la machine via AWS Systems Manager<\/li>\n \t<li>Installez Powershell 7 (seule version compatible avec le module DataGateway)\u00a0:\n<\/li>\n<pre>msiexec.exe \/package https:\/\/github.com\/PowerShell\/PowerShell\/releases\/download\/v7.2.6\/PowerShell-7.2.6-win-x64.msi \/quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1<\/span><\/pre>\n<li>Lancez une session PowerShell 7 puis installez le module DataGateway\n<pre>pwsh\nInstall-Module DataGateway -Force\nImport-Module DataGateway -Force<\/pre>\n \t<li>Cr\u00e9ez une application sur l&rsquo;Azure AD. Pour ce faire vous devez \u00eatre admin Azure AD. L&rsquo;App doit avoir les permissions Tenant.ReadWrite.All sur le service PowerBI.<\/li>\n<img decoding=\"async\" src=\"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/17_FTwaUiKdkp97I4LGcX3g-300x155.png\" alt=\"\" width=\"300\" height=\"155\" class=\"alignnone size-medium wp-image-746\" srcset=\"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/17_FTwaUiKdkp97I4LGcX3g-300x155.png 300w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/17_FTwaUiKdkp97I4LGcX3g-1024x530.png 1024w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/17_FTwaUiKdkp97I4LGcX3g-768x397.png 768w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/17_FTwaUiKdkp97I4LGcX3g-18x9.png 18w, https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/17_FTwaUiKdkp97I4LGcX3g.png 1305w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n<li>G\u00e9n\u00e9rez un secret. Notez les \u00e9l\u00e9ments suivants pour la suite:\u00a0\n&#8211; App secret\u00a0\n&#8211; ClientID\n&#8211; TenantID<\/li>\n<li>Connectez vous sur le service PowerBI avec l&rsquo;App que vous venez de cr\u00e9er\u00a0: (ici je suppose que le secret a \u00e9t\u00e9 coll\u00e9 dans un fichier nomm\u00e9 \u00ab\u00a0secret.txt\u00a0\u00bb sur le Bureau\u200a-\u200an&rsquo;oubliez pas de le supprimer apr\u00e8s\u00a0!)<\/li>\n<pre># Set secret in a secure string\n$secureClientSecret = (cat .\\Desktop\\secret.txt | ConvertTo-SecureString -AsPlainText -Force)\n\n# Connect to the PowerBI Service\nConnect-DataGatewayServiceAccount -ApplicationId $AppId -ClientSecret $secureClientSecret -Tenant $TenantId\n<\/pre>\n\n<li>Installez le paquet de la passerelle PowerBI<\/li>\n<pre>Install-DataGateway -AcceptConditions\n\n# Restart the service after installation (removes some random errors)\nnet stop PBIEgwService\nnet start PBIEgwService\n<\/pre>\n\n<li>Installez le driver Postgres Npgsql v4.0.10. Seule cette version fonctionne (elle doit s&rsquo;appuyer sur la m\u00eame version de\u00a0.NET que l&rsquo;application PowerBI Gateway, cf. Microsoft site). Quand vous lancez le MSI, assurez-vous de cocher \u00ab\u00a0Npgsql GAC Installation\u00a0\u00bb.<\/li>\n<li>Cr\u00e9ez une Passerelle de donn\u00e9es sur le service PowerBI et configurez l&rsquo;application pour cr\u00e9er un cluster:<\/li>\n<pre>$GateWayDetails = Add-DataGatewayCluster -GatewayName \"My Gateway\" -RecoveryKey $secureClientSecret -OverwriteExistingGateway\n# Get gateways and find the one you just created\nGet-DataGatewayCluster\n# Put its detail in a variable \n$GateWayDetails = Get-DataGatewayCluster -Id \"xxxxxx-xxxxxx-xxxxxx-xxxxx\"<\/pre>\n<li>Donnez des droits d&rsquo;admin sur la passerelle \u00e0 un utilisateur (ou un groupe)<\/li>\n<pre>Add-DataGatewayClusterUser -GatewayClusterId $GateWayDetails.Id -PrincipalObjectId \"Azure AD User or Group ID here\" -AllowedDataSourceTypes $null -Role Admin<\/pre>\n<li>D\u00e9sormais, vous devriez voir la passerelle dans l&rsquo;interface web PowerBI Gateway <a href=\"https:\/\/app.powerbi.com\/groups\/me\/gateways\">https:\/\/app.powerbi.com\/groups\/me\/gateways<\/a><\/li>\n<li>(Nb\u00a0: vous pouvez donner des permissions plus limit\u00e9es sur la gateway, par exemple juste la possibilit\u00e9 de se connecter \u00e0 une BDD PostgreSQL mais pas d&rsquo;autres sources de donn\u00e9es)<\/li>\n<pre>\n$dsTypes = New-Object 'System.Collections.Generic.List[Microsoft.PowerBI.ServiceContracts.Api.DatasourceType]'\n$dsTypes.Add([Microsoft.PowerBI.ServiceContracts.Api.DataSourceType]::PostgreSql)\nAdd-DataGatewayClusterUser -GatewayClusterId $GateWayDetails.Id -PrincipalObjectId \"Azure AD User or Group ID here\" -AllowedDataSourceTypes $dsTypes -Role ConnectionCreator\n<\/pre>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8a9e7f elementor-widget elementor-widget-heading\" data-id=\"b8a9e7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ressources<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6f1d9c elementor-widget elementor-widget-text-editor\" data-id=\"a6f1d9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"graf graf--p\">le code Terraform d\u00e9montr\u00e9 dans ce post est dispo dans un repo sur mon compte Github <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/github.com\/psantus\/powerbi-onpremises-data-gateway.terraform\" target=\"_blank\" rel=\"nofollow noopener noopener noopener noopener noopener\" data-href=\"https:\/\/github.com\/psantus\/powerbi-onpremises-data-gateway.terraform\">https:\/\/github.com\/psantus\/powerbi-onpremises-data-gateway.terraform<\/a><\/p><p class=\"graf graf--p\">Si vous avez trouv\u00e9 ce post utile, ou que vous avez la bont\u00e9 de sugg\u00e9rer des am\u00e9liorations (c\u2019est mon premier post de blog, j\u2019imagine donc qu\u2019il est largement perfectible),n\u2019h\u00e9sitez pas \u00e0 laisser un commentaire!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Today, I\u2019d like to discuss in detail how to deploy a fully functional (and reliable) Power BI Data Gateway, and the difficulties to overcome in doing so. As a Christmas present, you\u2019ll get code snippets and a fully functional GitHub repository to clone with Terraform code to deploy :)<\/p>","protected":false},"author":1,"featured_media":734,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[10,14,13,11,9],"class_list":["post-742","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-autoscalinggroup","tag-aws","tag-cloud","tag-ec2","tag-powerbi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j - TerraCloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j - TerraCloud\" \/>\n<meta property=\"og:description\" content=\"Aujourd\u2019hui, je vais expliquer comment d\u00e9ployer une passerelle PowerBI fiable et fonctionnelle. En cadeau, des extraits de code et un repo GitHub pour d\u00e9ployer le tout en 5min avec Terraform \ud83d\ude42\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n\" \/>\n<meta property=\"og:site_name\" content=\"TerraCloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-03T21:23:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-26T10:19:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1623\" \/>\n\t<meta property=\"og:image:height\" content=\"666\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"terracloud\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"terracloud\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/blog\\\/2022\\\/12\\\/03\\\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\\\/\"},\"author\":{\"name\":\"terracloud\",\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#\\\/schema\\\/person\\\/c84d6bb6d61012fe7510ecd7c4a0407b\"},\"headline\":\"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\\\/j\",\"datePublished\":\"2022-12-03T21:23:23+00:00\",\"dateModified\":\"2024-03-26T10:19:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/blog\\\/2022\\\/12\\\/03\\\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\\\/\"},\"wordCount\":1284,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/old-web.terracloud.fr\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/architecture-diagram.png\",\"keywords\":[\"autoscalinggroup\",\"aws\",\"cloud\",\"ec2\",\"powerbi\"],\"articleSection\":[\"tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/blog\\\/2022\\\/12\\\/03\\\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\\\/\",\"url\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n\",\"name\":\"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\\\/j - TerraCloud\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/old-web.terracloud.fr\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/architecture-diagram.png\",\"datePublished\":\"2022-12-03T21:23:23+00:00\",\"dateModified\":\"2024-03-26T10:19:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage\",\"url\":\"https:\\\/\\\/old-web.terracloud.fr\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/architecture-diagram.png\",\"contentUrl\":\"https:\\\/\\\/old-web.terracloud.fr\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/architecture-diagram.png\",\"width\":1623,\"height\":666},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dev.to\\\/aws-builders\\\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/old-web.terracloud.fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\\\/j\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#website\",\"url\":\"https:\\\/\\\/old-web.terracloud.fr\\\/\",\"name\":\"TerraCloud\",\"description\":\"Les deux pieds sur terre, la t\u00eate dans le Cloud\",\"publisher\":{\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/old-web.terracloud.fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#organization\",\"name\":\"TerraCloud\",\"url\":\"https:\\\/\\\/old-web.terracloud.fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/old-web.terracloud.fr\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/Logo-orange.png\",\"contentUrl\":\"https:\\\/\\\/old-web.terracloud.fr\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/Logo-orange.png\",\"width\":600,\"height\":76,\"caption\":\"TerraCloud\"},\"image\":{\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/old-web.terracloud.fr\\\/#\\\/schema\\\/person\\\/c84d6bb6d61012fe7510ecd7c4a0407b\",\"name\":\"terracloud\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/097721015575d61db7c915fea44fcf2f41f4a94b0cdc56e181770f1f623acab8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/097721015575d61db7c915fea44fcf2f41f4a94b0cdc56e181770f1f623acab8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/097721015575d61db7c915fea44fcf2f41f4a94b0cdc56e181770f1f623acab8?s=96&d=mm&r=g\",\"caption\":\"terracloud\"},\"sameAs\":[\"http:\\\/\\\/old-web.terracloud.fr\"],\"url\":\"https:\\\/\\\/old-web.terracloud.fr\\\/en\\\/blog\\\/author\\\/terracloud\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j - TerraCloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n","og_locale":"en_US","og_type":"article","og_title":"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j - TerraCloud","og_description":"Aujourd\u2019hui, je vais expliquer comment d\u00e9ployer une passerelle PowerBI fiable et fonctionnelle. En cadeau, des extraits de code et un repo GitHub pour d\u00e9ployer le tout en 5min avec Terraform \ud83d\ude42","og_url":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n","og_site_name":"TerraCloud","article_published_time":"2022-12-03T21:23:23+00:00","article_modified_time":"2024-03-26T10:19:29+00:00","og_image":[{"width":1623,"height":666,"url":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png","type":"image\/png"}],"author":"terracloud","twitter_card":"summary_large_image","twitter_misc":{"Written by":"terracloud","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#article","isPartOf":{"@id":"https:\/\/old-web.terracloud.fr\/blog\/2022\/12\/03\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\/"},"author":{"name":"terracloud","@id":"https:\/\/old-web.terracloud.fr\/#\/schema\/person\/c84d6bb6d61012fe7510ecd7c4a0407b"},"headline":"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j","datePublished":"2022-12-03T21:23:23+00:00","dateModified":"2024-03-26T10:19:29+00:00","mainEntityOfPage":{"@id":"https:\/\/old-web.terracloud.fr\/blog\/2022\/12\/03\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\/"},"wordCount":1284,"commentCount":0,"publisher":{"@id":"https:\/\/old-web.terracloud.fr\/#organization"},"image":{"@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage"},"thumbnailUrl":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png","keywords":["autoscalinggroup","aws","cloud","ec2","powerbi"],"articleSection":["tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#respond"]}]},{"@type":"WebPage","@id":"https:\/\/old-web.terracloud.fr\/blog\/2022\/12\/03\/powerbi-deployer-une-passerelle-sur-aws-pour-0-12-j\/","url":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n","name":"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j - TerraCloud","isPartOf":{"@id":"https:\/\/old-web.terracloud.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage"},"image":{"@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage"},"thumbnailUrl":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png","datePublished":"2022-12-03T21:23:23+00:00","dateModified":"2024-03-26T10:19:29+00:00","breadcrumb":{"@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#primaryimage","url":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png","contentUrl":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/10\/architecture-diagram.png","width":1623,"height":666},{"@type":"BreadcrumbList","@id":"https:\/\/dev.to\/aws-builders\/powerbi-deployer-une-passerelle-sur-aws-pour-012j-46n#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/old-web.terracloud.fr\/"},{"@type":"ListItem","position":2,"name":"PowerBI: d\u00e9ployer une passerelle sur AWS pour $0.12\/j"}]},{"@type":"WebSite","@id":"https:\/\/old-web.terracloud.fr\/#website","url":"https:\/\/old-web.terracloud.fr\/","name":"TerraCloud","description":"Feet on the ground, head in the Cloud","publisher":{"@id":"https:\/\/old-web.terracloud.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/old-web.terracloud.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/old-web.terracloud.fr\/#organization","name":"TerraCloud","url":"https:\/\/old-web.terracloud.fr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/old-web.terracloud.fr\/#\/schema\/logo\/image\/","url":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/08\/Logo-orange.png","contentUrl":"https:\/\/old-web.terracloud.fr\/wp-content\/uploads\/2023\/08\/Logo-orange.png","width":600,"height":76,"caption":"TerraCloud"},"image":{"@id":"https:\/\/old-web.terracloud.fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/old-web.terracloud.fr\/#\/schema\/person\/c84d6bb6d61012fe7510ecd7c4a0407b","name":"terracloud","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/097721015575d61db7c915fea44fcf2f41f4a94b0cdc56e181770f1f623acab8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/097721015575d61db7c915fea44fcf2f41f4a94b0cdc56e181770f1f623acab8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/097721015575d61db7c915fea44fcf2f41f4a94b0cdc56e181770f1f623acab8?s=96&d=mm&r=g","caption":"terracloud"},"sameAs":["http:\/\/old-web.terracloud.fr"],"url":"https:\/\/old-web.terracloud.fr\/en\/blog\/author\/terracloud\/"}]}},"_links":{"self":[{"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/posts\/742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/comments?post=742"}],"version-history":[{"count":7,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/posts\/742\/revisions"}],"predecessor-version":[{"id":888,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/posts\/742\/revisions\/888"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/media\/734"}],"wp:attachment":[{"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/media?parent=742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/categories?post=742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/old-web.terracloud.fr\/en\/wp-json\/wp\/v2\/tags?post=742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}