リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
このページでは、App Engine アプリから HTTP(S) リクエストを発行する方法について説明します。
リクエスト サイズの上限と URL 取得リクエストで送信されるヘッダーの詳細については、アウトバウンド リクエストをご覧ください。HTTP リクエストの発行
アウトバウンド HTTP リクエストを発行するには、通常どおり http
パッケージを使用しますが、クライアントを作成するには urlfetch.Client
を使用します。urlfetch.Client
は、urlfetch.Transport
を使用する *http.Client
を返します。これは http.RoundTripper インターフェースの実装であり、URL Fetch API を使用してリクエストが行われます。
以下のスニペットでは、基本的な HTTP GET
リクエストを実行します。
リダイレクトの無効化
URL 取得を使用している場合、基本の URL 取得サービスはデフォルトで最大 5 回のリダイレクトを行います。これらのリダイレクトでは、認証ヘッダーなどの機密情報がリダイレクト先に転送される可能性があります。アプリで HTTP リダイレクトが不要な場合は、リダイレクトを無効にすることをおすすめします。
リダイレクトを実行しないように URL 取得サービスに指示するには、urlfetch
パッケージから返された http.Client
の CheckRedirect
フィールドを、http.ErrUseLastResponse
を返すように設定します。これは、appengine/urlfetch
と appengine/v2/urlfetch
に適用されます。次に例を示します。
client := urlfetch.Client(ctx)
client.CheckRedirect = func(*http.Request, []*http.Request) error {
return http.ErrUseLastResponse
}
HTTPS リクエストの発行
Go API では、リクエストを明示的に保護する必要はありません。基盤となっている URL 取得サービスが、デフォルトで接続先ホストの証明書を検証し、証明書が一致しない場合はリクエストを拒否します。
ホスト証明書の検証を無効にする
ホスト証明書の自動検証を無効にするには、トランスポートを手動で作成し、AllowInvalidServerCertificate
を true
に設定します。
別の App Engine アプリへのリクエストの発行
別の App Engine アプリにリクエストを発行する場合、App Engine アプリでリクエストにヘッダー X-Appengine-Inbound-Appid
を追加して、その ID を表明する必要があります。URL 取得サービスにリダイレクトを実行しないよう指示する場合、App Engine はこのヘッダーをリクエストに自動的に追加します。
リダイレクトの無効化に関するガイダンスについては、リダイレクトの無効化を参照してください。
次のステップ
送信リクエスト内の URL 取得リクエストで送信されるヘッダーなど、URL 取得サービスについて学習する。