# ServerLess

# Cloud Run

[![image-1670242227408.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670242227408.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670242227408.png)

## CPU uniquement alloué pendant le traitement des requêtes

### Processeur

<table border="1" cellpadding="0" cellspacing="0" dir="ltr" id="bkmrk-niveau-nb-de-process"><colgroup><col width="100"></col><col width="365"></col><col width="365"></col><col width="318"></col><col width="199"></col></colgroup><tbody><tr><td data-sheets-value="{"1":2,"2":"Niveau"}">**Niveau**</td><td data-sheets-value="{"1":2,"2":"Nb de processeur max (virtuel-seconde) "}">**Nb de processeur max (virtuel-seconde)**</td><td data-sheets-value="{"1":2,"2":"Prix / Unité processeur (virtuel-seconde)"}">**Prix / Unité processeur (virtuel-seconde)**</td><td data-sheets-value="{"1":2,"2":"Remise sur engagement d'utilisation"}">**Remise sur engagement d'utilisation**</td><td data-sheets-value="{"1":2,"2":"Prix en cas d'inactivité"}">**Prix en cas d'inactivité**</td></tr><tr><td data-sheets-value="{"1":2,"2":"Gratuit"}">Gratuit</td><td data-sheets-value="{"1":2,"2":"180 000"}">180 000</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td></tr><tr><td data-sheets-value="{"1":3,"3":1}">1</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.000024}">0,000024</td><td data-sheets-value="{"1":3,"3":0.00001992}">0,00001992</td><td data-sheets-value="{"1":3,"3":0.0000025}">0,0000025</td></tr><tr><td data-sheets-value="{"1":3,"3":2}">2</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.0000336}">0,0000336</td><td data-sheets-value="{"1":3,"3":0.000027888}">0,000027888</td><td data-sheets-value="{"1":3,"3":0.0000035}">0,0000035</td></tr></tbody></table>

### Mémoire Vive

<table border="1" cellpadding="0" cellspacing="0" dir="ltr" id="bkmrk-niveau-nb-de-ram-max"><colgroup><col width="100"></col><col width="365"></col><col width="365"></col><col width="318"></col><col width="199"></col></colgroup><tbody><tr><td data-sheets-value="{"1":2,"2":"Niveau"}">Niveau</td><td data-sheets-value="{"1":2,"2":"Nb de RAM max (Go-seconde)"}">Nb de RAM max (Go-seconde)</td><td data-sheets-value="{"1":2,"2":"Prix Unité de RAM (Go-seconde)"}">Prix Unité de RAM (Go-seconde)</td><td data-sheets-value="{"1":2,"2":"Remise sur engagement d'utilisation"}">Remise sur engagement d'utilisation</td><td data-sheets-value="{"1":2,"2":"Prix en cas d'inactivité"}">Prix en cas d'inactivité</td></tr><tr><td data-sheets-value="{"1":2,"2":"Gratuit"}">Gratuit</td><td data-sheets-value="{"1":2,"2":"360 000"}">360 000</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td></tr><tr><td data-sheets-value="{"1":3,"3":1}">1</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.0000025}">0,0000025</td><td data-sheets-value="{"1":3,"3":0.000002075}">0,000002075</td><td data-sheets-value="{"1":3,"3":0.0000025}">0,0000025</td></tr><tr><td data-sheets-value="{"1":3,"3":2}">2</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.0000035}">0,0000035</td><td data-sheets-value="{"1":3,"3":0.000002905}">0,000002905</td><td data-sheets-value="{"1":3,"3":0.0000035}">0,0000035</td></tr></tbody></table>

### Requêtes

<table border="1" cellpadding="0" cellspacing="0" dir="ltr" id="bkmrk-niveau-nombre-max-%28m"><colgroup><col width="100"></col><col width="365"></col><col width="365"></col><col width="318"></col></colgroup><tbody><tr><td data-sheets-value="{"1":2,"2":"Niveau"}">**Niveau**</td><td data-sheets-value="{"1":2,"2":"Nombre max (Million de requête)"}">**Nombre max (Million de requête)**</td><td data-sheets-value="{"1":2,"2":"Prix (Million de requête)"}">**Prix (Million de requête)**</td><td data-sheets-value="{"1":2,"2":"Remise sur engagement d'utilisation"}">**Remise sur engagement d'utilisation**</td></tr><tr><td data-sheets-value="{"1":2,"2":"Gratuit"}">Gratuit</td><td data-sheets-value="{"1":3,"3":2}">2</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td></tr><tr><td data-sheets-value="{"1":3,"3":1}">1</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.4}">0,4</td><td data-sheets-value="{"1":3,"3":0.332}">0,332</td></tr><tr><td data-sheets-value="{"1":3,"3":2}">2</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.4}">0,4</td><td data-sheets-value="{"1":3,"3":0.332}">0,332</td></tr></tbody></table>

```JavaScript
Donc un conteneur qui serait utilisé que : 100 h / mois : 

PROC : 0,000024  /s -->  0.00015 /h*u
RAM : 0,0000025  /s --> 0.00144 /h*u

Pour 100h /mois : 
(0.00144 + 0.00015)*100 = 0.159 € --> Pour un go de RAM et un VCPU
```

## CPU toujours alloué et pour les tâches

### Processeur

<table border="1" cellpadding="0" cellspacing="0" dir="ltr" id="bkmrk-niveau-nb-de-process-0"><colgroup><col width="100"></col><col width="365"></col><col width="365"></col><col width="318"></col><col width="199"></col></colgroup><tbody><tr><td data-sheets-value="{"1":2,"2":"Niveau"}">**Niveau**</td><td data-sheets-value="{"1":2,"2":"Nb de processeur max (virtuel-seconde) "}">**Nb de processeur max (virtuel-seconde)**</td><td data-sheets-value="{"1":2,"2":"Prix / Unité processeur (virtuel-seconde)"}">**Prix / Unité processeur (virtuel-seconde)**</td><td data-sheets-value="{"1":2,"2":"Remise sur engagement d'utilisation"}">**Remise sur engagement d'utilisation**</td><td data-sheets-value="{"1":2,"2":"Prix en cas d'inactivité"}">**Prix en cas d'inactivité**</td></tr><tr><td data-sheets-value="{"1":2,"2":"Gratuit"}">Gratuit</td><td data-sheets-value="{"1":2,"2":"240 000"}">240 000</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td></tr><tr><td data-sheets-value="{"1":3,"3":1}">1</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.000018}">0,000018</td><td data-sheets-value="{"1":3,"3":0.00001494}">0,00001494</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td></tr><tr><td data-sheets-value="{"1":3,"3":2}">2</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.0000216}">0,0000216</td><td data-sheets-value="{"1":3,"3":0.000017928}">0,000017928</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td></tr></tbody></table>

### Mémoire Vive

<table border="1" cellpadding="0" cellspacing="0" dir="ltr" id="bkmrk-niveau-nb-de-ram-max-0"><colgroup><col width="100"></col><col width="365"></col><col width="365"></col><col width="318"></col><col width="199"></col></colgroup><tbody><tr><td data-sheets-value="{"1":2,"2":"Niveau"}">**Niveau**</td><td data-sheets-value="{"1":2,"2":"Nb de RAM max (Go-seconde)"}">**Nb de RAM max (Go-seconde)**</td><td data-sheets-value="{"1":2,"2":"Prix Unité de RAM (Go-seconde)"}">**Prix Unité de RAM (Go-seconde)**</td><td data-sheets-value="{"1":2,"2":"Remise sur engagement d'utilisation"}">**Remise sur engagement d'utilisation**</td><td data-sheets-value="{"1":2,"2":"Prix en cas d'inactivité"}">**Prix en cas d'inactivité**</td></tr><tr><td data-sheets-value="{"1":2,"2":"Gratuit"}">Gratuit</td><td data-sheets-value="{"1":2,"2":"450 000"}">450 000</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":3,"3":0}">0</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td></tr><tr><td data-sheets-value="{"1":3,"3":1}">1</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.000002}">0,000002</td><td data-sheets-value="{"1":3,"3":0.00000166}">0,00000166</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td></tr><tr><td data-sheets-value="{"1":3,"3":2}">2</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td><td data-sheets-value="{"1":3,"3":0.0000024}">0,0000024</td><td data-sheets-value="{"1":3,"3":0.000001992}">0,000001992</td><td data-sheets-value="{"1":2,"2":"N/A"}">N/A</td></tr></tbody></table>

### Temps d'instance de conteneur facturable

Le temps facturable agrégé sur l'ensemble des instances de conteneur Cloud Run est exposé en tant que métrique Cloud Monitoring. Pour en savoir plus, consultez la section Métrique `container/billable_instance_time` .

Le temps d'utilisation de l'instance de conteneur facturable est arrondi à la centaine de millisecondes la plus proche et dépend de la configuration d'allocation de processeurs de votre service Cloud Run :

[![image-1670242357499.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670242357499.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670242357499.png)

# Google Cloud Function

## **<u>Prix des requêttes</u>**

<table border="1" id="bkmrk-appels-%2F-mois-prix-%C2%A0" style="border-collapse: collapse; width: 48.2716%; height: 272px;"><tbody><tr style="height: 69px;"><td style="width: 50%; height: 69px;">#### <span style="text-decoration: underline;">**Nombre / mois**</span>

</td><td style="width: 50%; height: 69px;">#### <span style="text-decoration: underline;">**Prix**</span>

</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"> 2 000 000</td><td style="width: 50%; height: 29px;">0,00 €</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"> 3 000 000</td><td style="width: 50%; height: 29px;">0.40 €</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"> 4 000 000</td><td style="width: 50%; height: 29px;">0.80 €</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"> 5 000 000</td><td style="width: 50%; height: 29px;">1.20 €</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"> 10 000 000</td><td style="width: 50%; height: 29px;">3.00 €</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"> 50 000 000</td><td style="width: 50%; height: 29px;">19.00 €</td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;">100 000 000</td><td style="width: 50%; height: 29px;">39.20 €</td></tr></tbody></table>

## **<u>Prix du Traitement des scriptes dans la fonction</u>**

<table id="bkmrk-memory-vcpu1-prix%2F10"><thead><tr><th>Memory</th><th>vCPU<sup>1</sup></th><th>Prix/100 ms (tarifs de niveau 1)</th><th>Prix/100 ms (tarifs de niveau 2)</th></tr></thead><tbody><tr><td>128 Mo</td><td>0,083 vCPU</td><td>0,000000231 $</td><td>0,000000324 $</td></tr><tr><td>256 Mo</td><td>0,167 vCPU</td><td>0,000000463 $</td><td>0,000000648 $</td></tr><tr><td>512 Mo</td><td>0,333 vCPU</td><td>0,000000925 $</td><td>0,000001295 $</td></tr><tr><td>1 024 Mo</td><td>0,583 vCPU</td><td>0,000001650 $</td><td>0,000002310 $</td></tr><tr><td>2 048 Mo</td><td>1 vCPU</td><td>0,000002900 $</td><td>0,000004060 $</td></tr><tr><td>4 096 Mo</td><td>2 vCPU</td><td>0,000005800 $</td><td>0,000008120 $</td></tr><tr><td>8 192 Mo</td><td>2 vCPU</td><td>0,000006800 $</td><td>0,000009520 $</td></tr></tbody></table>

## **<u>Spécificitées :</u>**

<p class="callout warning">Chaque appel cloud fonction est complétement isolé des autres. Ils sont exécutés dans des environements complétement indépendants. </p>

Google Cloud Fonction supporte principalement languages suivants (d'autre sont également disponibles):

- Nodejs
- Python
- Go

<div id="bkmrk-"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div><div id="bkmrk--0"><div></div></div>

# App Engine

## Règles : 

<p class="callout warning">App engine supporte une seule application par projet !</p>

## Hello world : 

```
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
cd python-docs-samples/appengine/standard_python3/hello_world

```

Tester l'app :

```
dev_appserver.py app.yaml
```

Déployer dans app engine

```
gcloud app deploy
```

```
Services to deploy:

descriptor:                  [/home/nehemiebarkia/temp/python-docs-samples/appengine/standard_python3/hello_world/app.yaml]
source:                      [/home/nehemiebarkia/temp/python-docs-samples/appengine/standard_python3/hello_world]
target project:              [XXXXXXXXXX]
target service:              [default]
target version:              [XXXXXXXXXX]
target url:                  [https://XXXXX.ew.r.appspot.com]
target service account:      [App Engine default service account]


Do you want to continue (Y/n)?  y

Beginning deployment of service [default]...
Uploading 6 files to Google Cloud Storage
17%
33%
50%
67%
83%
100%
100%
File upload done.
```

Résultat :

[![image-1670413484849.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670413484849.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670413484849.png)

[![image-1670413548829.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670413548829.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670413548829.png)

[![image-1670413564325.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670413564325.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670413564325.png)

[![image-1670413578372.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670413578372.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670413578372.png)

[![image-1670413598039.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670413598039.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670413598039.png)

[![image-1670413669202.png](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/scaled-1680-/image-1670413669202.png)](https://docs.nehemiebarkia.fr/uploads/images/gallery/2022-12/image-1670413669202.png)

Déployer une version sans qu'elle soit publiée :

```
gcloud app deploy --no-promote
```