http 히트에서 작동하는 azure 함수를 powershell에서 만들었습니다. JSON 파일을 처리 한 후 루트 폴더에 JSON 파일을 작성합니다. 그러나 동시에 여러 히트가 발생하면 파일 사용 오류가 발생합니다. 나는 azure 함수가 멀티 스레딩에서 잘 작동하지 않으며 변수가 하나의 프로세스를 실행하는 동안 수정 될 수 있으며 두 번째 프로세스가 발생한다는 것을 알고 있습니다. 대기열 저장소를 사용하고 싶지 않으므로 어떤 좋은 제안을 할 수 있습니까?Azure 함수는 동시에 여러 http 히트를 사용하여 동작하지 않습니다.
0
A
답변
1
당신이 잃고 싶지 않은 미세 기능 파일 시스템에는 아무 것도 쓰지 마십시오.
Cosmos DB 또는 다른 외부 데이터 저장소를 사용하여 데이터를 저장하십시오.
코드 샘플이 없으면 잘못을 수행했다고 말할 수 없습니다. 코드의 관점에서이 작업을 잘 수행 할 수 있어야하지만 파일이 사용 중인지 확인하고 오류가 발생하면 처리해야합니다 (즉, 429 오류/등을 기다리거나 던지기).
첫 번째 all : json 파일에 작성한 내용 (함수에 대한 app 서비스 계획)이 재활용되거나 변경 될 수 있습니다. 또한 함수가 확장되면 역사가없는 두 번째 json 파일이 생성됩니다. 당신은 그것을 원하지 않을 것입니다. 둘째 : 왜이 솔루션을 위해 Storage/SQL/Cosmos DB/테이블 스토리지/어플리케이션 인사이트/다른 것을 사용하지 않습니까? 세 번째 : 문제는 동일한 인스턴스의 여러 인스턴스에서만 발생해야합니다. 파일 잠금을 만들 수 있습니다. –
파일 데이터를 읽는 중이고 같은 파일에 다시 쓰는 중입니다. 따라서 히스토리 데이터를 얻을 수 있고 히트가 약간의 간격으로 발생할 때 작동합니다.하지만 두 번의 히트가 동시에 발생하면 두 인스턴스가 모두 파일에 액세스하려고 시도합니다. 하나는 그것을 보유 할 수 있고 다른 하나는 오류를 던집니다. 결과적으로 한 인스턴스는 모든 파일 데이터를 지우고 빈 파일을 남겨 둡니다. – Abhi619