<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geoffrey GUILBON, Author at Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/fr/blog/author/geoffrey-guilbonclever-cloud-com/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>From Code to Product</description>
	<lastBuildDate>Tue, 25 Mar 2025 15:01:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>Geoffrey GUILBON, Author at Clever Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Déployer une application Scala / Akka avec intégration PostgreSQL</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2022/06/09/deployer-une-application-scala-akka-avec-integration-postgresql/</link>
		
		<dc:creator><![CDATA[Geoffrey GUILBON]]></dc:creator>
		<pubDate>Thu, 09 Jun 2022 12:43:59 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[deployment]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?p=6842</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2022/06/akka.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="akka" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2022/06/akka.png 1400w, https://cdn.clever-cloud.com/uploads/2022/06/akka-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2022/06/akka-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:media-text {"align":"wide","mediaId":6741,"mediaLink":"https://www.clever.cloud/?attachment_id=6741","mediaType":"image","mediaWidth":30} -->
<div class="wp-block-media-text alignwide is-stacked-on-mobile" style="grid-template-columns:30% auto"><figure class="wp-block-media-text__media"><img src="https://cdn.clever-cloud.com/uploads/2022/06/akkatoolkitlogo.png" alt="akka_toolkit_logo" class="wp-image-6741 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph -->
<p>Lorsque j'ai commencé à travailler chez Clever Cloud, j'ai passé du temps à m'amuser pour me familiariser avec la plateforme et ses outils. Ce billet de blog vous présentera comment j'ai réussi à :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>créer une simple application Scala/Akka HTTP template avec persistance PostgreSQL</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lier l'application à un serveur PostgreSQL géré</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la déployer</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l'essayer !</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></div></div>
<!-- /wp:media-text -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Créer un modèle HTTP Scala/Akka 🔨</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Obtenez les sources</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://github.com/CleverCloud/scala-akka-http-postgres-example">Clonez</a> le projet généré à partir du modèle de <a href="https://github.com/akka/akka-http-quickstart-scala.g8" target="_blank" rel="noreferrer noopener">démarrage rapide Akka Github</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce service offre la possibilité de gérer un simple registre d'utilisateurs en mémoire exposant 4 routes :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Lister tous les utilisateurs</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Obtenir un utilisateur spécifique</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Créer un utilisateur</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Supprimer un utilisateur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Une description complète des commandes cURL disponibles peut être trouvée <a href="https://developer.lightbend.com/guides/akka-http-quickstart-scala/#cURL-commands" target="_blank" rel="noreferrer noopener">ici</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Ajouter des fonctionnalités supplémentaires</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quelques fonctionnalités ont été ajoutées à l'exemple original :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>stocker le registre dans une base de données PostgreSQL (au lieu d'être en mémoire)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lire les paramètres de la base de données à partir des <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/03/22/lediteur-de-variables-denvironnement-sameliore/">variables d'environnement</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>ajouter une basic auth codée en dur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Tous les paramètres peuvent être spécifiés dans le <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/blob/master/src/main/resources/application.conf">fichier application.conf</a> :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>basic auth</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>paramètres de la base de données</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les paramètres sont récupérés à partir des variables d'environnement, ou de la valeur par défaut spécifiée si aucune n'est trouvée.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">app {
  basic-auth {
    user = "foo"
    user = ${?BASIC_AUTH_USER}
    password = "bar"
    password = ${?BASIC_AUTH_PASSWORD}
  }
  routes {
    # If ask takes more time than this to complete the request is failed
    ask-timeout = 5s
  }

  db {
    host = "localhost"
    host = ${?POSTGRESQL_ADDON_HOST}
    port = "5432"
    port = ${?POSTGRESQL_ADDON_PORT}
    database = "postgres"
    database = ${?POSTGRESQL_ADDON_DB}
    user = "login"
    user = ${?POSTGRESQL_ADDON_USER}
    pass = "pass"
    pass = ${?POSTGRESQL_ADDON_PASSWORD}
  }
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exécuter l'application en utilisant Clever Cloud CLI 🚀</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une application Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever create --type sbt myakka --region par --org testorg</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande crée une nouvelle application</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>de type sbt pour <a href="https://www.clever.cloud/fr/product/applications-scala/">Scala</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>nommée myakka</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans la région de Paris</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans mon organisation de test testorg</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Activer une instance de build dédiée pour un build plus rapide (pro tip optionnel)</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Par défaut, une application nouvellement créée exécutera une instance XS qui est assez petite pour construire rapidement des applications Scala. Une façon de construire plus rapidement est d'utiliser une instance de build dédiée : Dans la console Clever Cloud, allez dans votre application -&gt; options, et cochez la case [] <code>Activer l'instance de build dédiée</code>. De cette façon, vous pouvez conserver votre instance XS pour exécuter l'application, mais vous pouvez choisir une instance XL pour le temps de build. Ou avec l'outil de ligne de commande :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever scale -a myakka --build-flavor XL</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une base de données PostgreSQL</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever addon -l myakka create postgresql-addon myakkadb</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande commande une instance d'addon PostgreSQL et la lie à <code>myakka</code>, en injectant les bonnes variables d'environnement dans l'instance de l'application pour contacter la base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La création et la migration de la base de données sont effectuées à l'aide de l'outil <a href="https://flywaydb.org/" target="_blank" rel="noreferrer noopener">flywaydb</a>. Ces scripts se trouvent dans le répertoire <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/tree/master/src/main/resources/db/migration">migration/db</a> des ressources de l'application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La migration sera automatiquement appelée une fois que vous aurez spécifié le hook de build approprié dans les variables d'environnement</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><code>CC_POST_BUILD_HOOK avec la valeur sbt flywayMigrate</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set <kbd>CC_POST_BUILD_HOOK</kbd> "sbt flywayMigrate"</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer les variables d'environnement de la basic auth</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le login et le mot de passe de la basic auth peuvent être spécifiés comme variables d'environnement en utilisant la commande <code>clever env</code>. Si aucune variable n'est trouvée, la basic auth prendra par défaut les valeurs du fichier <code>application.conf</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set BASIC_AUTH_USER &lt;YOUR_AUTH_USER&gt;
clever env -a myakka set BASIC_AUTH_PASSWORD &lt;YOUR_AUTH_PASSWORD&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Reliez votre repo local à votre instance d'application Clever Cloud.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Récupérez l'identifiant de votre application avec</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever applications</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Liez ensuite le référentiel local à l'application (en créant un fichier <code>.clever.json</code>)</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever link app_&lt;UUID&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous êtes maintenant prêt à déployer et à exécuter votre code, il suffit d'exécuter</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever deploy</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Vous pouvez maintenant suivre le processus de déploiement jusqu'à ce qu'il se termine avec succès.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Votre application fonctionne maintenant !</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Essayez-la</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Il est temps de l'expérimenter en utilisant <code>curl</code> ou votre interface graphique préférée.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Ajouter un utilisateur</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Adaptez cette commande afin d'insérer un nouvel utilisateur dans le registre :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request POST \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  --header 'Content-type: application/json' \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;' \
  --data '{
  "name": "Serge",
  "age": 42,
  "countryOfResidence": "Greenland"
}'

{
	"description": "User Serge created."
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Récupérer tous les utilisateurs</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vérifiez que l'utilisateur a été correctement créé, en obtenant la liste des utilisateurs :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request GET \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;'

{"users":[{"age":42,"countryOfResidence":"Greenland","name":"Serge"}]}</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça marche, c'est un succès ! 🎉</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2022/06/akka.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="akka" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2022/06/akka.png 1400w, https://cdn.clever-cloud.com/uploads/2022/06/akka-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2022/06/akka-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:media-text {"align":"wide","mediaId":6741,"mediaLink":"https://www.clever.cloud/?attachment_id=6741","mediaType":"image","mediaWidth":30} -->
<div class="wp-block-media-text alignwide is-stacked-on-mobile" style="grid-template-columns:30% auto"><figure class="wp-block-media-text__media"><img src="https://cdn.clever-cloud.com/uploads/2022/06/akkatoolkitlogo.png" alt="akka_toolkit_logo" class="wp-image-6741 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph -->
<p>Lorsque j'ai commencé à travailler chez Clever Cloud, j'ai passé du temps à m'amuser pour me familiariser avec la plateforme et ses outils. Ce billet de blog vous présentera comment j'ai réussi à :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>créer une simple application Scala/Akka HTTP template avec persistance PostgreSQL</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lier l'application à un serveur PostgreSQL géré</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la déployer</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l'essayer !</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></div></div>
<!-- /wp:media-text -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Créer un modèle HTTP Scala/Akka 🔨</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Obtenez les sources</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://github.com/CleverCloud/scala-akka-http-postgres-example">Clonez</a> le projet généré à partir du modèle de <a href="https://github.com/akka/akka-http-quickstart-scala.g8" target="_blank" rel="noreferrer noopener">démarrage rapide Akka Github</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce service offre la possibilité de gérer un simple registre d'utilisateurs en mémoire exposant 4 routes :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Lister tous les utilisateurs</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Obtenir un utilisateur spécifique</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Créer un utilisateur</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Supprimer un utilisateur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Une description complète des commandes cURL disponibles peut être trouvée <a href="https://developer.lightbend.com/guides/akka-http-quickstart-scala/#cURL-commands" target="_blank" rel="noreferrer noopener">ici</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Ajouter des fonctionnalités supplémentaires</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quelques fonctionnalités ont été ajoutées à l'exemple original :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>stocker le registre dans une base de données PostgreSQL (au lieu d'être en mémoire)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lire les paramètres de la base de données à partir des <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/03/22/lediteur-de-variables-denvironnement-sameliore/">variables d'environnement</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>ajouter une basic auth codée en dur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Tous les paramètres peuvent être spécifiés dans le <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/blob/master/src/main/resources/application.conf">fichier application.conf</a> :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>basic auth</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>paramètres de la base de données</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les paramètres sont récupérés à partir des variables d'environnement, ou de la valeur par défaut spécifiée si aucune n'est trouvée.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">app {
  basic-auth {
    user = "foo"
    user = ${?BASIC_AUTH_USER}
    password = "bar"
    password = ${?BASIC_AUTH_PASSWORD}
  }
  routes {
    # If ask takes more time than this to complete the request is failed
    ask-timeout = 5s
  }

  db {
    host = "localhost"
    host = ${?POSTGRESQL_ADDON_HOST}
    port = "5432"
    port = ${?POSTGRESQL_ADDON_PORT}
    database = "postgres"
    database = ${?POSTGRESQL_ADDON_DB}
    user = "login"
    user = ${?POSTGRESQL_ADDON_USER}
    pass = "pass"
    pass = ${?POSTGRESQL_ADDON_PASSWORD}
  }
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exécuter l'application en utilisant Clever Cloud CLI 🚀</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une application Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever create --type sbt myakka --region par --org testorg</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande crée une nouvelle application</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>de type sbt pour <a href="https://www.clever.cloud/fr/product/applications-scala/">Scala</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>nommée myakka</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans la région de Paris</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans mon organisation de test testorg</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Activer une instance de build dédiée pour un build plus rapide (pro tip optionnel)</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Par défaut, une application nouvellement créée exécutera une instance XS qui est assez petite pour construire rapidement des applications Scala. Une façon de construire plus rapidement est d'utiliser une instance de build dédiée : Dans la console Clever Cloud, allez dans votre application -&gt; options, et cochez la case [] <code>Activer l'instance de build dédiée</code>. De cette façon, vous pouvez conserver votre instance XS pour exécuter l'application, mais vous pouvez choisir une instance XL pour le temps de build. Ou avec l'outil de ligne de commande :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever scale -a myakka --build-flavor XL</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une base de données PostgreSQL</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever addon -l myakka create postgresql-addon myakkadb</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande commande une instance d'addon PostgreSQL et la lie à <code>myakka</code>, en injectant les bonnes variables d'environnement dans l'instance de l'application pour contacter la base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La création et la migration de la base de données sont effectuées à l'aide de l'outil <a href="https://flywaydb.org/" target="_blank" rel="noreferrer noopener">flywaydb</a>. Ces scripts se trouvent dans le répertoire <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/tree/master/src/main/resources/db/migration">migration/db</a> des ressources de l'application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La migration sera automatiquement appelée une fois que vous aurez spécifié le hook de build approprié dans les variables d'environnement</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><code>CC_POST_BUILD_HOOK avec la valeur sbt flywayMigrate</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set <kbd>CC_POST_BUILD_HOOK</kbd> "sbt flywayMigrate"</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer les variables d'environnement de la basic auth</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le login et le mot de passe de la basic auth peuvent être spécifiés comme variables d'environnement en utilisant la commande <code>clever env</code>. Si aucune variable n'est trouvée, la basic auth prendra par défaut les valeurs du fichier <code>application.conf</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set BASIC_AUTH_USER &lt;YOUR_AUTH_USER&gt;
clever env -a myakka set BASIC_AUTH_PASSWORD &lt;YOUR_AUTH_PASSWORD&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Reliez votre repo local à votre instance d'application Clever Cloud.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Récupérez l'identifiant de votre application avec</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever applications</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Liez ensuite le référentiel local à l'application (en créant un fichier <code>.clever.json</code>)</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever link app_&lt;UUID&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous êtes maintenant prêt à déployer et à exécuter votre code, il suffit d'exécuter</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever deploy</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Vous pouvez maintenant suivre le processus de déploiement jusqu'à ce qu'il se termine avec succès.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Votre application fonctionne maintenant !</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Essayez-la</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Il est temps de l'expérimenter en utilisant <code>curl</code> ou votre interface graphique préférée.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Ajouter un utilisateur</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Adaptez cette commande afin d'insérer un nouvel utilisateur dans le registre :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request POST \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  --header 'Content-type: application/json' \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;' \
  --data '{
  "name": "Serge",
  "age": 42,
  "countryOfResidence": "Greenland"
}'

{
	"description": "User Serge created."
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Récupérer tous les utilisateurs</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vérifiez que l'utilisateur a été correctement créé, en obtenant la liste des utilisateurs :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request GET \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;'

{"users":[{"age":42,"countryOfResidence":"Greenland","name":"Serge"}]}</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça marche, c'est un succès ! 🎉</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
