$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?>$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?> AWS API ਗੇਟਵੇ: SAM ਲੋਕਲ

AWS API ਗੇਟਵੇ: SAM ਲੋਕਲ ਇਨਵੋਕੇਸ਼ਨ ਦੌਰਾਨ OPTIONS ਬੇਨਤੀਆਂ 'ਤੇ 403 ਤਰੁੱਟੀਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

AWS API ਗੇਟਵੇ: SAM ਲੋਕਲ ਇਨਵੋਕੇਸ਼ਨ ਦੌਰਾਨ OPTIONS ਬੇਨਤੀਆਂ 'ਤੇ 403 ਤਰੁੱਟੀਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
AWS API ਗੇਟਵੇ: SAM ਲੋਕਲ ਇਨਵੋਕੇਸ਼ਨ ਦੌਰਾਨ OPTIONS ਬੇਨਤੀਆਂ 'ਤੇ 403 ਤਰੁੱਟੀਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

ਸਥਾਨਕ AWS API ਗੇਟਵੇ 'ਤੇ 403 ਤਰੁੱਟੀਆਂ ਨੂੰ ਸਮਝਣਾ

ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਬਾਅਦ AWS API ਗੇਟਵੇ ਅਤੇ AWS SAM (ਸਰਵਰ ਰਹਿਤ ਐਪਲੀਕੇਸ਼ਨ ਮਾਡਲ) ਦੁਆਰਾ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਜਾਂਚ ਕਰਨਾ, ਇਹ ਉਹਨਾਂ ਬੱਗਾਂ ਨੂੰ ਖੋਜਣਾ ਆਮ ਹੈ ਜੋ API ਦੇ ਤੈਨਾਤ ਹੋਣ ਤੋਂ ਬਾਅਦ ਪੈਦਾ ਨਹੀਂ ਹੁੰਦੇ ਹਨ। ਇੱਕ ਮੁੱਦਾ ਏ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ 403 ਵਰਜਿਤ ਗਲਤੀ CORS ਲਈ API ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕਰਨ ਅਤੇ ਅਧਿਕਾਰਤ ਕਿਸਮ ਨੂੰ "ਕੋਈ ਨਹੀਂ" 'ਤੇ ਸੈੱਟ ਕਰਨ ਦੇ ਬਾਵਜੂਦ, OPTIONS ਵਿਧੀ ਨੂੰ ਚਲਾਉਂਦੇ ਸਮੇਂ। ਇਹ ਸਮੱਸਿਆ ਖਾਸ ਤੌਰ 'ਤੇ ਵਿਗੜ ਸਕਦੀ ਹੈ ਜਦੋਂ ਸੈੱਟਅੱਪ ਤੈਨਾਤ ਵਾਤਾਵਰਣ ਵਿੱਚ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਚੱਲਦਾ ਹੈ।

ਨਾਲ ਸਥਾਨਕ ਤੌਰ 'ਤੇ OPTIONS ਬੇਨਤੀਆਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਸਮੇਂ ਕਰਲ, API ਗੇਟਵੇ ਇੱਕ "ਗੁੰਮ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨ" ਗਲਤੀ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਪਰੇਸ਼ਾਨ ਕਰਨ ਵਾਲਾ ਹੈ ਕਿਉਂਕਿ OPTIONS ਵਿਧੀ ਨੂੰ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ 200 ਨਤੀਜਾ ਦੇਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੋਵੇ। ਸਫਲ ਸਥਾਨਕ ਵਿਕਾਸ ਲਈ ਇਸ ਅਸਮਾਨਤਾ ਦੇ ਸਰੋਤ ਦੀ ਪਛਾਣ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਇਹ ਸਮਝਣਾ ਕਿ SAM ਲੋਕਲ ਤੈਨਾਤ API ਗੇਟਵੇ ਨਾਲੋਂ ਵੱਖਰਾ ਵਿਵਹਾਰ ਕਿਉਂ ਕਰਦਾ ਹੈ ਇਸ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਸੰਰਚਨਾ ਵੇਰਵਿਆਂ ਦੀ ਖੋਜ ਕਰਨਾ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਸਥਾਨਕ ਅਤੇ ਤੈਨਾਤ ਵਾਤਾਵਰਣ ਲਗਭਗ ਸੰਭਵ ਤੌਰ 'ਤੇ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਗਲਤ ਸੰਰਚਨਾਵਾਂ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਅਕਸਰ ਅਜਿਹੀਆਂ ਗਲਤੀਆਂ ਹੁੰਦੀਆਂ ਹਨ।

ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਸਥਾਨਕ ਵਿਕਾਸ ਦੌਰਾਨ 403 ਗਲਤੀ ਦੇ ਸੰਭਾਵਿਤ ਕਾਰਨਾਂ ਅਤੇ ਇਸਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ ਬਾਰੇ ਵਿਚਾਰ ਕਰਾਂਗੇ। ਅਸੀਂ ਵਿੱਚ ਆਮ ਕਮੀਆਂ ਦੀ ਸਮੀਖਿਆ ਕਰਾਂਗੇ SAM ਟੈਂਪਲੇਟਸ, CORS ਹੈਂਡਲਿੰਗ, ਅਤੇ API ਗੇਟਵੇ ਸੈੱਟਅੱਪ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਇਹਨਾਂ ਰੁਕਾਵਟਾਂ ਤੋਂ ਬਚ ਸਕੋ ਅਤੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਨਿਰਮਾਣ ਜਾਰੀ ਰੱਖ ਸਕੋ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
app.options() Express.js ਵਿੱਚ OPTIONS ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਰੂਟ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਪ੍ਰੀਫਲਾਈਟ CORS ਹੈਂਡਲਿੰਗ ਲਈ ਲੋੜੀਂਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਸਰਵਰ ਨੂੰ POST ਬੇਨਤੀ ਨਾਲ ਅੱਗੇ ਵਧਣ ਤੋਂ ਪਹਿਲਾਂ CORS ਪ੍ਰੀਫਲਾਈਟ ਸਵਾਲਾਂ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
res.setHeader() ਇਹ ਫੰਕਸ਼ਨ ਜਵਾਬ ਵਿੱਚ ਖਾਸ HTTP ਸਿਰਲੇਖ ਸੈੱਟ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਪਹੁੰਚ-ਨਿਯੰਤਰਣ-ਮਨਜ਼ੂਰ-ਮੂਲ, ਜੋ ਕਿ CORS ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣ ਅਤੇ ਵੱਖ-ਵੱਖ ਸਰੋਤਾਂ ਤੋਂ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ 403 ਤਰੁੱਟੀਆਂ ਨੂੰ ਰੋਕਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹਨ।
PassthroughBehavior AWS API ਗੇਟਵੇ ਵਿਧੀਆਂ ਲਈ ਇੱਕ ਕਸਟਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਜੋ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਜਦੋਂ ਕੋਈ ਮੇਲ ਖਾਂਦਾ ਟੈਮਪਲੇਟ ਉਪਲਬਧ ਨਾ ਹੋਵੇ ਤਾਂ ਬੇਨਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ। ਇਸ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ WHEN_NO_MATCH ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਮੌਕ ਏਕੀਕਰਣ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਖਾਸ ਬੇਨਤੀ ਟੈਮਪਲੇਟ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
IntegrationHttpMethod ਬੈਕਐਂਡ ਸੇਵਾ ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ API ਗੇਟਵੇ ਦੁਆਰਾ ਵਰਤੀ ਗਈ HTTP ਵਿਧੀ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ (ਉਦਾਹਰਨ ਲਈ, Lambda ਫੰਕਸ਼ਨ)। API ਗੇਟਵੇ ਰੂਟ ਨੂੰ ਉਚਿਤ HTTP ਵਿਧੀ ਨਾਲ ਜੋੜਨ ਲਈ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਜੋ ਬੈਕਐਂਡ ਕਾਰਵਾਈ ਸ਼ੁਰੂ ਕਰੇਗਾ।
AWS::ApiGateway::Method AWS SAM ਟੈਂਪਲੇਟ ਇੱਕ API ਗੇਟਵੇ ਵਿਧੀ ਸਰੋਤ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ। HTTP ਵਿਧੀਆਂ (POST, OPTIONS) ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ API ਗੇਟਵੇ ਨੂੰ ਸਮਰਥਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਬੈਕਐਂਡ ਏਕੀਕਰਣ ਲਈ ਮੈਪ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
ResponseParameters ਇਹ ਕਮਾਂਡ API ਗੇਟਵੇ ਏਕੀਕਰਣ ਜਵਾਬਾਂ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਜੋ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੈੱਟ ਕਰਕੇ CORS ਸਹਾਇਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਜਾ ਸਕੇ ਜਿਵੇਂ ਕਿ ਪਹੁੰਚ-ਨਿਯੰਤਰਣ-ਮਨਜ਼ੂਰ-ਤਰੀਕਿਆਂ. ਇਹ ਪੈਰਾਮੀਟਰ CORS ਨੀਤੀ ਦੇ ਅਨੁਸਾਰ ਗਾਹਕ ਨੂੰ ਵਾਪਸ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।
app.route() ਇਹ ਫਲਾਸਕ ਕਮਾਂਡ ਖਾਸ ਫੰਕਸ਼ਨਾਂ ਲਈ HTTP ਵਿਧੀਆਂ (ਜਿਵੇਂ ਕਿ POST ਅਤੇ OPTIONS) ਦਾ ਨਕਸ਼ਾ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, OPTIONS (ਪ੍ਰੀਫਲਾਈਟ ਸਵਾਲਾਂ) ਅਤੇ POST (ਮੁੱਖ API ਬੇਨਤੀਆਂ) ਲਈ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।
!Ref AWS CloudFormation/SAM ਟੈਂਪਲੇਟਸ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ!ਰੈਫ ਟੈਮਪਲੇਟ ਵਿੱਚ ਹੋਰ ਸਰੋਤਾਂ ਦੇ ਹਵਾਲੇ। ਉਦਾਹਰਨ ਲਈ, ਇਸਦਾ ਹਵਾਲਾ ਦੇਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ scanRecordsResource ਅਤੇ API ਕਾਲਾਂ ਨੂੰ ਸਹੀ URL ਨਾਲ ਸਹੀ ਤਰ੍ਹਾਂ ਲਿੰਕ ਕਰੋ।
app.response_class() ਇਹ ਕਮਾਂਡ ਫਲਾਸਕ ਵਿੱਚ ਇੱਕ ਕਸਟਮ ਜਵਾਬ ਆਬਜੈਕਟ ਤਿਆਰ ਕਰਦੀ ਹੈ, ਤੁਹਾਨੂੰ HTTP ਸਥਿਤੀ ਕੋਡਾਂ ਅਤੇ ਸਿਰਲੇਖਾਂ ਉੱਤੇ ਨਿਯੰਤਰਣ ਦਿੰਦੀ ਹੈ। ਇਹ ਖਾਸ ਤੌਰ 'ਤੇ ਕੁਝ CORS ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਸੌਖਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਐਕਸੈਸ-ਕੰਟਰੋਲ-ਇਜ਼ਾਜ਼ਤ-ਮੂਲ.

AWS API ਗੇਟਵੇ ਲੋਕਲ ਇਨਵੋਕੇਸ਼ਨ ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਅਨੁਕੂਲ ਬਣਾਉਣਾ

ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਸਥਾਨਕ ਵਿਕਾਸ ਦੌਰਾਨ 403 ਗਲਤੀ ਦੇ ਸੰਭਾਵਿਤ ਕਾਰਨਾਂ ਅਤੇ ਇਸਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ ਬਾਰੇ ਵਿਚਾਰ ਕਰਾਂਗੇ। ਅਸੀਂ ਵਿੱਚ ਆਮ ਕਮੀਆਂ ਦੀ ਸਮੀਖਿਆ ਕਰਾਂਗੇ SAM ਟੈਂਪਲੇਟਸ, CORS ਹੈਂਡਲਿੰਗ, ਅਤੇ API ਗੇਟਵੇ ਸੈੱਟਅੱਪ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਇਹਨਾਂ ਰੁਕਾਵਟਾਂ ਤੋਂ ਬਚ ਸਕੋ ਅਤੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਨਿਰਮਾਣ ਜਾਰੀ ਰੱਖ ਸਕੋ।

ਐਕਸਪ੍ਰੈਸ ਸਰਵਰ ਵਿੱਚ, ਅਸੀਂ ਵਰਤਦੇ ਹਾਂ res.setHeader() CORS ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਜਿਵੇਂ ਕਿ "Access-Control-Allow-Origin" ਅਤੇ "Access-Control-Allow- Methods"। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਢੁਕਵੇਂ ਸਿਰਲੇਖ ਕਲਾਇੰਟ ਨੂੰ ਵਾਪਸ ਕਰ ਦਿੱਤੇ ਗਏ ਹਨ, ਕ੍ਰਾਸ-ਓਰੀਜਨ ਬੇਨਤੀਆਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹੋਏ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਕ੍ਰਿਪਟ ਦੀ POST ਵਿਧੀ AWS SDK ਰਾਹੀਂ AWS DynamoDB ਟੇਬਲ ਨਾਲ ਜੁੜਦੀ ਹੈ। ਸਕੈਨ ਓਪਰੇਸ਼ਨ ਇੱਕ ਰੀਡ-ਓਨਲੀ ਕਿਰਿਆ ਹੈ ਜੋ ਚੁਣੀ ਗਈ ਸਾਰਣੀ ਤੋਂ ਸਾਰੇ ਰਿਕਾਰਡ ਵਾਪਸ ਕਰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਅਸੀਂ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਡਾਟਾਬੇਸ ਇੰਟਰੈਕਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹਾਂ। ਸਹੀ ਤਰੁੱਟੀ ਪ੍ਰਬੰਧਨ ਦੀ ਵਰਤੋਂ ਡੇਟਾਬੇਸ ਕਨੈਕਸ਼ਨ ਮੁੱਦਿਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸਰਵਰ ਅਸਫਲਤਾਵਾਂ ਲਈ ਉਚਿਤ ਜਵਾਬ ਦਿੰਦਾ ਹੈ।

ਦੂਜੀ ਉਦਾਹਰਨ, ਫਲਾਸਕ ਦੇ ਨਾਲ ਪਾਈਥਨ ਵਿੱਚ ਬਣੀ, Node.js ਸਕ੍ਰਿਪਟ ਦੇ ਸਮਾਨ ਕਾਰਜਸ਼ੀਲਤਾ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ਪਰ ਇਹ ਉਹਨਾਂ ਡਿਵੈਲਪਰਾਂ ਲਈ ਹੈ ਜੋ ਪਾਈਥਨ ਨਾਲ ਵਧੇਰੇ ਅਨੁਭਵੀ ਹਨ। ਫਲਾਸਕ ਦੇ app.route() ਵਿਧੀ OPTIONS ਅਤੇ POST ਦੋਵਾਂ ਤਰੀਕਿਆਂ ਨੂੰ ਨਿਸ਼ਚਿਤ ਰੂਟੀਨਾਂ ਲਈ ਰੂਟ ਕਰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ CORS ਪ੍ਰੀਫਲਾਈਟ ਬੇਨਤੀਆਂ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਸਟਮ ਜਵਾਬਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ app.response_class() ਵਿਧੀ, ਜਿਸ ਵਿੱਚ ਸੰਬੰਧਿਤ CORS ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਹਨ। POST ਵਿਧੀ, ਜਿਵੇਂ Node.js ਉਦਾਹਰਨ, ਇੱਕ DynamoDB ਟੇਬਲ ਨੂੰ ਸਕੈਨ ਕਰਨ ਲਈ Python (boto3) ਲਈ AWS SDK ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਇਹ ਮਾਡਿਊਲਰਿਟੀ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸਿਰਫ਼ ਇਸ ਆਧਾਰ 'ਤੇ ਬੈਕਐਂਡ ਨੂੰ ਬਦਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ ਕਿ ਉਹ JavaScript ਜਾਂ Python ਨੂੰ ਤਰਜੀਹ ਦਿੰਦੇ ਹਨ।

ਅੰਤ ਵਿੱਚ, SAM ਟੈਂਪਲੇਟ ਸੈਟਅਪ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ AWS API ਗੇਟਵੇ POST ਅਤੇ OPTIONS ਸਵਾਲਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਚਿਤ ਰੂਪ ਵਿੱਚ ਸੈੱਟਅੱਪ ਕੀਤਾ ਗਿਆ ਹੈ। ਦ ਪਾਸਥਰੂ ਵਿਵਹਾਰ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ "WHEN_NO_MATCH" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ API ਗੇਟਵੇ ਨੂੰ ਉਹਨਾਂ ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜੋ ਪਹਿਲਾਂ ਤੋਂ ਨਿਰਧਾਰਤ ਟੈਂਪਲੇਟ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀਆਂ। ਇਹ ਉਦੋਂ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਮੌਕ ਏਕੀਕਰਣ ਨਾਲ ਕੰਮ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਸਿਸਟਮ ਨੂੰ ਬੈਕਐਂਡ ਲਾਂਬਡਾ ਨੂੰ ਚਲਾਏ ਬਿਨਾਂ 200 ਸਥਿਤੀ ਕੋਡ ਪ੍ਰਦਾਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਦ ਏਕੀਕਰਣ ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਅਤੇ ਵਿਧੀ ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਸੈਕਸ਼ਨ ਸਿਰਲੇਖਾਂ ਅਤੇ ਜਵਾਬ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਦੇ ਹਨ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ ਕਿ ਵਿਕਲਪ ਵਿਧੀ ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਸਹੀ CORS ਸੰਰਚਨਾ ਭੇਜਦੀ ਹੈ। ਸਥਾਨਕ SAM ਟੈਸਟਾਂ ਦੌਰਾਨ "403 ਵਰਜਿਤ" ਮੁੱਦੇ ਤੋਂ ਬਚਣ ਲਈ ਇਹ ਵਿਧੀ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਸਥਾਨਕ SAM ਮੰਗ ਲਈ AWS API ਗੇਟਵੇ 'ਤੇ 403 ਤਰੁੱਟੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨਾ।

ਹੱਲ 1: Express.js ਅਤੇ AWS SDK ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ Node.js ਬੈਕਐਂਡ, ਕੁਸ਼ਲ CORS ਅਤੇ OPTIONS ਹੈਂਡਲਿੰਗ ਦੇ ਨਾਲ।

// Import required modules
const express = require('express');
const AWS = require('aws-sdk');
const cors = require('cors');
const app = express();
app.use(cors());
// Middleware for JSON request parsing
app.use(express.json());
// CORS preflight response handling
app.options('/scanRecords', (req, res) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
  res.status(200).send();
});
// Main POST method for scanRecords
app.post('/scanRecords', async (req, res) => {
  const dynamoDB = new AWS.DynamoDB.DocumentClient();
  try {
    const params = { TableName: 'RecordsTable' };
    const data = await dynamoDB.scan(params).promise();
    res.status(200).json(data);
  } catch (err) {
    res.status(500).send('Error fetching records');
  }
});
// Start the Express server on PORT 3000
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

AWS SAM ਲੋਕਲ ਵਿੱਚ "ਗੁੰਮ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨ" ਨੂੰ ਹੱਲ ਕਰਨਾ

ਹੱਲ 2: ਫਲਾਸਕ ਦੇ ਨਾਲ ਇੱਕ ਪਾਈਥਨ ਬੈਕਐਂਡ, ਸਥਾਨਕ SAM ਅਤੇ API ਗੇਟਵੇ ਨਾਲ ਸੰਰਚਿਤ

from flask import Flask, jsonify, request
import boto3
app = Flask(__name__)
# CORS headers for OPTIONS requests
@app.route('/scanRecords', methods=['OPTIONS'])
def options_method():
    response = app.response_class(status=200)
    response.headers['Access-Control-Allow-Origin'] = '*'
    response.headers['Access-Control-Allow-Methods'] = 'POST, OPTIONS'
    response.headers['Access-Control-Allow-Headers'] = 'Content-Type, Authorization'
    return response
# POST method to scan records from DynamoDB
@app.route('/scanRecords', methods=['POST'])
def scan_records():
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('RecordsTable')
    try:
        response = table.scan()
        return jsonify(response['Items']), 200
    except Exception as e:
        return str(e), 500
# Run the Flask app on port 3000
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=3000)

SAM ਨਾਲ AWS API ਗੇਟਵੇ ਲੋਕਲ ਇਨਵੋਕੇਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ

ਹੱਲ 3: OPTIONS ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ 403 ਤਰੁੱਟੀਆਂ ਤੋਂ ਬਚਣ ਲਈ ਇੱਕ SAM ਟੈਂਪਲੇਟ ਕੌਂਫਿਗਰ ਕਰੋ।

Resources:
  scanRecords:
    Type: AWS::Serverless::Function
    Properties:
      Handler: dist/dynamo/CRUD.scanRecords
      CodeUri: ./backend
      Policies:
        - AmazonDynamoDBFullAccess
        - CloudWatchLogsFullAccess
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /scanRecords
            Method: post
  scanRecordsOptionsMethod:
    Type: AWS::ApiGateway::Method
    Properties:
      AuthorizationType: NONE
      HttpMethod: OPTIONS
      ResourceId: !Ref scanRecordsResource
      RestApiId: !Ref apiGatewayRestApi
      Integration:
        Type: MOCK
        IntegrationResponses:
          - StatusCode: 200
            ResponseParameters:
              method.response.header.Access-Control-Allow-Headers: "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
              method.response.header.Access-Control-Allow-Methods: "'POST,OPTIONS'"
              method.response.header.Access-Control-Allow-Origin: "'*'"

AWS API ਗੇਟਵੇ ਲੋਕਲ 403 ਤਰੁੱਟੀਆਂ ਦਾ ਨਿਪਟਾਰਾ ਕਰਨਾ

ਏਪੀਆਈ ਗੇਟਵੇ ਵਿੱਚ CORS (ਕਰਾਸ-ਓਰੀਜਨ ਰਿਸੋਰਸ ਸ਼ੇਅਰਿੰਗ) ਨੀਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਇਹ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਇੱਕ SAM ਲੋਕਲ ਇਨਵੋਕ ਦੇ ਦੌਰਾਨ ਇੱਕ 403 ਗਲਤੀ ਵੇਖੀ ਜਾਂਦੀ ਹੈ। ਜਦੋਂ ਕਿ ਤੁਹਾਡੀ ਤੈਨਾਤੀ ਕਲਾਉਡ 'ਤੇ CORS ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲ ਸਕਦੀ ਹੈ, ਸਥਾਨਕ ਬੇਨਤੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ AWS SAM ਕਈ ਵਾਰ OPTIONS ਵਿਧੀ ਨੂੰ ਕਿਵੇਂ ਨਜਿੱਠਿਆ ਜਾਂਦਾ ਹੈ ਦੇ ਵਿਚਕਾਰ ਅਸੰਗਤਤਾਵਾਂ ਦਾ ਨਤੀਜਾ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ ਸਥਾਨਕ ਵਾਤਾਵਰਣ ਹਮੇਸ਼ਾ ਸਾਰੇ ਸੈੱਟਅੱਪਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਡੁਪਲੀਕੇਟ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਨ, ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀਆਂ ਮੁਸ਼ਕਲਾਂ ਤੋਂ ਬਚਣ ਲਈ ਵਿਕਲਪ ਵਿਧੀ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।

ਇੱਕ ਹੋਰ ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾ ਇਹ ਹੈ ਕਿ 403 ਗਲਤੀ ਅਕਸਰ ਗੁੰਮ ਜਾਂ ਗਲਤ ਢੰਗ ਨਾਲ ਸੰਰਚਿਤ API ਗੇਟਵੇ ਅਨੁਮਤੀਆਂ ਨਾਲ ਜੁੜੀ ਹੁੰਦੀ ਹੈ। ਸਥਾਨਕ ਵਿਕਾਸ ਦੇ ਦੌਰਾਨ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਤੁਹਾਡਾ SAM ਟੈਮਪਲੇਟ ਸਹੀ ਢੰਗ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਅਧਿਕਾਰ ਦੀ ਕਿਸਮ OPTIONS ਬੇਨਤੀਆਂ ਲਈ "NONE" ਦੇ ਤੌਰ 'ਤੇ, ਅਤੇ ਇਹ ਕਿ ਵਿੱਚ ਸੰਬੰਧਿਤ ਅਨੁਮਤੀਆਂ ਲਾਂਬਡਾ ਫੰਕਸ਼ਨ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ. ਨਹੀਂ ਤਾਂ, ਬੇਨਤੀ ਇੱਕ "ਗੁੰਮ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨ" ਸੁਨੇਹਾ ਵਾਪਸ ਕਰੇਗੀ, ਇਹ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਸਿਸਟਮ ਇੱਕ ਪ੍ਰਮਾਣਿਕਤਾ ਵਿਧੀ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ ਜੋ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ।

ਅੰਤ ਵਿੱਚ, ਮੇਕ ਏਕੀਕ੍ਰਿਤ ਮਖੌਲ ਕਰਨਾ ਮਖੌਲ ਕਰਨਾ ਇੱਕ ਕੁਸ਼ਲ ਤਕਨੀਕ ਹੈ ਜੋ ਵਿਕਲਪਾਂ ਦੇ ਵਿਧੀ ਲਈ ਲੈਂਬਡਾ ਕਾਰਜਾਂ ਨੂੰ ਕਾਲ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਤੋਂ ਬਚਣ ਲਈ ਇੱਕ ਕੁਸ਼ਲ ਤਕਨੀਕ ਹੈ. ਬਣਾਓ ਏ MOCK ਏਕੀਕਰਣ OPTIONS ਵਿਧੀ ਦੀ ਗਾਰੰਟੀ ਦੇਣ ਲਈ ਤੁਹਾਡੇ API ਗੇਟਵੇ ਵਿੱਚ ਜਵਾਬ ਮਾਪਦੰਡਾਂ ਦੇ ਨਾਲ ਲੋੜੀਂਦੇ CORS ਸਿਰਲੇਖਾਂ ਦੇ ਨਾਲ ਇੱਕ ਡਿਫੌਲਟ 200 ਜਵਾਬ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਹ ਵਿਕਾਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ 403 ਗਲਤੀਆਂ ਤੋਂ ਬਚਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਜੋ ਅਕਸਰ ਸਥਾਨਕ ਅਤੇ ਤੈਨਾਤ ਸੈਟਿੰਗਾਂ ਦੋਵਾਂ ਵਿੱਚ ਅਪ੍ਰਬੰਧਿਤ ਪ੍ਰੀਫਲਾਈਟ ਪੁੱਛਗਿੱਛਾਂ ਕਾਰਨ ਹੁੰਦੀਆਂ ਹਨ।

AWS API ਗੇਟਵੇ 403 ਗਲਤੀਆਂ ਬਾਰੇ ਆਮ ਸਵਾਲ

  1. ਮੈਨੂੰ ਸਿਰਫ਼ SAM ਲੋਕਲ ਵਿੱਚ 403 ਸਮੱਸਿਆ ਕਿਉਂ ਆ ਰਹੀ ਹੈ ਪਰ ਤੈਨਾਤ ਕੀਤੇ ਜਾਣ 'ਤੇ ਨਹੀਂ?
  2. ਸਥਾਨਕ ਸੈਮ ਵਾਤਾਵਰਣ ਸੰਪੂਰਨ ਏਪੀਆਈ ਗੇਟਵੇ ਕੌਂਫਿਗ੍ਰੇਸ਼ਨ ਦੀ ਨਕਲ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਖਾਸ ਕਰਕੇ AuthorizationType ਅਤੇ ਕੋਸ ਸੈਟਿੰਗਜ਼. ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ ਸਥਾਨਕ ਸੈਟਅਪ OPTIONS ਬੇਨਤੀਆਂ ਲਈ ਜਾਅਲੀ ਏਕੀਕਰਣ ਸਮੇਤ, ਤੈਨਾਤ ਕੀਤੀਆਂ ਸੈਟਿੰਗਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।
  3. "ਗੁੰਮ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨ" ਗਲਤੀ ਕੀ ਹੈ?
  4. ਇਹ ਤਰੁੱਟੀ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ API ਗੇਟਵੇ ਇੱਕ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨ ਚਾਹੁੰਦਾ ਹੈ, ਜੋ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ ਸੀ। OPTIONS ਬੇਨਤੀਆਂ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਓ AuthorizationType: NONE ਤੁਹਾਡੇ ਸੈਮ ਟੈਂਪਲੇਟ ਵਿੱਚ ਸਹੀ ਤਰ੍ਹਾਂ ਕੌਂਫਿਗਰ ਕੀਤਾ ਗਿਆ ਹੈ.
  5. ਮੈਂ AWS API ਗੇਟਵੇ ਵਿੱਚ CORS ਪ੍ਰੀਫਲਾਈਟ ਬੇਨਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਾਂ?
  6. CORS ਨੂੰ ਸੰਭਾਲਣ ਲਈ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ OPTIONS ਵਿਧੀ ਨੂੰ ਸੰਬੰਧਿਤ ਜਵਾਬ ਸਿਰਲੇਖਾਂ ਨਾਲ ਸਹੀ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਿਵੇਂ ਕਿ Access-Control-Allow-Origin ਅਤੇ Access-Control-Allow-Methods.
  7. ਕੀ ਮੈਂ AWS SAM ਨਾਲ ਸਥਾਨਕ ਤੌਰ 'ਤੇ CORS ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹਾਂ?
  8. ਹਾਂ, ਤੁਸੀਂ ਸਥਾਨਕ ਤੌਰ 'ਤੇ CORS ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ app.options() ਵਿਧੀ ਜਾਂ ਬਰਾਬਰ API ਗੇਟਵੇ ਸੰਰਚਨਾ ਪ੍ਰੀਫਲਾਈਟ OPTIONS ਬੇਨਤੀ ਲਈ ਉਚਿਤ ਸਿਰਲੇਖ ਵਾਪਸ ਕਰਦੀ ਹੈ।
  9. ਏ ਈ ਏ ਪੀਆਈ ਗੇਟਵੇ ਵਿੱਚ ਮਖੌਲ ਕੀ ਏਕੀਕਰਣ ਹੈ?
  10. MOCK integration ਤੁਹਾਨੂੰ ਬੈਕਐਂਡ ਲਾਂਬਡਾ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕੀਤੇ ਬਿਨਾਂ API ਗੇਟਵੇ ਤੋਂ ਸਥਿਰ ਜਵਾਬ ਵਾਪਸ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, OPTIONS ਬੇਨਤੀਆਂ ਲਈ CORS ਹੈਂਡਲਿੰਗ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ।

AWS API ਗੇਟਵੇ 403 ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨ ਬਾਰੇ ਅੰਤਿਮ ਵਿਚਾਰ

ਸਥਾਨਕ SAM ਵਾਤਾਵਰਨ ਵਿੱਚ OPTIONS ਬੇਨਤੀਆਂ ਲਈ 403 ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੀ SAM ਟੈਂਪਲੇਟਸ ਅਤੇ ਅਨੁਮਤੀਆਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡੇ ਤੈਨਾਤ AWS ਕੌਂਫਿਗਰੇਸ਼ਨ ਨਾਲ ਜਿੰਨਾ ਸੰਭਵ ਹੋ ਸਕੇ ਤੁਹਾਡੇ ਸਥਾਨਕ ਵਾਤਾਵਰਣ ਨਾਲ ਮੇਲ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਗੁੰਮ ਟੋਕਨ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਰੋਕਣ ਲਈ, ਅਧਿਕਾਰਤ ਕਿਸਮ ਨੂੰ "ਕੋਈ ਨਹੀਂ" ਵਿੱਚ ਬਦਲੋ ਅਤੇ ਪ੍ਰੀਫਲਾਈਟ CORS ਪੁੱਛਗਿੱਛਾਂ ਲਈ ਜਾਅਲੀ ਏਕੀਕਰਣ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹਨਾਂ ਸੈਟਿੰਗਾਂ ਦੀਆਂ ਚਿੰਤਾਵਾਂ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਨਾ ਨਿਰਵਿਘਨ ਸਥਾਨਕ ਵਿਕਾਸ ਅਤੇ ਸਹੀ API ਗੇਟਵੇ ਵਿਵਹਾਰ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।

AWS API ਗੇਟਵੇ 403 ਗਲਤੀਆਂ ਲਈ ਉਪਯੋਗੀ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
  1. AWS SAM CLI ਅਤੇ API ਗੇਟਵੇ ਸਥਾਨਕ ਵਿਕਾਸ 'ਤੇ ਵਿਸਤਾਰ ਕਰਦਾ ਹੈ, CORS ਸਵਾਲਾਂ ਨੂੰ ਸੰਭਾਲਣ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਤ ਕਰਦਾ ਹੈ। ਅਧਿਕਾਰਤ AWS ਦਸਤਾਵੇਜ਼ ਵਿਸਤ੍ਰਿਤ ਸੂਝ ਅਤੇ ਉਦਾਹਰਨਾਂ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਮੁਲਾਕਾਤ: AWS SAM CLI ਦਸਤਾਵੇਜ਼।
  2. API ਗੇਟਵੇ ਮੁੱਦਿਆਂ ਜਿਵੇਂ ਕਿ 403 ਵਰਜਿਤ ਗਲਤੀਆਂ ਅਤੇ ਗੁੰਮ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਲਈ ਵਿਸਤ੍ਰਿਤ ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਦੇਖੋ: .AWS API ਗੇਟਵੇ ਅਸ਼ੁੱਧੀ ਹੈਂਡਲਿੰਗ।
  3. API ਗੇਟਵੇ ਅਤੇ ਲਾਂਬਡਾ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ CORS ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਇੱਕ ਪੂਰੀ ਗਾਈਡ। ਸਥਾਨਕ ਟੈਸਟਿੰਗ ਦੌਰਾਨ CORS ਮੁੱਦੇ 403 ਗਲਤੀਆਂ ਦਾ ਇੱਕ ਆਮ ਸਰੋਤ ਹਨ। ਇੱਥੇ ਹੋਰ ਜਾਣਕਾਰੀ: AWS ਗਿਆਨ ਕੇਂਦਰ।