❗ ❗ ❗ Veuillez noter que ce projet n'est plus activement maintenu. Une meilleure option pour les nouveaux déploiements Fargate sur AWS est la CLI AWS Copilot, qui est à la fois plus fonctionnelle et activement maintenue par AWS. ❗ ❗ ❗
Par défaut, fargate utilise us-east-1 . La CLI accepte un paramètre --region et respectera les paramètres d'environnement AWS_REGION et AWS_DEFAULT_REGION . Notez que spécifier une région dans laquelle tous les services requis ne sont pas disponibles renverra une erreur.
Consultez le tableau des régions pour connaître les services disponibles dans quelles régions.
fargate est construit à l'aide du kit AWS SDK for Go qui recherche les informations d'identification aux emplacements suivants :
Variables d'environnement
Fichier d'informations d'identification partagé
Profil d'instance EC2
Pour plus d'informations, consultez Spécification des informations d'identification dans la documentation AWS SDK for Go.
Drapeau | Défaut | Description |
---|---|---|
--grappe | porte farouche | Nom du cluster ECS |
--région | nous-est-1 | Région AWS |
--pas de couleur | FAUX | Désactiver la sortie couleur |
--verbeux | FAUX | Sortie verbeuse |
Les tâches sont des exécutions uniques de votre conteneur. Les instances de votre tâche sont exécutées jusqu'à ce que vous les arrêtiez manuellement via les API AWS, la console de gestion AWS ou fargate task stop
, ou jusqu'à ce qu'elles soient interrompues pour une raison quelconque.
fargate task list
Répertorier les groupes de tâches en cours d'exécution
fargate task run <task-group-name> [--num <count>] [--cpu <cpu-units>] [--memory <MiB>]
[--image <docker-image>] [--env <key=value>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
Exécuter de nouvelles tâches
Vous devez spécifier un nom de groupe de tâches afin d'interagir avec la ou les tâches dans les commandes suivantes pour afficher les journaux, arrêter et inspecter les tâches. Il n'est pas nécessaire que les noms des groupes de tâches soient uniques : plusieurs configurations d'instances de tâches peuvent être démarrées avec le même groupe de tâches.
Plusieurs instances d'une tâche peuvent être exécutées en spécifiant un nombre dans l'indicateur --num. Si aucun numéro n'est spécifié, une seule instance de tâche sera exécutée.
Les paramètres du processeur et de la mémoire peuvent éventuellement être spécifiés en unités de processeur et en mébioctets, respectivement, à l'aide des indicateurs --cpu et --memory. Chaque tranche de 1 024 unités CPU équivaut à un seul processeur virtuel. AWS Fargate ne prend en charge que certaines combinaisons de configurations de processeur et de mémoire :
CPU (unités CPU) | Mémoire (Mio) |
---|---|
256 | 512, 1024 ou 2048 |
512 | 1 024 à 4 096 par incréments de 1 Gio |
1024 | 2 048 à 8 192 par incréments de 1 Gio |
2048 | 4 096 à 16 384 par incréments de 1 Gio |
4096 | 8 192 à 30 720 par incréments de 1 Gio |
Si cela n'est pas spécifié, fargate lancera des tâches de taille minimale avec 0,25 vCPU (256 unités CPU) et 0,5 Go (512 MiB) de mémoire.
L'image du conteneur Docker à utiliser dans la tâche peut éventuellement être spécifiée via l'indicateur --image. S'il n'est pas spécifié, fargate créera une nouvelle image de conteneur Docker à partir du répertoire de travail actuel et la transmettra à Amazon ECR dans un référentiel nommé pour le groupe de tâches. Si le répertoire de travail actuel est un référentiel git, l'image du conteneur sera balisée avec la référence courte du commit HEAD. Dans le cas contraire, un horodatage au format AAAAMMJJHHMMSS sera utilisé.
Les variables d'environnement peuvent être spécifiées via l'indicateur --env. Spécifiez --env avec un paramètre key=value plusieurs fois pour ajouter plusieurs variables.
Des groupes de sécurité peuvent éventuellement être spécifiés pour la tâche en transmettant l'indicateur --security-group-id avec un ID de groupe de sécurité. Pour ajouter plusieurs groupes de sécurité, transmettez plusieurs fois --security-group-id avec un ID de groupe de sécurité. Si --security-group-id est omis, un groupe de sécurité permissif sera appliqué à la tâche.
Par défaut, la tâche sera créée dans le VPC par défaut et attachée aux sous-réseaux VPC par défaut pour chaque zone de disponibilité. Vous pouvez remplacer cela en spécifiant des sous-réseaux explicites en passant l'indicateur --subnet-id avec un ID de sous-réseau.
Un rôle de tâche peut éventuellement être spécifié via l'indicateur --task-role en fournissant soit un ARN de rôle IAM complet, soit le nom d'un rôle IAM. Les tâches pourront assumer ce rôle.
fargate task info <task-group-name> [--task <task-id>]
Inspecter les tâches
Affiche des informations étendues pour chaque tâche en cours d'exécution au sein d'un groupe de tâches ou pour des tâches spécifiques spécifiées avec l'indicateur --task. Les informations incluent des variables d'environnement qui peuvent différer entre les tâches d'un groupe de tâches. Pour inspecter plusieurs tâches spécifiques au sein d’un groupe de tâches spécifique --task avec un ID de tâche plusieurs fois.
fargate task ps <task-group-name>
Lister les tâches en cours d'exécution
fargate task logs <task-group-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Afficher les journaux des tâches
Renvoyez soit un segment spécifique de journaux de tâches, soit des journaux de queue en temps réel à l'aide de l'option --follow. Les journaux sont précédés du nom de leur flux de journaux, au format « fargate/<task-group-name>/<task-id> ».
Follow continuera à s'exécuter et renverra les journaux jusqu'à ce qu'il soit interrompu par Control-C. Si --follow est passé, --end ne peut pas être spécifié.
Les journaux peuvent être renvoyés pour des tâches spécifiques au sein d'un groupe de tâches en transmettant un ID de tâche via l'indicateur --task. Transmettez --task avec un ID de tâche plusieurs fois afin de récupérer les journaux de plusieurs tâches spécifiques.
Une fenêtre spécifique de journaux peut être demandée en passant les options --start et --end avec une expression temporelle. L'expression temporelle peut être une durée ou un horodatage :
Vous pouvez filtrer les journaux pour un terme spécifique en passant une expression de filtre via l'indicateur --filter. Transmettez un seul terme pour rechercher ce terme, transmettez plusieurs termes pour rechercher des messages de journal incluant tous les termes. Consultez la documentation CloudWatch Logs pour plus de détails.
fargate task stop <task-group-name> [--task <task-id>]
Arrêter les tâches
Arrête toutes les tâches au sein d'un groupe de tâches si elles sont exécutées avec uniquement un nom de groupe de tâches ou arrête les tâches individuelles si une ou plusieurs tâches sont transmises via l'indicateur --task. Spécifiez --task avec un paramètre d'ID de tâche plusieurs fois pour arrêter plusieurs tâches spécifiques.
Les services gèrent les instances de longue durée de vos conteneurs exécutés sur AWS Fargate. Si votre conteneur se ferme pour une raison quelconque, le planificateur de service redémarrera vos conteneurs et garantira que votre service exécute le nombre souhaité de tâches. Les services peuvent être utilisés de concert avec un équilibreur de charge pour répartir le trafic entre les tâches de votre service.
fargate service list
Liste des services
fargate service create <service name> [--cpu <cpu units>] [--memory <MiB>] [--port <port-expression>]
[--lb <load-balancer-name>] [--rule <rule-expression>]
[--image <docker-image>] [--env <key=value>] [--num <count>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
Créer un nouveau service
Les paramètres du processeur et de la mémoire peuvent éventuellement être spécifiés en unités de processeur et en mébioctets, respectivement, à l'aide des indicateurs --cpu et --memory. Chaque tranche de 1 024 unités CPU équivaut à un seul processeur virtuel. AWS Fargate ne prend en charge que certaines combinaisons de configurations de processeur et de mémoire :
CPU (unités CPU) | Mémoire (Mio) |
---|---|
256 | 512, 1024 ou 2048 |
512 | 1 024 à 4 096 par incréments de 1 Gio |
1024 | 2 048 à 8 192 par incréments de 1 Gio |
2048 | 4 096 à 16 384 par incréments de 1 Gio |
4096 | 8 192 à 30 720 par incréments de 1 Gio |
Si cela n'est pas spécifié, fargate lancera des tâches de taille minimale avec 0,25 vCPU (256 unités CPU) et 0,5 Go (512 MiB) de mémoire.
L'image du conteneur Docker à utiliser dans le service peut éventuellement être spécifiée via l'indicateur --image. S'il n'est pas spécifié, fargate créera une nouvelle image de conteneur Docker à partir du répertoire de travail actuel et la transmettra à Amazon ECR dans un référentiel nommé pour le groupe de tâches. Si le répertoire de travail actuel est un référentiel git, l'image du conteneur sera balisée avec la référence courte du commit HEAD. Dans le cas contraire, un horodatage au format AAAAMMJJHHMMSS sera utilisé.
Pour utiliser le service avec un équilibreur de charge, un port doit être spécifié lors de la création du service. Spécifiez un port en passant l'indicateur --port et une expression de port protocol:port-number. Par exemple, si le service écoute sur le port 80 et utilise HTTP, spécifiez HTTP:80. Les protocoles valides sont HTTP, HTTPS et TCP. Vous ne pouvez spécifier qu'un seul port.
Les services peuvent éventuellement être configurés pour utiliser un équilibreur de charge. Pour placer un équilibreur de charge devant un service, transmettez l'indicateur --lb avec le nom d'un équilibreur de charge. Si vous spécifiez un équilibreur de charge, vous devez également spécifier un port via l'indicateur --port vers lequel l'équilibreur de charge doit transmettre les requêtes. En option, les Application Load Balancers peuvent être configurés pour acheminer le trafic HTTP/HTTPS vers le service en fonction d'une règle. Les règles sont configurées en transmettant une ou plusieurs règles en spécifiant l'indicateur --rule ainsi qu'une expression de règle. Les expressions de règle sont au format TYPE=VALUE. Le type peut être PATH ou HOST. PATH correspond au PATH de la requête et HOST correspond au nom d'hôte demandé dans la requête HTTP. Les types PATH et HOST peuvent inclure jusqu'à trois caractères génériques : * pour faire correspondre plusieurs caractères et ? pour correspondre à un seul caractère. Si des règles sont omises, le service sera l'action par défaut de l'équilibreur de charge.
Les variables d'environnement peuvent être spécifiées via l'indicateur --env. Spécifiez --env avec un paramètre key=value plusieurs fois pour ajouter plusieurs variables.
Spécifiez le nombre souhaité de tâches que le service doit maintenir en passant l'indicateur --num avec un nombre. Si vous omettez cet indicateur, fargate configurera un service avec un nombre souhaité de tâches de 1.
Des groupes de sécurité peuvent éventuellement être spécifiés pour le service en transmettant l'indicateur --security-group-id avec un ID de groupe de sécurité. Pour ajouter plusieurs groupes de sécurité, transmettez plusieurs fois --security-group-id avec un ID de groupe de sécurité. Si --security-group-id est omis, un groupe de sécurité permissif sera appliqué au service.
Par défaut, le service sera créé dans le VPC par défaut et attaché aux sous-réseaux VPC par défaut pour chaque zone de disponibilité. Vous pouvez remplacer cela en spécifiant des sous-réseaux explicites en passant l'indicateur --subnet-id avec un ID de sous-réseau.
Un rôle de tâche peut éventuellement être spécifié via l'indicateur --task-role en fournissant soit un ARN de rôle IAM complet, soit le nom d'un rôle IAM. Les tâches exécutées par le service pourront assumer ce rôle.
fargate service deploy <service-name> [--image <docker-image>]
Déployer une nouvelle image sur le service
L'image du conteneur Docker à utiliser dans le service peut éventuellement être spécifiée via l'indicateur --image. S'il n'est pas spécifié, fargate créera une nouvelle image de conteneur Docker à partir du répertoire de travail actuel et la transmettra à Amazon ECR dans un référentiel nommé pour le groupe de tâches. Si le répertoire de travail actuel est un référentiel git, l'image du conteneur sera balisée avec la référence courte du commit HEAD. Dans le cas contraire, un horodatage au format AAAAMMJJHHMMSS sera utilisé.
fargate service info <service-name>
Inspecter le service
Afficher des informations étendues sur un service, notamment la configuration de l'équilibreur de charge, les déploiements actifs et les variables d'environnement.
Les déploiements affichent les versions actives de votre service en cours d'exécution. Plusieurs déploiements sont affichés si un service est en transition en raison d'un déploiement ou d'une mise à jour de la configuration telle qu'un processeur, une mémoire ou des variables d'environnement.
fargate service logs <service-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
Afficher les journaux des tâches dans un service
Renvoyez soit un segment spécifique de journaux de service, soit des journaux de queue en temps réel à l'aide de l'option --follow. Les journaux sont précédés du nom de leur flux de journaux, au format « fargate/<service-name>/<task-id> ».
Follow continuera à s'exécuter et renverra les journaux jusqu'à ce qu'il soit interrompu par Control-C. Si --follow est passé, --end ne peut pas être spécifié.
Les journaux peuvent être renvoyés pour des tâches spécifiques au sein d'un service en transmettant un ID de tâche via l'indicateur --task. Transmettez --task avec un ID de tâche plusieurs fois afin de récupérer les journaux de plusieurs tâches spécifiques.
Une fenêtre spécifique de journaux peut être demandée en passant les options --start et --end avec une expression temporelle. L'expression temporelle peut être une durée ou un horodatage :
Vous pouvez filtrer les journaux pour un terme spécifique en passant une expression de filtre via l'indicateur --filter. Transmettez un seul terme pour rechercher ce terme, transmettez plusieurs termes pour rechercher des messages de journal incluant tous les termes. Consultez la documentation CloudWatch Logs pour plus de détails.
fargate service ps <service-name>
Répertorier les tâches en cours d'exécution pour un service
fargate service scale <service-name> <scale-expression>
Augmenter le nombre de tâches dans un service
Modifie le nombre de tâches souhaitées à exécuter dans un service par l'expression d'échelle donnée. Une expression d'échelle peut être soit un nombre absolu, soit un delta spécifié avec un signe tel que +5 ou -2.
fargate service env set <service-name> --env <key=value>
Définir les variables d'environnement
Au moins une variable d'environnement doit être spécifiée via l'indicateur --env. Spécifiez --env avec un paramètre key=value plusieurs fois pour ajouter plusieurs variables.
fargate service env unset <service-name> --key <key-name>
Variables d'environnement non définies
Annule la variable d'environnement spécifiée via l'indicateur --key. Spécifiez --key avec un nom de clé plusieurs fois pour désactiver plusieurs variables.
fargate service env list <service-name>
Afficher les variables d'environnement
fargate service update <service-name> [--cpu <cpu-units>] [--memory <MiB>]
Mettre à jour la configuration du service
Les paramètres du processeur et de la mémoire sont spécifiés respectivement en unités de processeur et en mébioctets à l'aide des indicateurs --cpu et --memory. Chaque tranche de 1 024 unités CPU équivaut à un seul processeur virtuel. AWS Fargate ne prend en charge que certaines combinaisons de configurations de processeur et de mémoire :
CPU (unités CPU) | Mémoire (Mio) |
---|---|
256 | 512, 1024 ou 2048 |
512 | 1 024 à 4 096 par incréments de 1 Gio |
1024 | 2 048 à 8 192 par incréments de 1 Gio |
2048 | 4 096 à 16 384 par incréments de 1 Gio |
4096 | 8 192 à 30 720 par incréments de 1 Gio |
Au moins un des éléments --cpu ou --memory doit être spécifié.
fargate service restart <service-name>
Redémarrer le service
Crée un nouvel ensemble de tâches pour le service et arrête les tâches précédentes. Ceci est utile si votre service a besoin de recharger des données mises en cache à partir d'une source externe, par exemple.
fargate service destroy <service-name>
Service de destruction
Afin de détruire un service, il doit d’abord être réduit à 0 tâche en cours d’exécution.
Les équilibreurs de charge répartissent le trafic entrant entre les tâches au sein d'un service pour les applications HTTP/HTTPS et TCP. Les équilibreurs de charge HTTP/HTTPS peuvent acheminer vers plusieurs services en fonction des règles que vous spécifiez lorsque vous créez un nouveau service.
fargate lb list
Répertorier les équilibreurs de charge
fargate lb create <load-balancer-name> --port <port-expression> [--certificate <certificate-name>]
[--subnet-id <subnet-id>] [--security-group-id <security-group-id>]
[--scheme <lb-scheme>]
Créer un équilibreur de charge
Au moins un port doit être spécifié pour l'écouteur de l'équilibreur de charge via l'indicateur --port et une expression de port protocol:port-number. Par exemple, si vous souhaitez qu'un équilibreur de charge HTTP écoute sur le port 80, vous devez spécifier HTTP:80. Les protocoles valides sont HTTP, HTTPS et TCP. Vous pouvez spécifier plusieurs écouteurs en passant plusieurs fois l'indicateur --port avec une expression de port. Vous ne pouvez pas mélanger des ports TCP avec des ports HTTP/HTTPS sur un seul équilibreur de charge.
Vous pouvez éventuellement inclure des certificats pour sécuriser les ports HTTPS en transmettant l'indicateur --certificate ainsi qu'un nom de certificat. Cette option peut être spécifiée plusieurs fois pour ajouter des certificats supplémentaires à un seul équilibreur de charge qui utilise l'identification du nom de service (SNI) pour sélectionner le certificat approprié pour la demande.
Par défaut, l'équilibreur de charge sera créé dans le VPC par défaut et attaché aux sous-réseaux VPC par défaut pour chaque zone de disponibilité. Vous pouvez remplacer cela en spécifiant des sous-réseaux explicites en passant l'indicateur --subnet-id avec un ID de sous-réseau. Les équilibreurs de charge HTTP/HTTPS nécessitent au moins deux sous-réseaux connectés, tandis qu'un équilibreur de charge TCP n'en nécessite qu'un. Vous ne pouvez spécifier qu'un seul sous-réseau pour chaque zone de disponibilité.
Des groupes de sécurité peuvent éventuellement être spécifiés pour les équilibreurs de charge HTTP/HTTPS en transmettant l'indicateur --security-group-id avec un ID de groupe de sécurité. Pour ajouter plusieurs groupes de sécurité, transmettez plusieurs fois --security-group-id avec un ID de groupe de sécurité. Si --security-group-id est omis, un groupe de sécurité permissif sera appliqué à l'équilibreur de charge.
Vous pouvez également choisir le type de schéma pour l'équilibreur de charge via l'indicateur --scheme. Par défaut, les équilibreurs de charge sont accessibles sur Internet.
fargate lb destroy <load-balancer-name>
Détruire l'équilibreur de charge
fargate lb alias <load-balancer-name> <hostname>
Créer un enregistrement d'alias d'équilibreur de charge
Créez un enregistrement d'alias sur l'équilibreur de charge pour les domaines hébergés dans Amazon Route 53 et dans le même compte AWS. Si vous utilisez un autre fournisseur DNS ou hébergez vos domaines dans un autre compte, vous devrez créer manuellement cet enregistrement.
fargate lb info <load-balancer-name>
Inspecter l'équilibreur de charge
Renvoie des informations étendues sur un équilibreur de charge, notamment une liste des écouteurs, des règles et des certificats utilisés par l'équilibreur de charge.
Les certificats sont des certificats TLS émis ou importés dans AWS Certificate Manager destinés à sécuriser le trafic entre les équilibreurs de charge et les utilisateurs finaux. ACM fournit gratuitement des certificats TLS à utiliser dans les ressources AWS.
fargate certificate list
Liste des certificats
fargate certificate import <domain-name> --certificate <filename> --key <filename> [--chain <filename>]
Importer un certificat
Téléchargez un certificat à partir d'un fichier de certificat, d'un fichier de clé privée et éventuellement d'un fichier de chaîne de certificat intermédiaire. Les fichiers doivent être codés au format PEM et la clé privée ne doit pas être cryptée ni protégée par une phrase secrète. Consultez la documentation AWS Certificate Manager pour plus de détails.
fargate certificate request <domain-name> [--alias <domain-name>]
Demander un certificat
Les certificats peuvent concerner un nom de domaine complet (par exemple www.example.com) ou un nom de domaine générique (par exemple *.example.com). Vous pouvez ajouter des alias à un certificat en spécifiant des noms de domaine supplémentaires via l'indicateur --alias. Pour ajouter plusieurs alias, transmettez --alias plusieurs fois. Par défaut, AWS Certificate Manager a une limite de 10 noms de domaine par certificat, mais cette limite peut être augmentée par le support AWS.
fargate certificate info <domain-name>
Inspecter le certificat
Afficher les informations étendues pour un certificat. Comprend chaque validation du certificat qui affiche les enregistrements DNS qui doivent être créés pour valider la propriété du domaine.
fargate certificate validate <domain-name>
Valider la propriété du certificat
fargate créera automatiquement un enregistrement de validation DNS pour vérifier la propriété de tous les noms de domaine hébergés sur Amazon Route 53. Si votre certificat a des alias, un enregistrement de validation sera tenté par alias. Tous les enregistrements dont les domaines sont hébergés chez d'autres fournisseurs d'hébergement DNS ou dans d'autres comptes DNS et ne peuvent pas être automatiquement validés recevront les enregistrements nécessaires. Ces enregistrements sont également disponibles dans fargate certificate info <domain-name>
.
AWS Certificate Manager peut prendre jusqu'à plusieurs heures après la création des enregistrements DNS pour terminer la validation et émettre le certificat.
fargate certificate destroy <domain-name>
Détruire le certificat
Afin de détruire un certificat, il ne doit pas être utilisé par des équilibreurs de charge ou par d'autres ressources AWS.