AWS SAMCLI 문제 해결 - AWS Serverless Application Model

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

AWS SAMCLI 문제 해결

AWS Serverless Application Model 명령줄 인터페이스 ()AWS SAMCLI 를 사용, 설치 및 관리할 때 발생하는 오류 메시지 문제를 해결합니다.

설치 오류

Linux

도커 오류: “도커 데몬에 연결할 수 없습니다. docker 데몬이 이 호스트에서 실행되고 있습니까?”

경우에 따라서는 ec2-user가 Docker 대몬에 액세스할 수 있는 권한을 제공하기 위해 인스턴스를 재부팅해야 할 수도 있습니다. 이 오류가 발생하면 인스턴스를 재부팅합니다.

셸 오류: ‘명령을 찾을 수 없음’

이 오류가 발생하면 셸이 경로에서 AWS SAMCLI 실행 파일을 찾을 수 없는 것입니다. AWS SAMCLI 실행 파일을 설치한 디렉터리의 위치를 확인한 다음 디렉터리가 경로에 있는지 확인합니다.

AWS SAMCLI오류: “/lib64/libc.so.6: 버전 `GLIBC_2.14'를 찾을 수 없음 (/usr/local/ /dist/libz.so.1 필요)” aws-sam-cli

이 오류가 표시되면 지원되지 않는 Linux 버전을 사용하고 있고 기본 제공 glibc 버전이 오래된 것입니다. 다음 중 하나를 사용하세요.

  • Linux 호스트를 CentOS, Fedora, Ubuntu 또는 Amazon Linux 2 최신 배포판의 64비트 버전으로 업그레이드합니다.

  • AWS SAM CLI의 설치에 대해서는 이 지침을 따릅니다.

macOS

설치 실패


						설치 실패 메시지를 보여주는 AWS SAMCLI 설치 프로그램 이미지

사용자용 AWS SAMCLI를 설치하고 쓰기 권한이 없는 설치 디렉터리를 선택한 경우 이 오류가 발생할 수 있습니다. 다음 중 하나를 사용하세요.

  1. 쓰기 권한이 있는 다른 설치 디렉터리를 선택합니다.

  2. 설치 프로그램을 삭제합니다. 그런 다음 다시 다운로드하고 실행합니다.

오류 메시지

curl 오류: “curl: (6) 해결할 수 없습니다:...”

API Gateway 엔드포인트를 호출하려고 하면 다음 오류가 표시됩니다.

curl: (6) Could not resolve: endpointdomain (Domain name not found)

이는 유효하지 않은 도메인으로 요청을 보내려고 시도했음을 의미합니다. 이는 서버리스 애플리케이션이 성공적으로 배포되지 않았거나 curl 명령에 오타가 있는 경우 발생할 수 있습니다. 콘솔 또는 를 AWS CLI사용하여 애플리케이션이 성공적으로 배포되었는지 확인하고 명령이 올바른지 확인하십시오. AWS CloudFormation curl

오류: 지정된 스택 이름으로 정확한 리소스 정보를 찾을 수 없습니다.

단일 Lambda 함수 리소스가 포함된 애플리케이션에서 sam remote invoke 명령을 실행하면 다음 오류가 표시됩니다.

Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
가능한 원인: --stack-name 옵션을 제공하지 않았습니다.

함수 ARN이 인수로 제공되지 않은 경우 sam remote invoke 명령을 실행하려면 --stack-name 옵션을 제공해야 합니다.

해결 방법: --stack-name 옵션을 제공합니다.

다음은 그 예제입니다.

$ sam remote invoke --stack-name sam-app Invoking Lambda Function HelloWorldFunction START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Duration: 11.31 ms Billed Duration: 12 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 171.71 ms {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%

오류: 스택 이름에서 리소스 정보를 찾을 수 없습니다.

sam remote invoke 명령을 실행하고 Lambda 함수 ARN을 인수로 전달하면 다음 오류가 표시됩니다.

Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
가능한 원인: samconfig.toml 파일에 스택 이름 값이 정의되어 있습니다.

AWS SAMCLI는 먼저 samconfig.toml 파일에 스택 이름이 있는지 확인합니다. 지정된 경우 인수는 논리적 ID 값으로 전달됩니다.

해결 방법: 함수의 논리적 ID를 대신 전달합니다.

함수의 ARN 대신 함수의 논리적 ID를 인수로 전달할 수 있습니다.

해결 방법: 구성 파일에서 스택 이름 값을 제거합니다.

구성 파일에서 스택 이름 값을 제거할 수 있습니다. 이렇게 하면 AWS SAMCLI가 함수 ARN을 논리적 ID 값으로 전달하는 것을 방지할 수 있습니다.

구성 파일을 수정한 후 sam build를 실행합니다.

오류: 관리형 리소스를 생성하지 못했습니다. 자격 증명을 찾을 수 없습니다.

sam deploy 명령을 실행할 때 다음 오류가 표시됩니다.

Error: Failed to create managed resources: Unable to locate credentials

이는 에서 AWS 서비스를 호출할 수 있도록 하는 AWS 자격 증명을 설정하지 않았음을 의미합니다. AWS SAMCLI 이 문제를 해결하려면 AWS 자격 증명을 설정해야 합니다. 자세한 설명은 AWS 보안 인증 설정 섹션을 참조하세요.

오류: FileNotFoundError 윈도우에서

AWS SAMCLIWindows에서 명령을 실행할 때 다음과 같은 오류가 표시될 수 있습니다.

Error: FileNotFoundError

가능한 원인: Windows 최대 경로 제한을 초과하는 파일 경로와 상호 작용할 AWS SAMCLI 수 있습니다.

해결 방법: 이 문제를 해결하려면 새로운 긴 경로 동작을 활성화해야 합니다. 이 작업을 수행하려면 Microsoft Windows 앱 개발 설명서의 Windows 10, 버전 1607 이상에서 긴 경로 활성화를 참조하십시오.

오류: pip의 종속성해석기...

오류 텍스트 예:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
가능한 원인: pip를 사용하여 패키지를 설치하는 경우 패키지 간 종속성이 충돌할 수 있습니다.

aws-sam-cli 패키지의 버전은 aws-sam-translator 패키지 버전에 따라 달라집니다. 예를 들어 aws-sam-cli v1.58.0은 aws-sam-translator v1.51.0에 따라 달라질 수 있습니다.

pip를 사용하여 AWS SAMCLI를 설치한 다음 새로운 버전의 aws-sam-translator를 사용하는 다른 패키지를 설치하면 다음과 같은 상황이 발생합니다.

  • 새로운 버전의 aws-sam-translator가 설치됩니다.

  • aws-sam-cli의 현재 버전과 aws-sam-translator의 새로운 버전은 호환되지 않을 수 있습니다.

  • 를 AWS SAMCLI 사용하면 종속성 확인자 오류가 발생합니다.

솔루션
  1. AWS SAMCLI 네이티브 패키지 설치 프로그램을 사용합니다.

    1. pip를 사용하여 AWS SAM CLI 제거 지침은 AWS SAM CLI 제거 섹션을 참조하십시오.

    2. 네이티브 패키지 설치 프로그램을 사용하여 AWS SAMCLI를 설치합니다. 지침은 AWS SAM CLI의 설치 섹션을 참조하세요.

    3. 필요한 경우 네이티브 패키지 설치 프로그램을 사용하여 AWS SAMCLI를 업그레이드합니다. 지침은 AWS SAMCLI업그레이드 섹션을 참조하십시오.

  2. pip를 사용해야 하는 경우 가상 환경에 AWS SAM CLI를 설치하는 것이 좋습니다. 이렇게 하면 설치 환경이 깔끔해지고 오류 발생 시 격리된 환경이 보장됩니다. 지침은 AWS SAM을 이용하여 가상 환경에 CLIpip 설치 섹션을 참조하십시오.

오류: '원격' 명령이 없습니다.

sam remote invoke 명령을 실행할 때 다음 오류가 표시됩니다.

$ sam remote invoke ... 2023-06-20 08:15:07 Command remote not available Usage: sam [OPTIONS] COMMAND [ARGS]... Try 'sam -h' for help. Error: No such command 'remote'.
가능한 원인: AWS SAMCLI의 버전이 오래된 버전입니다.

이 AWS SAMCLI sam remote invoke 명령은 버전 1.88.0과 함께 AWS SAMCLI 릴리스되었습니다. 버전은 sam --version 명령을 통해 확인할 수 있습니다.

해결 방법: AWS SAMCLI를 최신 버전으로 업그레이드합니다.

지침은 AWS SAMCLI업그레이드 섹션을 참조하십시오.

오류: AWS SAM 프로젝트를 로컬에서 실행해야 합니다. Docker 설치하셨습니까?

sam local start-api 명령을 실행할 때 다음 오류가 표시됩니다.

Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

Docker가 제대로 설치되지 않았음을 의미합니다. 애플리케이션을 로컬에서 테스트하는 데 Docker가 필요합니다. 이 문제를 해결하려면 개발 호스트용 Docker 설치 지침을 따르세요. 자세한 설명은 Docker 설치 섹션을 참조하세요.

오류: 보안 제약 조건이 충족되지 않음

sam deploy --guided 실행 중에 질문 Function may not have authorization defined, Is this okay? [y/N]을 묻는 메시지가 표시됩니다. 이 프롬프트에 N(기본 응답)으로 응답하면 다음 오류가 표시됩니다.

Error: Security Constraints Not Satisfied

이 프롬프트는 배포하려는 애플리케이션에 공개적으로 액세스할 수 있는 Amazon API Gateway API가 승인 없이 구성되어 있을 수 있다는 메시지를 표시합니다. 이 프롬프트에 N으로 응답하는 것은 괜찮지 않다고 말하는 것입니다.

이 문제를 해결할 수 있도록 다음 옵션이 제공됩니다.

  • 권한 부여를 통해 애플리케이션을 구성하세요. 권한 부여 구성에 대한 자세한 내용은을 잠조하세요API Gateway API에 대한 액세스 제어

  • 승인 없이 공개적으로 액세스할 수 있는 API 엔드포인트를 만들려면 배포를 다시 시작하고 이 질문에 Y로 응답하여 배포해도 괜찮다는 의사를 표시하세요.

인증 토큰 누락

API Gateway 엔드포인트를 호출하려고 하면 다음 오류가 표시됩니다.

{"message":"Missing Authentication Token"}

이는 올바른 도메인으로 요청을 보내려고 했지만 URI를 인식할 수 없음을 의미합니다. 이 문제를 해결하려면 전체 URL을 확인하고 올바른 URL로 curl 명령을 업데이트합니다.

경고 메시지

경고:... AWS 더 이상 Homebrew 설치 프로그램을 유지 관리하지 않습니다... AWS SAM

Homebrew를 사용하여 AWS SAMCLI를 설치할 때 다음과 같은 경고 메시지가 나타납니다.

Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
잠재적 원인: Homebrew 지원을 더 이상 유지할 수 AWS 없습니다.

2023년 9월부터 더 이상 Homebrew 설치 프로그램을 유지 관리하지 않습니다. AWS AWS SAMCLI

해결 방법: AWS 지원되는 설치 방법을 사용하십시오.
해결 방법: 계속 Homebrew를 사용하려면 커뮤니티 관리 설치 프로그램을 사용합니다.
  • 재량에 따라 커뮤니티 관리 Homebrew 설치 프로그램을 사용할 수 있습니다. 지침은 AWS SAM로 CLIHomebrew 관리 단원을 참조하세요.