Я пытаюсь развернуть AWS лямбда-функцию с помощью инструмента SAM CLI из MacOS, не используя контейнеры Docker.
- SAM CLI версии 0.4.0
- Python 3.8 время выполнения для функции Lambda
- Python 3.7, установленной локально на MacOS
- У меня есть файл
requirements.txt
, в том же каталоге, что и мой файл функции Lambda
Requirements.txt
boto3
botostubs
Сценарий развертывания (PowerShell)
sam build --template-file $InputTemplate
sam package --region $AWSRegion --template-file $InputTemplate --profile $ProfileName --s3-bucket $BucketName --output-template-file $OutputTemplate
sam deploy --region $AWSRegion --profile $ProfileName --template-file $OutputTemplate --stack-name $StackName --capabilities CAPABILITY_NAMED_IAM
Фактическое поведение
SAM CLI игнорирует мой requirements.txt
файл, и только развертывание моего исходного кода. Это приводит к следующей ошибке при тестировании моей функции.
{
"errorMessage": "Unable to import module 'xxxxxxxxxxxxxx': No module named 'botostubs'",
"errorType": "Runtime.ImportModuleError"
}
Ожидаемое поведение
SAM CLI упаковывает объявленные зависимости Python в requirements.txt
вместе с моим исходным кодом .
Вопрос : Как я могу гарантировать, что SAM CLI загрузит и упакует мои Python зависимости вместе с моим исходным кодом? Я следовал документации, насколько мне известно.
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html