

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Instalación Finch para su uso con la AWS SAM CLI
<a name="install-finch"></a>

Finch AWS es una herramienta de desarrollo de contenedores que ofrece una alternativaDocker, especialmente beneficiosa en los sistemas macOS y Linux. Para obtener más información, consulte [Finch en GitHub](https://github.com/runfinch). ConFinch, AWS SAM puede proporcionar un entorno local similar a AWS Lambda un contenedor para crear, probar y depurar sus aplicaciones sin servidor.

**nota**  
Necesita Finch para probar las aplicaciones de forma local, para crear paquetes de implementación mediante la opción `--use-container` y para crear funciones de imagen de OCI. A partir de la versión 1.145.0 de la AWS SAM CLI, la AWS SAM CLI es compatible con Finch el tiempo de ejecución de contenedores alternativo a. Docker

**Topics**
+ [Instalación de Finch](#install-finch-instructions)
+ [Configuración Finch con AWS SAM CLI](#install-finch-configuration)
+ [Verificar la instalación](#install-finch-verification)
+ [Detener Finch](#install-finch-stopping)
+ [Resolución de problemas](#install-finch-troubleshooting)
+ [Siguientes pasos](#install-finch-next-steps)

## Instalación de Finch
<a name="install-finch-instructions"></a>

Siga estas instrucciones para instalar Finch en su sistema operativo.

### Requisitos previos
<a name="install-finch-prerequisites"></a>

**nota**  
Finchla integración en AWS SAM CLI está disponible en los sistemas macOS y Linux. Para los usuarios de Windows, evalúe la posibilidad de utilizar una máquina virtual o un entorno Linux para la funcionalidad de Finch.

**Versión para macOS:**
+ macOS 15 Sequoia
+ macOS 14 Sonoma

**nota**  
Finch es compatible con las dos últimas versiones de macOS.

**Linux**:
+ Linux Kernel v4.x\+

### Instalación de Finch
<a name="install-finch"></a>

#### macOS
<a name="install-finch-instructions-macos"></a>

**Para instalar Finch en macOS**

1. Instale Finch mediante la CLI de `brew`. Si se le solicita, escriba su contraseña de macOS.

   ```
   $ brew install finch
   ```

1. Compruebe la versión Finch instalada.

   ```
   $ finch --version
   ```

1. Inicialice la máquina virtual de Finch (configuración inicial).

   ```
   $ finch vm init
   ```

1. Inicie la máquina virtual de Finch.

   ```
   $ finch vm start
   ```

1. Compruebe el estado de la máquina virtual de Finch.

   ```
   $ finch vm status
   ```

1. Compruebe que Finch se ejecute correctamente.

   ```
   $ finch --info
   $ finch ps
   ```

Para obtener más información, consulte la [Instalación de Finch en macOS](https://runfinch.com/docs/managing-finch/macos/installation/).

#### Linux
<a name="install-finch-instructions-linux"></a>

Puede instalar Finch en Amazon Linux, Ubuntu o mediante un método de instalación genérico. Para obtener más información, consulte la [Instalación de Finch en Linux](https://runfinch.com/docs/managing-finch/linux/installation/).

## Configuración Finch con AWS SAM CLI
<a name="install-finch-configuration"></a>

Tras la instalaciónFinch, la AWS SAM CLI detecta y utiliza automáticamente Finch como tiempo de ejecución del contenedor cuando Docker no se ejecuta.

**nota**  
Finch sirve como alternativa para Docker. Si tiene ambos Finch instalados Docker y en ejecución, la AWS SAM CLI prioriza de forma Docker predeterminada.

### Configuración de preferencias de administrador (macOS)
<a name="install-finch-configuration-preference"></a>

Puede configurar la AWS SAM CLI para que utilice un tiempo de ejecución de contenedor específico como predeterminado mediante la creación de un archivo de preferencias del administrador. Esta preferencia de todo el sistema anula el comportamiento alternativo predeterminado.

**Métodos de configuración disponibles**
+ **Definir Finch como tiempo de ejecución de contenedor preferido:**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string finch" /Library/Preferences/com.amazon.samcli.plist
  ```
+ **Definir Docker como tiempo de ejecución de contenedor preferido:**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string docker" /Library/Preferences/com.amazon.samcli.plist
  ```
+ **Eliminar la preferencia (volver al comportamiento predeterminado):**

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

**nota**  
Cuando no se establece ninguna preferencia de administrador, la AWS SAM CLI la utiliza de forma Docker predeterminada cuando está disponible, y Finch como alternativa cuando no Docker se está ejecutando.

### Diferencias de montaje de directorios (macOS)
<a name="install-finch-differences"></a>

En macOS, los comandos AWS SAM locales fallan si ubicas el proyecto fuera del directorio principal (`~`) o`/Volumes`. Este diseño restringe el montaje de directorios automático por motivos de seguridad sin su consentimiento.

**Opciones de mitigación**
+ **Opción 1:** abra la configuración de Finch en un editor de texto `~/.finch/finch.yaml` y agregue la ruta del proyecto en la sección `additional_directories`, y luego reinicie la máquina virtual de Finch. Para obtener información adicional, consulte la [documentación de Finch](https://runfinch.com/docs/managing-finch/macos/disk-management/#adding-additional-disk-mounts).

  ```
  $ finch vm stop
  $ finch vm start
  ```
+ **Opción 2:** mueva el proyecto a su directorio principal.

## Verificar la instalación
<a name="install-finch-verification"></a>

Después de instalarlo e iniciarloFinch, compruebe que funciona con AWS SAM CLI.

### Verificación básica
<a name="install-finch-verification-basic"></a>

Ejecute el siguiente comando para comprobar que la AWS SAM CLI puede utilizarFinch:

```
$ sam build --use-container
```

Debería ver cómo se utiliza la AWS SAM CLI Finch para crear la aplicación en un entorno de contenedores.

**nota**  
Finch sirve como alternativa para Docker. Si Docker se está ejecutando, la AWS SAM CLI priorizará Docker de forma predeterminada.

### Probar Finch como alternativa
<a name="install-finch-verification-fallback"></a>

Para probar Finch como alternativa cuando Docker se está ejecutando, primero debe detener Docker.

**Cómo probar la funcionalidad de la alternativa Finch**

1. Detenga Docker con los comandos apropiados para el sistema operativo.

   **macOS:**

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

   Verifique que Docker esté detenido.

   ```
   $ docker ps
   ```

   **Linux**:

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

   Verifique que Docker esté detenido.

   ```
   $ sudo systemctl status docker
   ```

1. Ejecute el `sam build --use-container` comando para verificar que la AWS SAM CLI Finch lo utilice automáticamente como respaldo.

## Detener Finch
<a name="install-finch-stopping"></a>

Si necesita detener Finch, utilice los siguientes comandos:

**macOS:**

```
$ finch vm stop
$ sudo pkill -f finch
```

Verifique que Finch esté detenido.

```
$ finch vm status
```

**Linux**:

```
$ sudo systemctl stop finch
$ sudo pkill -f finch
```

Verifique que Finch esté detenido.

```
$ sudo systemctl status finch
```

## Resolución de problemas
<a name="install-finch-troubleshooting"></a>

Si tiene problemas con Finch:
+ Compruebe que el sistema operativo cumpla los requisitos previos.
+ Compruebe que ha habilitado la virtualización en el sistema.
+ Para macOS, compruebe que tiene suficiente espacio en disco para la máquina virtual.
+ Para Linux, compruebe que tiene los permisos adecuados para ejecutar los comandos `systemctl`.
+ Si encuentra errores de CloudFormation implementación con errores de «tipo de medio no compatible» al insertar imágenes de varias arquitecturas en Amazon Elastic Container Registry (Amazon ECR), cree un único artefacto de imagen en lugar de utilizar imágenes de varias arquitecturas. Esto ocurre porque Finch empuja el índice de la imagen y la imagen a Amazon ECR, mientras que Docker solo empuja la imagen.
+ Si la creación entre plataformas falla porque la arquitectura de la función de destino no coincide con la arquitectura de la máquina host en Linux, habilite la emulación entre plataformas mediante la ejecución `sudo finch run --privileged --rm tonistiigi/binfmt:master --install all`.

Para obtener información adicional sobre la solución de problemas, consulte la [documentación de Finch](https://runfinch.com/docs/) o la [Solución de problemas para AWS SAM CLI](sam-cli-troubleshooting.md).

## Siguientes pasos
<a name="install-finch-next-steps"></a>

Ahora que lo ha Finch instalado, puede usarlo con AWS SAM CLI para:
+ Crear aplicaciones sin servidor mediante contenedores con `sam build --use-container`. Para obtener más información, consulte [sam build](sam-cli-command-reference-sam-build.md).
+ Probar las funciones de Lambda de forma local con `sam local invoke`. Para obtener más información, consulte [sam local invoke](sam-cli-command-reference-sam-local-invoke.md).
+ Iniciar una API Gateway local con `sam local start-api`. Para obtener más información, consulte [sam local start-api](sam-cli-command-reference-sam-local-start-api.md).
+ Iniciar un punto de conexión de Lambda local con `sam local start-lambda`. Para obtener más información, consulte [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).

Para obtener más información sobre el uso de AWS SAM CLI con contenedores, consulte[Compilación predeterminada con AWS SAM](serverless-sam-cli-using-build.md).