AWS SAM CLI와 함께 Finch 사용할 설치 - AWS Serverless Application Model

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SAM CLI와 함께 Finch 사용할 설치

Finch는 AWS의 대안Docker, 특히 macOS 및 Linux 시스템에 유용한 컨테이너 개발 도구입니다. 자세한 내용은 GitHub의 Finch를 참조하세요. 를 사용하면와 유사한 로컬 환경을 컨테이너 AWS Lambda 로 Finch AWS SAM 제공하여 서버리스 애플리케이션을 빌드, 테스트 및 디버깅할 수 있습니다.

참고

로컬에서 애플리케이션을 테스트Finch하고, --use-container 옵션을 사용하여 배포 패키지를 빌드하고, OCI 이미지 함수를 빌드해야 합니다. AWS SAM CLI 버전 1.145.0부터 AWS SAM CLI는에 대한 대체 컨테이너 런타임Finch으로를 지원합니다Docker.

Finch 설치

Finch을 운영 체제 상에 설치하려면 이 지침을 따르십시오.

사전 조건

참고

Finch AWS SAM CLI 통합은 macOS 및 Linux 시스템에서 사용할 수 있습니다. Windows 사용자의 경우 Finch 기능을 위해 가상 머신 또는 Linux 환경을 사용하는 것이 좋습니다.

macOS 버전:

  • macOS 15 Sequoia

  • macOS 14 소노마

참고

Finch는 최신 두 버전의 macOS를 지원합니다.

Linux:

  • Linux 커널 v4.x+

Finch 설치

macOS에 Finch를 설치하려면
  1. brew CLI를 Finch 사용하여를 설치합니다. 메시지가 표시되면 macOS 암호를 입력합니다.

    $ brew install finch
  2. 설치된 Finch 버전을 확인합니다.

    $ finch --version
  3. Finch 가상 머신을 초기화합니다(처음 설정).

    $ finch vm init
  4. Finch 가상 머신을 시작합니다.

    $ finch vm start
  5. Finch 가상 머신의 상태를 확인합니다.

    $ finch vm status
  6. 가 올바르게 Finch 실행되는지 확인합니다.

    $ finch --info $ finch ps

자세한 내용은 macOS에 Finch 설치를 참조하세요.

Finch Amazon Linux, Ubuntu 또는 일반 설치 방법을 사용하여를 설치할 수 있습니다. 자세한 내용은 Linux에 Finch 설치를 참조하세요.

CLIFinch를 사용하여 AWS SAM 구성

Finch를 설치한 후 AWS SAM CLI는 Docker가 실행되지 않을 때 컨테이너 런타임Finch으로를 자동으로 감지하고 사용합니다.

참고

Finch는에 대한 대체 역할을 합니다Docker. Docker 및를 모두 Finch 설치하고 실행 중인 경우 AWS SAM 기본적으로 CLI가 우선 순위를 지정합니다Docker.

관리자 기본 설정 구성(macOS)

관리자 기본 설정 파일을 생성하여 특정 컨테이너 런타임을 기본값으로 사용하도록 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)

macOS에서는 홈 디렉터리(~) 또는 외부에서 프로젝트를 찾으면 AWS SAM 로컬 명령이 실패합니다/Volumes. 이 설계는 사용자가 알지 못하는 상태에서 보안상의 이유로 자동 디렉터리 탑재를 제한합니다.

완화 옵션

  • 옵션 1: 텍스트 편집기에서 Finch 구성을 열고 additional_directories 섹션 아래에 프로젝트 경로를 ~/.finch/finch.yaml 추가한 다음 Finch 가상 머신을 다시 시작합니다. 자세한 내용은 Finch 설명서를 참조하세요.

    $ finch vm stop $ finch vm start
  • 옵션 2: 프로젝트를 홈 디렉터리로 이동합니다.

설치 확인

를 설치하고 시작한 후 AWS SAM CLI에서 작동하는지 Finch확인합니다.

기본 확인

다음 명령을 실행하여 AWS SAM CLI가를 사용할 수 있는지 확인합니다. Finch

$ sam build --use-container

를 사용하여 컨테이너 환경에서 애플리케이션을 빌드Finch하는 AWS SAM CLI가 표시되어야 합니다.

참고

Finch는에 대한 대체 역할을 합니다Docker. Docker가 실행 중인 경우 AWS SAM CLI는 Docker 기본적으로 우선 순위를 지정합니다.

폴백Finch으로 테스트

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
  2. sam build --use-container 명령을 실행하여 AWS SAM CLI가 폴백Finch으로를 자동으로 사용하는지 확인합니다.

중지 중 Finch

를 중지해야 하는 경우 다음 명령을 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

문제 해결

에 문제가 발생하는 경우Finch:

  • 운영 체제가 사전 조건을 충족하는지 확인합니다.

  • 시스템에서 가상화를 활성화했는지 확인합니다.

  • macOS의 경우 가상 머신에 충분한 디스크 공간이 있는지 확인합니다.

  • Linux의 경우 systemctl 명령을 실행할 수 있는 적절한 권한이 있는지 확인합니다.

  • 다중 아키텍처 이미지를 Amazon Elastic Container Registry(Amazon ECR)로 푸시할 때 "미디어 유형이 지원되지 않음" 오류와 함께 AWS CloudFormation 배포 실패가 발생하는 경우 다중 아키텍처 이미지를 사용하는 대신 단일 이미지 아티팩트를 생성합니다. 이는가 이미지 인덱스와 이미지를 모두 Amazon ECR로 Finch 푸시하는 반면는 이미지만 Docker 푸시하기 때문에 발생합니다.

  • 대상 함수 아키텍처가 Linux의 호스트 머신 아키텍처와 일치하지 않을 때 교차 플랫폼 구축이 실패하는 경우를 실행하여 교차 플랫폼 에뮬레이션을 활성화합니다sudo finch run --privileged --rm tonistiigi/binfmt:master --install all.

추가 문제 해결은 Finch 설명서 또는 섹션을 참조하세요AWS SAMCLI 문제 해결.

다음 단계

이제를 Finch 설치했으므로 AWS SAM CLI와 함께 사용하여 다음을 수행할 수 있습니다.

  • 에서 컨테이너를 사용하여 서버리스 애플리케이션을 빌드합니다sam build --use-container. 자세한 내용은 sam build 단원을 참조하십시오.

  • 를 사용하여 로컬에서 Lambda 함수를 테스트합니다sam local invoke. 자세한 내용은 sam local invoke 단원을 참조하십시오.

  • 를 사용하여 로컬 API Gateway를 시작합니다sam local start-api. 자세한 내용은 sam local start-api 단원을 참조하십시오.

  • 를 사용하여 로컬 Lambda 엔드포인트를 시작합니다sam local start-lambda. 자세한 내용은 sam local start-lambda 단원을 참조하십시오.

컨테이너와 함께 AWS SAM CLI를 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요를 사용한 기본 빌드 AWS SAM.