Pour chacun de vos déploiements, Deployment Manager crée des variables d'environnement prédéfinies qui contiennent des informations déterminées d'après votre déploiement. Utilisez ces variables d'environnement dans vos modèles Python ou Jinja2 pour obtenir des informations sur votre projet ou déploiement.
Avant de commencer
- Si vous voulez vous servir des exemples de ligne de commande de ce guide, installez l'outil de ligne de commande gcloud.
- Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
- Assurez-vous d'avoir bien compris comment créer un modèle de base.
- Assurez-vous d'avoir bien compris comment créer une configuration.
Variables d'environnement disponibles
Les variables d'environnement suivantes sont automatiquement définies par Deployment Manager.
Elles sont remplacées par des valeurs appropriées partout où vous les utilisez dans vos modèles. Par exemple, utilisez la variable project_number
pour ajouter le numéro de projet au nom d'un compte de service.
Variable d'environnement | Valeur |
---|---|
deployment |
Le nom du déploiement. |
name |
Le nom (name ) déclaré dans la configuration qui utilise le modèle. Cela peut être utile si vous souhaitez que le nom que vous déclarez dans la configuration corresponde au nom de la ressource définie dans les modèles sous-jacents. |
project |
L'ID du projet concerné par le déploiement. |
project_number |
Le numéro de projet associé au déploiement. |
current_time |
L'horodatage UTC : cette valeur indique le moment où le déploiement a débuté. |
type |
Le type de ressource déclaré dans la configuration de premier niveau. |
username |
L'utilisateur actuel de Deployment Manager. |
Utiliser une variable d'environnement
Utilisez la syntaxe suivante pour ajouter des variables d'environnement à vos modèles :
{{ env["deployment"] }} # Jinja context.env["deployment"] # Python
Dans votre modèle, utilisez les variables comme dans ces exemples :
Jinja
- type: compute.v1.instance name: vm-{{ env["deployment"] }} properties: machineType: zones/us-central1-a/machineTypes/f1-micro serviceAccounts: - email: {{ env['project_number'] }}-compute@developer.gserviceaccount.com scopes: - ...
Python
def GenerateConfig(context): resources = [] resources.append ({ 'name': 'vm-' + context.env["deployment"], 'type': 'compute.v1.instance', 'properties': { 'serviceAccounts': [{ 'email': context.env['project_number'] + '-compute@developer.gserviceaccount.com', 'scopes': [...] }] } ...}] return {'resources': resources}
Étapes suivantes
- Ajoutez un modèle qui sera associé de façon permanente à votre projet en tant que type composite.
- Héberger des modèles en externe pour les partager avec d'autres utilisateurs
- Ajouter des schémas pour vous assurer que les utilisateurs interagissent correctement avec vos modèles