programing

Azure Functions Temp 저장소

i4 2023. 4. 26. 22:57
반응형

Azure Functions Temp 저장소

Azure Functions 디렉터리의 Temp 저장소에 파일을 저장하려고 할 때 (D:\home\data\temp\response.pdf), 다음과 같은 오류가 발생합니다.이 디렉토리에 쓸 수 없는 이유는 무엇입니까?

mscorlib: Exception has been thrown by the target of an invocation. System: An exception occurred during a WebClient request. mscorlib: ***Could not find a part of the path 'D:\home\data\temp\response.pdf'.***
2017-09-19T07:05:24.353 Function completed (Failure, Id=3aa4b740-ba8a-465c-ad7c-75b38fa2a472, Duration=334ms)
2017-09-19T07:06:31  No new trace in the past 1 min(s).

를 사용하는 것이 좋습니다.System.IO.Path.GetTempPath()이는 항상 주어진 시스템에 대한 유효한 경로를 제공하기 때문입니다.

또한 특정 인스턴스에 대해 함수가 동시에 여러 번 실행될 수 있으므로 각 실행에 대해 고유한 경로가 있는지 확인하는 것이 좋습니다.다음은 간단한 예입니다.

var tempPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

대신에, 우리는 사용할 수 있습니다.System.IO.Path.GetTempFileName()전체 경로와 고유한 파일 이름을 반환하기 전에 파일을 추가로 만듭니다.

저는 더 나은 선택을 합니다.사용할 수 있습니다.System.IO.Path.GetTempFileName()이것은 a를 만듭니다.%userprofile%\Local\Temp\tmpE128.tmp파일

예외에 따르면, 다음과 같이 보입니다.D:\home\data\temp\함수 프로젝트에 없습니다.Azure Kudu 툴(https://yourwebsiteName.scm.azurewebsites.net )로 확인해 보세요.경로가 존재하지 않으면 임시 폴더를 추가한 후 다시 시도하십시오.

Azure Web App 샌드박스에서 Azure Web App에 대한 자세한 정보를 얻을 수 있습니다.zure의 파일 구조에 대한 자세한 내용은 이 문서를 참조하십시오.

GetTempPath는 Azure 함수에서 만든 임시 파일에 사용할 수 있는 로컬 파일 시스템의 디렉터리 경로를 반환합니다.속도는 빠르지만 기능에 사용할 수 있는 공간이 많지 않습니다.

HOME 환경 변수는 매핑된 네트워크 드라이브를 가리킵니다.Azure Function에서도 읽기/쓰기가 가능하지만 이 드라이브는 Azure Blob Storage 계정에 매핑되므로 GetTempPath 디렉터리보다 훨씬 느립니다.HOME 디렉토리에 사용 가능한 공간이 훨씬 더 많습니다.

언급URL : https://stackoverflow.com/questions/46294790/azure-functions-temp-storage

반응형