Open1
Cloud Run サイドカー
Cloud Run サイドカーでnginx containerを前段に置いたあることに気を付けてほしいことがあります。
NginxにCors設定を行う際に、OPTIONSリクエストに対して、204
を返すことです!200
はダメで、Cloud Runは502エラーで怒ります。
ダメな例↓
Nginxは以下設定してしまうと、クロスオリジンからのリクエストでCloud RunのログにOPTIONS 502
エラーが吐きます。
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' *;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type,platform,ServicePlatformID,versionid';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 200;
}
proxy_pass http://127.0.0.1:3000;
}
GOOD例↓
OPTIONSリクエストを204にすると、エラー吐かずに通信がちゃんとできることです。
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' *;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type,platform,ServicePlatformID,versionid';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
proxy_pass http://127.0.0.1:3000;
}
参照した記事はこちらです。