

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CLI AWS SAM で使用する Finch のインストール
<a name="install-finch"></a>

Finch は AWS、 に代わるコンテナ開発ツールでありDocker、特に macOS および Linux システムにとって有益です。詳細については、GitHub の「[Finch on GitHub](https://github.com/runfinch)」を参照してください。 AWS SAM を使用するとFinch、 は のようなローカル環境をコンテナ AWS Lambda として提供して、サーバーレスアプリケーションを構築、テスト、デバッグできます。

**注記**  
アプリケーションのローカルテスト、`--use-container` オプションを使用したデプロイパッケージの構築、OCI イメージ関数の構築には Finch が必要です。CLI AWS SAM バージョン 1.145.0 以降、 AWS SAM CLI は の代替コンテナランタイムFinchとして をサポートしていますDocker。

**Topics**
+ [Finch のインストール](#install-finch-instructions)
+ [CLI AWS SAM Finchを使用した の設定](#install-finch-configuration)
+ [インストールの検証](#install-finch-verification)
+ [Finch の停止](#install-finch-stopping)
+ [トラブルシューティング](#install-finch-troubleshooting)
+ [次の手順](#install-finch-next-steps)

## Finch のインストール
<a name="install-finch-instructions"></a>

お使いのオペレーティングシステムに Finch をインストールするには、次の手順に従ってください。

### 前提条件
<a name="install-finch-prerequisites"></a>

**注記**  
Finch CLI AWS SAM での統合は、macOS および Linux システムで使用できます。Windows ユーザーが Finch 機能を利用するには、仮想マシンまたは Linux 環境の使用を検討してください。

**macOS バージョン**
+ macOS 15 Sequoia
+ macOS 14 Sonoma

**注記**  
Finch は、macOS の 2 つの最新バージョンをサポートしています。

**Linux** ：
+ Linux カーネル v4.x 以降

### Finch のインストール
<a name="install-finch"></a>

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

**macOS で Finch をインストールするには**

1. `brew` CLI を使用して Finch をインストールします。プロンプトが表示されたら、macOS のパスワードを入力します。

   ```
   $ brew install finch
   ```

1. インストールされている Finch バージョンを確認します。

   ```
   $ finch --version
   ```

1. Finch 仮想マシンを初期化します (初回セットアップ)。

   ```
   $ finch vm init
   ```

1. Finch 仮想マシンを起動します。

   ```
   $ finch vm start
   ```

1. Finch 仮想マシンのステータスを確認します。

   ```
   $ finch vm status
   ```

1. Finch が正しく実行されることを確認します。

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

詳細については、「[Installing Finch on macOS](https://runfinch.com/docs/managing-finch/macos/installation/)」を参照してください。

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

Finch は、Amazon Linux、Ubuntu、または一般的なインストール方法を使用してインストールできます。詳細については、「[Installing Finch on Linux](https://runfinch.com/docs/managing-finch/linux/installation/)」を参照してください。

## CLI AWS SAM Finchを使用した の設定
<a name="install-finch-configuration"></a>

をインストールするとFinch、 CLI AWS SAM Dockerは が実行されないときにコンテナランタイムFinchとして を自動的に検出して使用します。

**注記**  
Finch は Docker のフォールバックとして機能します。Docker と の両方Finchをインストールして実行している場合、 AWS SAM CLI Docker はデフォルトで優先順位を付けます。

### 管理者環境設定構成 (macOS)
<a name="install-finch-configuration-preference"></a>

管理者設定ファイルを作成することで、特定のコンテナランタイムをデフォルトとして使用するように AWS SAM CLI を設定できます。このシステム全体の環境設定は、デフォルトのフォールバック動作を上書きします。

**利用可能な設定オプション**
+ **Finch を優先コンテナランタイムとして設定します。**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string finch" /Library/Preferences/com.amazon.samcli.plist
  ```
+ **Docker を優先コンテナランタイムとして設定します。**

  ```
  $ sudo /usr/libexec/PlistBuddy -c "Add :DefaultContainerRuntime string docker" /Library/Preferences/com.amazon.samcli.plist
  ```
+ **環境設定を削除します (デフォルトの動作に戻す)。**

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

**注記**  
管理者設定が設定されていない場合、 AWS SAM CLI はDockerデフォルトで を使用します。 Dockerは、 が実行されていないときのフォールバックFinchとして を使用します。

### ディレクトリマウントの違い (macOS)
<a name="install-finch-differences"></a>

macOS では、ホームディレクトリ (`~`) または の外部でプロジェクトを見つけた場合、 AWS SAM ローカルコマンドは失敗します`/Volumes`。この設計は、セキュリティ上の理由からディレクトリの自動マウントを制限しますが、ユーザーには通知されません。

**緩和オプション**
+ **オプション 1:** テキストエディタで Finch 設定 `~/.finch/finch.yaml` を開き、`additional_directories` セクションの下にプロジェクトパスを追加して、Finch 仮想マシンを再起動します。詳細については、「[Finch ドキュメント](https://runfinch.com/docs/managing-finch/macos/disk-management/#adding-additional-disk-mounts)」を参照してください。

  ```
  $ finch vm stop
  $ finch vm start
  ```
+ **オプション 2:** プロジェクトをホームディレクトリに移動します。

## インストールの検証
<a name="install-finch-verification"></a>

をインストールして起動したらFinch、 CLI AWS SAM で動作することを確認します。

### 基本的な検証
<a name="install-finch-verification-basic"></a>

次のコマンドを実行して、CLI AWS SAM が を使用できることを確認しますFinch。

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

を使用してコンテナ環境でアプリケーションFinchを構築する AWS SAM CLI が表示されます。

**注記**  
Finch は Docker のフォールバックとして機能します。Docker が実行されている場合、 AWS SAM CLI はDockerデフォルトで優先順位を付けます。

### フォールバックとしての Finch のテスト
<a name="install-finch-verification-fallback"></a>

Docker の実行時におけるフォールバックとして Finch をテストするには、まず Docker を停止する必要があります。

**Finch フォールバック機能をテストする**

1. オペレーティングシステムに適したコマンドを使用して Docker を停止します。

   **macOS**:

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

   Docker が停止していることを確認します。

   ```
   $ docker ps
   ```

   **Linux** ：

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

   Docker が停止していることを確認します。

   ```
   $ sudo systemctl status docker
   ```

1. `sam build --use-container` コマンドを実行して、CLI AWS SAM がフォールバックFinchとして を自動的に使用することを確認します。

## Finch の停止
<a name="install-finch-stopping"></a>

Finch を停止する必要がある場合は、次のコマンドを使用します。

**macOS**:

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

Finch が停止していることを確認します。

```
$ finch vm status
```

**Linux** ：

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

Finch が停止していることを確認します。

```
$ sudo systemctl status finch
```

## トラブルシューティング
<a name="install-finch-troubleshooting"></a>

Finch で問題が発生した場合は、以下を実行します。
+ オペレーティングシステムが前提条件を満たしていることを確認します。
+ システムで仮想化が有効になっていることを確認します。
+ macOS の場合は、仮想マシンに十分なディスク容量があることを確認します。
+ Linux の場合は、`systemctl` コマンドを実行するための適切な許可があることを確認します。
+ マルチアーキテクチャイメージを Amazon Elastic Container Registry (Amazon ECR) にプッシュするときに「メディアタイプがサポートされていない」エラーで CloudFormation デプロイに失敗した場合、マルチアーキテクチャイメージを使用する代わりに単一のイメージアーティファクトを作成します。この問題は、Finch がイメージインデックスとイメージの両方を Amazon ECR にプッシュする一方で、Docker がイメージのみをプッシュするために発生します。
+ ターゲット関数のアーキテクチャが Linux 上のホストマシンのアーキテクチャと一致しないときにクロスプラットフォーム構築が失敗する場合は、`sudo finch run --privileged --rm tonistiigi/binfmt:master --install all` を実行してクロスプラットフォームエミュレーションを有効にします。

その他のトラブルシューティングについては、「[Finch ドキュメント](https://runfinch.com/docs/)」、または「[AWS SAMCLI トラブルシューティング](sam-cli-troubleshooting.md)」を参照してください。

## 次の手順
<a name="install-finch-next-steps"></a>

Finch をインストールしたので、 CLI AWS SAM でこれを使用して以下を実行できます。
+ `sam build --use-container` とコンテナを使用してサーバーレスアプリケーションを構築する。詳細については、「[sam build](sam-cli-command-reference-sam-build.md)」を参照してください。
+ `sam local invoke` を使用して Lambda 関数をローカルでテストする。詳細については、「[sam local invoke](sam-cli-command-reference-sam-local-invoke.md)」を参照してください。
+ `sam local start-api` を使用してローカル API Gateway を起動する。詳細については、「[sam local start-api](sam-cli-command-reference-sam-local-start-api.md)」を参照してください。
+ `sam local start-lambda` を使用してローカル Lambda エンドポイントを起動する。詳細については、「[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md)」を参照してください。

コンテナで CLI を使用する方法の詳細については、 AWS SAM 「」を参照してください[を使用したデフォルトのビルド AWS SAM](serverless-sam-cli-using-build.md)。