Next.jsのAPI Routesでローカルでは問題ないのにGAEにデプロイすると403エラー
解決したいこと
Next.jsのAPI RoutesからAPIへアクセスする処理を作成しております。
ローカル環境では問題なく動作するのですが、GAEへデプロイすると403エラーが発生してしまいます。
ちなみに、GAEのインスタンスはmax_instances: 1
min_instances: 0
としています。
ひとまず、API Routesを使用せずクライアントサイドからリクエストすることで回避しておりますが、API Routesで行わなければならない処理もあるのでできれば同じ箇所に外部アクセスはまとめたいと考えております。
原因とその対策をご存知の方、ご教示いただけないでしょうか。
発生している問題・エラー
Error: Request failed with status code 403
at createError (/layers/google.nodejs.yarn/yarn_modules/node_modules/axios/lib/core/createError.js:16:15)
at settle (/layers/google.nodejs.yarn/yarn_modules/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/layers/google.nodejs.yarn/yarn_modules/node_modules/axios/lib/adapters/http.js:322:11)
at IncomingMessage.emit (node:events:402:35)
at endReadableNT (node:internal/streams/readable:1343:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
該当するソースコード
import type { NextApiRequest, NextApiResponse } from 'next'
import axios from 'axios'
type Type = {
data: any,
}
const getData = (): Promise<Type> => {
return new Promise(resolve => {
const url = `https://apiserver/hoge/fuga`
axios.get(url).then(res => {
resolve(res.data)
})
})
}
export default async (req: NextApiRequest, res: NextApiResponse<Type>) => {
const data = await getData()
res.status(200).json(data)
}
自分で試したこと
getData
関数はpromise
の返却ではなく、async/await
での返却も試しましたが、結果は変わらずでした。
const getData = async (): Promise<Type> => {
const url = `https://apiserver/hoge/fuga`
const res = axios.get(url)
return res.data
}
0