Конфигурация шаблона (template.yaml):
Код: Выделить всё
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
# Create Track Function
CreateTrackFunction:
Type: AWS::Serverless::Function
Properties:
Handler: tracks.create_track.lambda_handler
Runtime: python3.12
CodeUri: ./tracks
Policies:
- DynamoDBCrudPolicy:
TableName: Tracks
# Update Track Function
UpdateTrackFunction:
Type: AWS::Serverless::Function
Properties:
Handler: tracks.update_track.lambda_handler
Runtime: python3.12
CodeUri: ./tracks
Policies:
- DynamoDBCrudPolicy:
TableName: Tracks
# Delete Track Function
DeleteTrackFunction:
Type: AWS::Serverless::Function
Properties:
Handler: tracks.delete_track.lambda_handler
Runtime: python3.12
CodeUri: ./tracks
Policies:
- DynamoDBCrudPolicy:
TableName: Tracks
# List Tracks Function
ListTracksFunction:
Type: AWS::Serverless::Function
Properties:
Handler: tracks.list_tracks.lambda_handler
Runtime: python3.12
CodeUri: ./tracks
Policies:
- DynamoDBReadPolicy:
TableName: Tracks
# Upload Audio Function
UploadAudioFunction:
Type: AWS::Serverless::Function
Properties:
Handler: upload_audio.lambda_handler
Runtime: python3.12
CodeUri: ./audio
Policies:
- S3WritePolicy:
BucketName: wave-loft-audio-bucket
Когда я пытаюсь вызвать UploadAudioFunction локально с помощью следующей команды:
Код: Выделить всё
sam local invoke UploadAudioFunction --event events/event.json --debug
Код: Выделить всё
[ERROR] Runtime.ImportModuleError: Unable to import module 'upload_audio': No module named 'upload_audio'
Код: Выделить всё
demo-app/
├── template.yaml
├── tracks/
│ ├── create_track.py
│ ├── update_track.py
│ ├── delete_track.py
│ └── list_tracks.py
├── audio/
│ └── upload_audio.py
└── events/
└── event.json
Почему функция UploadAudioFunction работает правильно при развертывании на AWS, но завершается с ошибкой ImportModuleError при локальном вызове с помощью SAM? Как устранить это несоответствие для успешной локальной отладки функции?
Журнал ошибок:
Код: Выделить всё
[ERROR] Runtime.ImportModuleError: Unable to import module 'upload_audio': No module named 'upload_audio'
Traceback (most recent call last):
14 Dec 2024 18:11:40,432 [ERROR] (rapid) Init failed InvokeID= error=Runtime exited with error: exit status 1
Подробнее здесь: https://stackoverflow.com/questions/792 ... ws-deploym