텍스트, 바이너리 및 HTML 반환
함수에서 텍스트, 이미지, 파일 또는 HTML을 보내고 SDK 또는 일반 HTTP를 사용하여 다시 읽는 방법.
1. 응답 유형을 선택하세요
| 함수가 반환됩니다. | responseType 사용 | data은(는) |
|---|---|---|
| JSON | 'json'(기본값) | 파싱된 값 |
| 일반 텍스트, CSV, HTML | 'text' (또는 문자열을 반환하는 'json') | string |
| 이미지, PDF, 모든 바이트 | 'blob' 또는 'arrayBuffer' | Blob 또는 ArrayBuffer |
기본 'json' 모드는 JSON과 텍스트를 전달할 수 있습니다. 은 바이트를 전달할 수 없습니다.: 함수가 이진 콘텐츠 유형으로 응답하면 SDK는 invalid_response 오류를 반환하고 'blob' 또는 'arrayBuffer'를 선택하라고 지시하므로 아무 것도 자동으로 손실되지 않습니다.
2. SDK로 읽어보세요
137,80,78,71,13,10,26,10,255,0,1바이트를 반환하는 함수를 사용한 실제 실행에서 arrayBuffer는 정확히 해당 11바이트를 반환했고 blob는 type=image/png size=11을 반환했습니다.
'text', 'blob' 또는 'arrayBuffer'를 사용하면 SDK는 JSON 봉투를 건너뛰고 함수 본문을 있는 그대로 반환합니다. 함수가 오류 상태로 응답하는 경우 error.status는 해당 상태이고 error.message는 함수가 반환한 텍스트입니다.
3. HTTP를 통한 원시 모드
X-Aurabase-Invoke-Mode: raw 헤더를 추가하면 플랫폼이 함수의 자체 응답(상태, content-type 및 바이트)을 반환합니다.
해당 헤더가 없으면 응답은 항상 봉투가 포함된 200입니다.
봉투에서 body는 구문 분석된 JSON, JSON이 아닌 UTF-8인 경우 응답 텍스트, 본문이 비어 있거나 바이너리인 경우 null입니다.
원시 모드에서는 함수의 모든 응답에 x-aurabase-invoke-origin: function가 전달됩니다. 이것이 없는 응답은 게이트웨이나 런타임에서 옵니다. 이는 SDK가 플랫폼 중단으로 인해 코드에서 반환된 503을 알려주는 방법입니다.
4. 어떤 헤더가 살아남는가
원시 모드에서는 응답 헤더가 플랫폼 자체 원본에서 제공되기 때문에 필터링됩니다.
| 헤더 | 결과 |
|---|---|
content-type | 유지. 없음을 설정하면 기본값은 application/octet-stream입니다. |
사용자 정의 헤더(x-custom-out, cache-control, …) | 유지. |
set-cookie | 삭제되었습니다. 함수는 쿠키를 설정할 수 없습니다. |
access-control-* | 삭제되었습니다. CORS는 게이트웨이에 의해 결정됩니다. |
x-aura-*, x-internal-token | 삭제되었습니다. |
content-security-policy, strict-transport-security, x-content-type-options | 무엇을 보내든 플랫폼에 따라 설정됩니다. |
content-length, transfer-encoding, connection | 다시 계산되었습니다. |
스크립트(text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml)를 실행할 수 있는 응답은 샌드박싱 콘텐츠 보안 정책과 함께 제공됩니다. text/html를 반환하는 함수에 대한 실제 응답:
HTML이 제공되지만 프로젝트 원본에 대한 쿠키, 저장소 또는 스크립트 액세스 권한은 없습니다. Storage 또는 자신의 도메인을 사용하여 실제 웹페이지를 호스팅하세요.