Installation Finch à utiliser avec la AWS SAM CLI - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Installation Finch à utiliser avec la AWS SAM CLI

Finch AWS est un outil de développement de conteneurs qui fournit une alternative particulièrement avantageuse sur les systèmes macOS et Linux. Docker Pour plus d'informations, voir Finch sur GitHub. AvecFinch, AWS SAM peut fournir un environnement local similaire à AWS Lambda un conteneur pour créer, tester et déboguer vos applications sans serveur.

Note

Vous devez Finch tester vos applications localement, créer des packages de déploiement à l'aide de l'--use-containeroption et créer des fonctions d'image OCI. À partir de la version 1.145.0 de la AWS SAM CLI, la AWS SAM CLI prend Finch en charge l'exécution de conteneurs alternative à. Docker

Installation deFinch

Pour installer Finch sur votre système d'exploitation, suivez ces instructions.

Conditions préalables

Note

Finchl'intégration dans la AWS SAM CLI est disponible sur les systèmes macOS et Linux. Pour les utilisateurs de Windows, pensez à utiliser une machine virtuelle ou un environnement Linux pour les Finch fonctionnalités.

Versions de macOS :

  • macOS 15 Séquoia

  • macOS 14 Sonoma

Note

Finchprend en charge les deux dernières versions de macOS.

Linux :

  • Noyau Linux v4.x+

Installation de Finch

Pour installer Finch sur MacOS
  1. Installation Finch à l'aide de la brew CLI. Si vous y êtes invité, entrez votre mot de passe macOS.

    $ brew install finch
  2. Vérifiez la Finch version installée.

    $ finch --version
  3. Initialisez la machine Finch virtuelle (première configuration).

    $ finch vm init
  4. Démarrez la machine Finch virtuelle.

    $ finch vm start
  5. Vérifiez l'état de la machine Finch virtuelle.

    $ finch vm status
  6. Vérifiez que cela Finch fonctionne correctement.

    $ finch --info $ finch ps

Pour plus d'informations, consultez la section Installation de Finch sur macOS.

Vous pouvez effectuer l'installation Finch sur Amazon Linux, Ubuntu ou en utilisant une méthode d'installation générique. Pour plus d'informations, consultez Installation de Finch sous Linux.

Configuration à l'Finchaide de la AWS SAM CLI

Après l'installationFinch, la AWS SAM CLI détecte et utilise automatiquement Finch comme environnement d'exécution du conteneur lorsqu'elle Docker ne s'exécute pas.

Note

Finchsert de solution de repli à. Docker Si vous avez Finch installé Docker et exécuté les deux, la AWS SAM CLI hiérarchise Docker par défaut.

Configuration des préférences de l'administrateur (macOS)

Vous pouvez configurer la AWS SAM CLI pour utiliser un environnement d'exécution de conteneur spécifique par défaut en créant un fichier de préférences d'administrateur. Cette préférence à l'échelle du système remplace le comportement de secours par défaut.

Options de configuration disponibles

  • Définissez Finch comme environnement d'exécution du conteneur préféré :

    $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string finch" /Library/Preferences/com.amazon.samcli.plist
  • Définissez Docker comme environnement d'exécution du conteneur préféré :

    $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string docker" /Library/Preferences/com.amazon.samcli.plist
  • Supprimer la préférence (retour au comportement par défaut) :

    $ sudo /usr/libexec/PlistBuddy -c "Remove :DefaultContainerRuntime" /Library/Preferences/com.amazon.samcli.plist
Note

Lorsqu'aucune préférence d'administrateur n'est définie, la AWS SAM CLI l'utilise Docker par défaut lorsqu'elle est disponible, avec Finch comme solution de secours lorsqu'elle n'Dockerest pas en cours d'exécution.

Différences de montage de répertoires (macOS)

Sur macOS, les commandes AWS SAM locales échouent si vous localisez votre projet en dehors de votre répertoire personnel (~) ou/Volumes. Cette conception restreint le montage automatique de répertoires pour des raisons de sécurité à votre insu.

Options d'atténuation

  • Option 1 : Ouvrez la configuration Finch dans un éditeur de texte ~/.finch/finch.yaml et ajoutez le chemin de votre projet sous la additional_directories section, puis redémarrez la machine Finch virtuelle. Pour plus d'informations, consultez la documentation Finch.

    $ finch vm stop $ finch vm start
  • Option 2 : déplacez votre projet vers votre répertoire personnel.

Vérification de l'installation

Après l'installation et le démarrageFinch, vérifiez qu'il fonctionne avec la AWS SAM CLI.

Vérification de base

Exécutez la commande suivante pour vérifier que la AWS SAM CLI peut utiliser Finch :

$ sam build --use-container

Vous devriez voir la AWS SAM CLI Finch utilisée pour créer votre application dans un environnement de conteneur.

Note

Finchsert de solution de repli à. Docker Si elle Docker est en cours d'exécution, la AWS SAM CLI donnera la priorité Docker par défaut.

Les tests Finch comme solution de secours

Pour effectuer un test Finch en tant que solution de secours en Docker cours d'exécution, vous devez d'Dockerabord vous arrêter.

Pour tester la fonctionnalité de Finch secours
  1. Arrêtez Docker d'utiliser les commandes adaptées à votre système d'exploitation.

    macOS :

    $ docker stop $(docker ps -q) $ pkill -f "Docker Desktop"

    DockerLa vérification est arrêtée.

    $ docker ps

    Linux :

    $ docker stop $(docker ps -q) $ sudo systemctl stop docker

    DockerLa vérification est arrêtée.

    $ sudo systemctl status docker
  2. Exécutez la sam build --use-container commande pour vérifier que la AWS SAM CLI est automatiquement utilisée Finch comme solution de secours.

Arrêt d'Finch

Si vous devez vous arrêterFinch, utilisez les commandes suivantes :

macOS :

$ finch vm stop $ sudo pkill -f finch

FinchLa vérification est arrêtée.

$ finch vm status

Linux :

$ sudo systemctl stop finch $ sudo pkill -f finch

FinchLa vérification est arrêtée.

$ sudo systemctl status finch

Résolution des problèmes

Si vous rencontrez des problèmes avec Finch :

  • Vérifiez que votre système d'exploitation répond aux exigences requises.

  • Vérifiez que vous avez activé la virtualisation sur votre système.

  • Pour macOS, vérifiez que vous disposez de suffisamment d'espace disque pour la machine virtuelle.

  • Pour Linux, vérifiez que vous disposez des autorisations nécessaires pour exécuter systemctl des commandes.

  • Si vous rencontrez des échecs de CloudFormation déploiement avec des erreurs « type de support non pris en charge » lorsque vous transférez des images multi-architectures vers Amazon Elastic Container Registry (Amazon ECR), créez un artefact d'image unique au lieu d'utiliser des images multi-architectures. Cela se produit car envoie Finch à la fois l'index de l'image et l'image vers Amazon ECR, alors que seule l'Dockerimage est envoyée.

  • Si la construction multiplateforme échoue lorsque l'architecture de la fonction cible ne correspond pas à l'architecture de la machine hôte sous Linux, activez l'émulation multiplateforme en exécutant. sudo finch run --privileged --rm tonistiigi/binfmt:master --install all

Pour un dépannage supplémentaire, consultez la documentation Finch ou leRésolution des problèmes de la CLI AWS SAM.

Étapes suivantes

Maintenant que vous l'avez Finch installé, vous pouvez l'utiliser avec la AWS SAM CLI pour :

  • Créez des applications sans serveur à l'aide de conteneurs avecsam build --use-container. Pour de plus amples informations, veuillez consulter sam build.

  • Testez les fonctions Lambda localement avec. sam local invoke Pour de plus amples informations, veuillez consulter sam local invoke.

  • Démarrez une API Gateway locale avecsam local start-api. Pour de plus amples informations, veuillez consulter sam local start-api.

  • Démarrez un point de terminaison Lambda local avec. sam local start-lambda Pour de plus amples informations, veuillez consulter sam local start-lambda.

Pour plus d'informations sur l'utilisation de la AWS SAM CLI avec des conteneurs, consultezConstruit par défaut avec AWS SAM.