기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SAMCLI 문제 해결
이 섹션에서는 AWS Serverless Application Model 명령줄 인터페이스(AWS SAM CLI)의 사용, 설치 및 관리 시 발생하는 오류 메시지를 해결하는 방법에 대한 세부 정보를 제공합니다.
문제 해결
AWS SAM CLI 관련 문제 해결 지침은 설치 오류 문제 해결 섹션을 참조하세요.
오류 메시지
curl 오류: “curl: (6) 해결할 수 없습니다:...”
API Gateway 엔드포인트를 호출하려고 하면 다음 오류가 표시됩니다.
curl: (6) Could not resolve: endpointdomain
(Domain name not found)
이는 유효하지 않은 도메인으로 요청을 보내려고 시도했음을 의미합니다. 이는 서버리스 애플리케이션이 성공적으로 배포되지 않았거나 curl 명령에 오타가 있는 경우 발생할 수 있습니다. AWS CloudFormation 콘솔 또는 AWS CLI를 사용하여 애플리케이션이 성공적으로 배포되었는지 확인하고 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
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-app
오류: 스택 이름에서 리소스 정보를 찾을 수 없습니다.
sam remote invoke
명령을 실행하고 Lambda 함수 ARN을 인수로 전달하면 다음 오류가 표시됩니다.
Error: Can't find resource information from stack name (<stack-name>
) and resource id (<function-id>
)
- 가능한 원인:
samconfig.toml
파일에 스택 이름 값이 정의되어 있습니다. -
AWS SAM CLI는 먼저
samconfig.toml
파일에 스택 이름이 있는지 확인합니다. 지정된 경우 인수는 논리적 ID 값으로 전달됩니다. - 해결 방법: 함수의 논리적 ID를 대신 전달합니다.
-
함수의 ARN 대신 함수의 논리적 ID를 인수로 전달할 수 있습니다.
- 해결 방법: 구성 파일에서 스택 이름 값을 제거합니다.
-
구성 파일에서 스택 이름 값을 제거할 수 있습니다. 이렇게 하면 AWS SAM CLI가 함수 ARN을 논리적 ID 값으로 전달하는 것을 방지할 수 있습니다.
구성 파일을 수정한 후
sam build
를 실행합니다.
오류: 관리형 리소스를 생성하지 못했습니다. 자격 증명을 찾을 수 없습니다.
sam deploy 명령을 실행할 때 다음 오류가 표시됩니다.
Error: Failed to create managed resources: Unable to locate credentials
즉, AWS SAM CLI가 AWS 서비스를 호출할 수 있도록 AWS 보안 인증을 설정하지 않았습니다. 이 문제를 해결하려면 AWS 보안 인증을 설정해야 합니다. 자세한 내용은 AWS 보안 인증 설정 단원을 참조하십시오.
오류: Windows의 FileNotFoundError
Windows의 AWS SAM CLI에서 명령을 실행할 때 다음 오류가 발생할 수 있습니다.
Error: FileNotFoundError
가능한 원인: AWS SAM CLI는 Windows 최대 경로 제한을 초과하는 파일 경로와 상호 작용할 수 있습니다.
해결 방법: 이 문제를 해결하기 위해서는 새로운 긴 경로 동작을 활성화해야 합니다. 이렇게 하려면 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 SAM CLI를 설치한 다음 새로운 버전의
aws-sam-translator
를 사용하는 다른 패키지를 설치하면 다음과 같은 상황이 발생합니다.-
새로운 버전의
aws-sam-translator
가 설치됩니다. -
aws-sam-cli
의 현재 버전과aws-sam-translator
의 새로운 버전은 호환되지 않을 수 있습니다. -
AWS SAM CLI를 사용하면 종속성 해석기 오류가 발생합니다.
솔루션
-
AWS SAM CLI 네이티브 패키지 설치 프로그램을 사용합니다.
-
pip를 사용하여 AWS SAM CLI 제거 지침은 AWS SAM CLI 제거 단원을 참조하십시오.
-
네이티브 패키지 설치 프로그램을 사용하여 AWS SAM CLI를 설치합니다. 지침은 AWS SAM CLI 설치 섹션을 참조하세요.
-
필요한 경우 네이티브 패키지 설치 프로그램을 사용하여 AWS SAM CLI를 업그레이드합니다. 지침은 AWS SAMCLI업그레이드 단원을 참조하십시오.
-
-
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 SAM CLI의 버전이 오래된 버전입니다.
-
이 AWS SAM CLI
sam remote invoke
명령은 AWS SAM CLI 버전 1.88.0과 함께 릴리스되었습니다. 버전은sam --version
명령을 통해 확인할 수 있습니다. - 해결 방법: AWS SAM CLI를 최신 버전으로 업그레이드합니다.
-
지침은 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
으로 응답하는 것은 괜찮지 않다고 말하는 것입니다.
이 문제를 해결할 수 있도록 다음 옵션이 제공됩니다.
-
권한 부여를 통해 애플리케이션을 구성하세요. 권한 부여 구성에 대한 자세한 내용은을 잠조하세요AWS SAM 템플릿으로 API 액세스 제어
-
승인 없이 공개적으로 액세스할 수 있는 API 엔드포인트를 만들려면 배포를 다시 시작하고 이 질문에
Y
로 응답하여 배포해도 괜찮다는 의사를 표시하세요.
인증 토큰 누락
API Gateway 엔드포인트를 호출하려고 하면 다음 오류가 표시됩니다.
{"message":"Missing Authentication Token"}
이는 올바른 도메인으로 요청을 보내려고 했지만 URI를 인식할 수 없음을 의미합니다. 이 문제를 해결하려면 전체 URL을 확인하고 올바른 URL로 curl 명령을 업데이트합니다.
경고 메시지
경고:... AWS더 이상 Homebrew 설치 프로그램을 유지 관리하지 않습니다... AWS SAM
Homebrew를 사용하여 AWS SAM CLI를 설치할 때 다음과 같은 경고 메시지가 나타납니다.
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 ...
- 잠재적 원인: AWS가 Homebrew 지원을 더 이상 유지할 수 없습니다.
-
2023년 9월부터 AWS는 더 이상 AWS SAM CLI의 Homebrew 설치 프로그램을 유지 관리하지 않습니다.
해결 방법: AWS 지원 설치 방법을 사용합니다.
-
AWS 지원 설치 방법은 AWS SAM CLI 설치에서 찾을 수 있습니다.
해결 방법: 계속 Homebrew를 사용하려면 커뮤니티 관리 설치 프로그램을 사용합니다.
-
재량에 따라 커뮤니티 관리 Homebrew 설치 프로그램을 사용할 수 있습니다. 지침은 AWS SAM로 CLIHomebrew 관리 단원을 참조하세요.
-