기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SAM CLI와 함께 Finch 사용할 설치
Finch는 AWS에 대한 대안Docker, 특히 macOS 및 Linux 시스템에 유용한 컨테이너 개발 도구입니다. 자세한 내용은 Finch on GitHub
참고
애플리케이션을 로컬로 테스트하고, --use-container 옵션을 사용하여 배포 패키지를 빌드하며, OCI 이미지 함수를 빌드하려면 Finch이(가) 필요합니다. 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 Sonoma
참고
Finch은(는) 최신 두 버전의 macOS를 지원합니다.
Linux:
Linux 커널 v4.x+
Finch 설치하기
macOS에 Finch를 설치하려면
-
brewCLI를 사용하여 Finch을(를) 설치합니다. 프롬프트가 표시되면 macOS 암호를 입력합니다.$brew install finch -
설치된 Finch 버전을 확인합니다.
$finch --version -
Finch 가상 머신을 초기화합니다(처음 설정).
$finch vm init -
Finch 가상 머신을 시작합니다.
$finch vm start -
Finch 가상 머신의 상태를 확인합니다.
$finch vm status -
Finch이(가) 올바르게 실행되는지 확인합니다.
$finch --info$finch ps
자세한 내용은 Finch on macOS 설치하기
Amazon Linux, Ubuntu 또는 일반 설치 방법을 사용하여 Finch을(를) 설치할 수 있습니다. 자세한 내용은 Finch on Linux 설치하기
AWS SAM CLI로 Finch 구성하기
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 구성을 텍스트 편집기
~/.finch/finch.yaml에서 열고,additional_directories섹션 아래에 프로젝트 경로를 추가한 후, 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 폴백 기능 테스트하기
-
운영 체제에 맞는 적절한 명령어를 사용하여 Docker을(를) 중지하세요.
macOS:
$docker stop $(docker ps -q)$pkill -f "Docker Desktop"Docker이(가) 중지되었는지 확인하세요.
$docker psLinux:
$docker stop $(docker ps -q)$sudo systemctl stop dockerDocker이(가) 중지되었는지 확인하세요.
$sudo systemctl status docker -
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)로 푸시할 때 "미디어 유형이 지원되지 않음" 오류와 함께 CloudFormation 배포 실패가 발생하는 경우 다중 아키텍처 이미지를 사용하는 대신 단일 이미지 아티팩트를 생성합니다. 이것은 Finch이(가) 이미지 인덱스와 이미지를 모두 Amazon ECR로 푸시하는 반면, Docker은(는) 이미지만 푸시하기 때문에 발생합니다.
대상 함수 아키텍처가 Linux 호스트 머신 아키텍처와 일치하지 않아 교차 플랫폼 빌드가 실패하면,
sudo finch run --privileged --rm tonistiigi/binfmt:master --install all을(를) 실행하여 교차 플랫폼 에뮬레이션을 활성화하세요.
추가 문제 해결은 Finch 설명서
다음 단계
이제를 Finch 설치했으므로 AWS SAM CLI와 함께 사용하여 다음을 수행할 수 있습니다.
sam build --use-container을(를) 사용하여 컨테이너로 서버리스 애플리케이션 빌드 자세한 내용은 sam build 단원을 참조하십시오.sam local invoke을(를) 사용하여 로컬에서 Lambda 함수 테스트 자세한 내용은 sam local invoke 단원을 참조하십시오.sam local start-api을(를) 사용하여 로컬 API Gateway 시작 자세한 내용은 sam local start-api 단원을 참조하십시오.sam local start-lambda을(를) 사용하여 로컬 Lambda 엔드포인트 시작 자세한 내용은 sam local start-lambda 단원을 참조하십시오.
컨테이너에서 AWS SAM CLI를 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요를 사용한 기본 빌드 AWS SAM.