
팁
VSCode에서 파이썬 파일 바로 찾는 방법
Ctrl + P
venv가 3.13 버전으로 되어있어서 삭제한뒤 다시 지정해서 가상환경 설정을 해주었다.
py -3.11 -m venv .venv
이후 activate
이후 Azurite run
이후 F5로 실행

samples-workitems에 이미지를 업로드하면 자동으로 thumbnails 컨테이너에도 추가된다.


해당 thumbnails 기능으로, 사용자의 프로필 사진을 저장하는 기능을 처리할 수 있다.
(128x128로 원본 크기에 비해 줄어들도록 처리)

만약 안되는 경우
1. 함수 앱 실행 안함
2. local.settings.json 오기입
#매일 자정에 실행(크론 표현식)
@app.timer_trigger(schedule="0 0 */12 * * *", arg_name="mytimer", run_on_start=False)
def change_cool_old_thumbnail(mytimer: func.TimerRequest):
logging.info('Python timer trigger 함수가 실행되었습니다.')
try:
#old_thumbnail을 쿨 하는 코드
#외부유출X여서 생략
#5분이 지나면 쿨파일로 변경
except KeyError as e:
logging.error(f'Configuration Error: 환경 변수가 누락되었습니다. {e}.')
except Exception as e:
logging.error(f'에러가 발생했습니다: {e}')

파일이 대량으로 업로드되는 서비스 가정
저장소 비용을 효율적으로 관리 필요
Azure에서는 수명 주기 관리에서 규칙 추가 가능

설정-구성 에서 Blob 액세스 계층(기본값) 설정 가능

http://localhost:7071/admin/functions/change_cool_old_thumbnail
Content-Type: application/json
{
"input": ""
}
명령 프롬프트에서 curl 실행
curl -X POST -H "Content-Type: application/json" -d "{\"input\": \"\"}" "http://localhost:7071/admin/functions/change_cool_old_thumbnail"




기존 함수앱 VSCode창은 두고, Shift+VSCode 클릭하여 추가 창 띄우기


http_trigger의 엔트리포인트 기입
pnpm i
pnpm dev

F12 → Network → Fetch/XHR
조회 버튼 클릭 시






local.settings.json에는 연결 문자열 등 민감한 정보가 포함되므로 절대 Git과 같은 공유 리포지토리에 커밋해서는 안 됩니다. 대신 .gitignore에 등록하고, 팀원 간에는 샘플 파일(예: local.settings.example.json)을 공유하는 것이 표준 관행입니다.



https://learn.microsoft.com/ko-kr/azure/storage/storage-explorer/vs-azure-tools-storage-manage-with-storage-explorer?tabs=windows
테스트를 위해 파일 업로드를 반복하는것은 비용 발생.
Azurite 에뮬레이터를 사용해서 로컬에서 테스트 관리




devstoreaccount1은 공식적으로 제공하는 샘플 account이다.
@app.blob_trigger(arg_name="myblob", path="samples-workitems/{name}", connection="AzureWebJobsStorage")
@app.blob_output(arg_name="outputblob", path="thumbnails/{name}", connection="AzureWebJobsStorage")
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "python",
"STORAGE_CONNECTION_STRING": 생략
"TARGET_CONTAINER_NAME": "thumbnails"
},
"Host": {
"CORS": "*"
}
}
이렇게되어있기 때문에, connection을 AzureWebJobsStorage(에뮬쪽)으로 맞춰줘야 한다.














로드 파일

