オーラベースのロゴ
オーラベースドキュメント
ドキュメント›Edge Functions›Text, binary and HTML responses

テキスト、バイナリ、および HTML を返します

関数からテキスト、画像、ファイル、または HTML を送信し、SDK またはプレーン HTTP でそれらを読み取る方法。

6 分 読み取り·レベル 中間·2026/10/12 に改訂
この英語のテキストはフランス語のオリジナルから自動的に生成されたもので、まだレビューされていません。
このページは自動翻訳されました。英語版が正式です。
#
決定

1. 応答タイプを選択します

関数が返す値responseType を使用するdata は
JSON'json' (デフォルト)解析された値
プレーンテキスト、CSV、HTML'text' (または 'json'、これも文字列を返します)string
画像、PDF、任意のバイト'blob' または 'arrayBuffer'Blob または ArrayBuffer

デフォルトの 'json' モードでは、JSON とテキストを伝送できます。 は でバイトを運ぶことはできません。関数がバイナリ コンテンツ タイプで応答した場合、SDK はエラー invalid_response を返し、 'blob' または 'arrayBuffer'を選択するように指示するため、何も失われることはありません。

#
SDK

2. SDKで読み込む

aurabase/functions/export/index.tstypescript
Deno.serve((req) => {
  const { pathname } = new URL(req.url)
  if (pathname === '/csv') {
    return new Response('id,name\n1,Ada\n', { headers: { 'content-type': 'text/csv' } })
  }
  // 往復のバイト数を示すのに十分な 8 バイトの PNG 署名
  const bytes = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10])
  return new Response(bytes, { headers: { 'content-type': 'image/png' } })
})
client.tstypescript
const csv = await aura.functions.invoke<string>('export', { path: '/csv', responseType: 'text' })
console.log(csv.data) // 「ID、名前\n1、エイダ\n」

const img = await aura.functions.invoke<Blob>('export', { responseType: 'blob' })
console.log(img.data?.type, img.data?.size) // 「画像/png」8

バイト 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 は関数が返すテキストです。

#
HTTP

3. HTTP 経由の Raw モード

ヘッダー X-Aurabase-Invoke-Mode: raw を追加すると、プラットフォームは関数独自の応答 (ステータス、content-type、およびバイト) を返します。

terminalbash
curl -i -X POST "$AURA_URL/v1/functions/export/invoke" \
  -H "apikey: $AURA_ANON_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Aurabase-Invoke-Mode: raw" \
  -d '{"path":"/csv"}' --output export.csv

このヘッダーがない場合、応答は常にエンベロープを含む 200 になります。

envelope.jsonjson
{
  "data": {
    "status": 200,
    "headers": { "content-type": "application/json" },
    "body": { "greeting": "Hello, Ada!" },
    "logs": [],
    "duration_ms": 74
  },
  "meta": null
}

エンベロープ内の body は解析された JSON、JSON ではなく UTF-8 の場合は応答のテキスト、本文が空またはバイナリの場合は null です。

raw モードでは、関数からのすべての応答に x-aurabase-invoke-origin: functionが含まれます。これを持たない応答は、ゲートウェイまたはランタイムから返されます。これは、プラットフォームの停止からコードによって返された 503 を SDK が伝える方法です。

#
ヘッダー

4. どのヘッダーが生き残るのか

raw モードでは、応答ヘッダーはプラットフォーム独自のオリジンから提供されるため、フィルターされます。

ヘッダー結果
content-type保管されています。何も設定しない場合、デフォルトは application/octet-stream になります。
カスタムヘッダー (x-custom-out、 cache-control、…)保管されています。
set-cookie削除されました。関数は 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を返す関数の実際の応答:

応答ヘッダーtext
content-type: text/html
content-security-policy: default-src 'none'; frame-ancestors 'none'; sandbox
x-content-type-options: nosniff

HTML は提供されますが、プロジェクトのオリジンへの Cookie、ストレージ、またはスクリプトのアクセスはありません。ストレージまたは独自のドメインを使用して、実際の Web ページをホストします。