ಕನ್ನಡ

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿ: ವೇಗ ಮತ್ತು ದಕ್ಷತೆಯೊಂದಿಗೆ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಜಾಗತಿಕವಾಗಿ ವಿತರಿಸಲು ಒಂದು ಶಕ್ತಿಯುತ ಪರಿಹಾರ. ಎಡ್ಜ್‌ನಲ್ಲಿ ಡೈನಾಮಿಕ್ ಕಾನ್ಫಿಗರೇಶನ್‌ನೊಂದಿಗೆ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೇಗೆ ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು ಎಂದು ತಿಳಿಯಿರಿ.

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್: ಜಾಗತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ ವಿತರಣೆ ಈಗ ಸುಲಭ

ಇಂದಿನ ವೇಗದ ವೆಬ್ ಅಭಿವೃದ್ಧಿ ಕ್ಷೇತ್ರದಲ್ಲಿ, ವಿಶ್ವಾದ್ಯಂತ ಬಳಕೆದಾರರಿಗೆ ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಮತ್ತು ಡೈನಾಮಿಕ್ ಅನುಭವಗಳನ್ನು ನೀಡುವುದು ಅತ್ಯಗತ್ಯ. Next.js, ಒಂದು ಜನಪ್ರಿಯ ರಿಯಾಕ್ಟ್ ಫ್ರೇಮ್‌ವರ್ಕ್, ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ವಿಸ್ತರಿಸಬಹುದಾದ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಒಂದು ದೃಢವಾದ ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತದೆ. ಇದರ ಪ್ರಮುಖ ವೈಶಿಷ್ಟ್ಯಗಳಲ್ಲಿ ಒಂದಾದ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್, ಎಡ್ಜ್‌ನಲ್ಲಿ ಜಾಗತಿಕವಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ವಿತರಿಸಲು ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ. ಈ ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಮತ್ತು ನಿಮ್ಮ ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರಿಗೆ ಸೂಕ್ತವಾದ ಅನುಭವಗಳನ್ನು ನೀಡಲು Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಬಳಸಲು ಒಂದು ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ.

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಎಂದರೇನು?

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಜಾಗತಿಕವಾಗಿ ವಿತರಿಸಲಾದ, ಕಡಿಮೆ ಲೇಟೆನ್ಸಿ ಇರುವ ಒಂದು ಕೀ-ವ್ಯಾಲ್ಯೂ ಸ್ಟೋರ್ ಆಗಿದೆ, ಇದನ್ನು ವಿಶೇಷವಾಗಿ Next.js ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ಗಳಿಗೆ ಕಾನ್ಫಿಗರೇಶನ್ ಡೇಟಾವನ್ನು ಒದಗಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಸಾಂಪ್ರದಾಯಿಕ ಡೇಟಾಬೇಸ್‌ಗಳು ಅಥವಾ API ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ವೇಗ ಮತ್ತು ದಕ್ಷತೆಗಾಗಿ ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲಾಗಿದೆ, ಇದು ನಿಮಗೆ ಪ್ರಪಂಚದ ಯಾವುದೇ ಮೂಲೆಯಿಂದ ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ ಕಾನ್ಫಿಗರೇಶನ್ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ತ್ಯಾಗ ಮಾಡದೆಯೇ, ಕಾನ್ಫಿಗರೇಶನ್ ಮೌಲ್ಯಗಳ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನ ನಡವಳಿಕೆಯನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಇದನ್ನು ಜಾಗತಿಕವಾಗಿ ಪುನರಾವರ್ತಿಸಲಾದ JSON ಫೈಲ್ ಎಂದು ಭಾವಿಸಿ, ಅದನ್ನು ನೀವು ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ಗಳಿಂದ ಅತ್ಯಂತ ವೇಗವಾಗಿ ಪ್ರಶ್ನಿಸಬಹುದು. ಇದು ಈ ಕೆಳಗಿನವುಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ:

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು?

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಬಳಸುವುದರ ಪ್ರಮುಖ ಪ್ರಯೋಜನಗಳು ಇಲ್ಲಿವೆ:

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು ಹೇಗೆ

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಲು ಹಂತ-ಹಂತದ ಮಾರ್ಗದರ್ಶಿ ಇಲ್ಲಿದೆ:

1. ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟಪ್

ನೀವು Next.js ಪ್ರಾಜೆಕ್ಟ್ ಹೊಂದಿರುವಿರೆಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಇಲ್ಲದಿದ್ದರೆ, ಇದನ್ನು ಬಳಸಿ ಒಂದನ್ನು ರಚಿಸಿ:

npx create-next-app@latest my-app
cd my-app

2. ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಬಳಸಲು ನಿಮಗೆ ವರ್ಸೆಲ್ ಖಾತೆಯ ಅಗತ್ಯವಿದೆ. ನೀವು ಲಾಗಿನ್ ಆದ ನಂತರ, ನಿಮ್ಮ ವರ್ಸೆಲ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ ಮತ್ತು ಹೊಸ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ. ಅದಕ್ಕೆ ವಿವರಣಾತ್ಮಕ ಹೆಸರನ್ನು ನೀಡಿ.

3. ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ SDK ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ

ನಿಮ್ಮ Next.js ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ @vercel/edge-config SDK ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ:

npm install @vercel/edge-config
# ಅಥವಾ
yarn add @vercel/edge-config
# ಅಥವಾ
pnpm install @vercel/edge-config

4. ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ

ನೀವು EDGE_CONFIG ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯಬಲ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ನಿಮ್ಮ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ಗಾಗಿ ವರ್ಸೆಲ್ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿ ಈ ವೇರಿಯಬಲ್‌ನ ಮೌಲ್ಯವನ್ನು ನೀವು ಕಾಣಬಹುದು. ಅದನ್ನು ನಿಮ್ಮ .env.local ಫೈಲ್‌ಗೆ ಸೇರಿಸಿ (ಅಥವಾ ಉತ್ಪಾದನೆಗಾಗಿ ನಿಮ್ಮ ವರ್ಸೆಲ್ ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್‌ಗೆ):

EDGE_CONFIG=your_edge_config_url

ಪ್ರಮುಖ: ನಿಮ್ಮ .env.local ಫೈಲ್ ಅನ್ನು ನಿಮ್ಮ ರೆಪೊಸಿಟರಿಗೆ ಎಂದಿಗೂ ಕಮಿಟ್ ಮಾಡಬೇಡಿ. ಉತ್ಪಾದನಾ ಪರಿಸರಕ್ಕಾಗಿ ವರ್ಸೆಲ್‌ನ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯಬಲ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಿ.

5. ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಕಾನ್ಫಿಗರೇಶನ್ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು

ಈಗ ನೀವು ನಿಮ್ಮ Next.js ಕೋಡ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಇಲ್ಲೊಂದು ಉದಾಹರಣೆ:

// pages/index.js
import { get } from '@vercel/edge-config';

export async function getServerSideProps() {
  const featureFlag = await get('featureFlag');
  const welcomeMessage = await get('welcomeMessage');

  return {
    props: {
      featureFlag,
      welcomeMessage,
    },
  };
}

export default function Home({ featureFlag, welcomeMessage }) {
  return (
    <div>
      <h1>{welcomeMessage}</h1>
      {featureFlag ? <p>ಫೀಚರ್ ಸಕ್ರಿಯವಾಗಿದೆ!</p> : <p>ಫೀಚರ್ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ.</p>}
    </div>
  );
}

ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು getServerSideProps ನಲ್ಲಿ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನಿಂದ featureFlag ಮತ್ತು welcomeMessage ಮೌಲ್ಯಗಳನ್ನು ಪಡೆಯುತ್ತಿದ್ದೇವೆ. ಈ ಮೌಲ್ಯಗಳನ್ನು ನಂತರ Home ಕಾಂಪೊನೆಂಟ್‌ಗೆ ಪ್ರಾಪ್ಸ್ ಆಗಿ ರವಾನಿಸಲಾಗುತ್ತದೆ.

6. ಕಾನ್ಫಿಗರೇಶನ್ ಮೌಲ್ಯಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡುವುದು

ನೀವು ವರ್ಸೆಲ್ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಮೂಲಕ ನಿಮ್ಮ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನಲ್ಲಿನ ಮೌಲ್ಯಗಳನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಬಹುದು. ಬದಲಾವಣೆಗಳು ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ ಜಾಗತಿಕವಾಗಿ ಪ್ರಸಾರವಾಗುತ್ತವೆ.

ಸುಧಾರಿತ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು ಮತ್ತು ಉದಾಹರಣೆಗಳು

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ A/B ಟೆಸ್ಟಿಂಗ್

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ A/B ಟೆಸ್ಟಿಂಗ್‌ಗೆ ಸೂಕ್ತವಾಗಿದೆ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನ ಯಾವ ಆವೃತ್ತಿಯನ್ನು ಬಳಕೆದಾರರಿಗೆ ಒದಗಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವ ಕಾನ್ಫಿಗರೇಶನ್ ಮೌಲ್ಯವನ್ನು ನೀವು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ:

  1. abTestGroup ಎಂಬ ಕೀಲಿಯೊಂದಿಗೆ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ.
  2. ಮೌಲ್ಯವನ್ನು A ಅಥವಾ B ಗೆ ಹೊಂದಿಸಿ.
  3. ನಿಮ್ಮ ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ನಲ್ಲಿ, abTestGroup ಮೌಲ್ಯವನ್ನು ಓದಿ.
  4. ಮೌಲ್ಯದ ಆಧಾರದ ಮೇಲೆ, ನಿಮ್ಮ ವಿಷಯದ ಆವೃತ್ತಿ A ಅಥವಾ ಆವೃತ್ತಿ B ಅನ್ನು ಒದಗಿಸಿ.

ಇಲ್ಲೊಂದು ಉದಾಹರಣೆ:

// pages/index.js
import { get } from '@vercel/edge-config';

export async function getServerSideProps() {
  const abTestGroup = await get('abTestGroup');

  let content;
  if (abTestGroup === 'A') {
    content = 'ಇದು ಆವೃತ್ತಿ A!';
  } else {
    content = 'ಇದು ಆವೃತ್ತಿ B!';
  }

  return {
    props: {
      content,
    },
  };
}

export default function Home({ content }) {
  return (
    <div>
      <h1>A/B ಟೆಸ್ಟ್</h1>
      <p>{content}</p>
    </div>
  );
}

ಪ್ರತಿ ಆವೃತ್ತಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಮತ್ತು ಯಾವ ಆವೃತ್ತಿಯು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ನೀವು ಅನಾಲಿಟಿಕ್ಸ್ ಪರಿಕರಗಳನ್ನು ಬಳಸಬಹುದು. ಸಮಗ್ರ A/B ಟೆಸ್ಟಿಂಗ್ ಡೇಟಾ ಸಂಗ್ರಹಣೆ ಮತ್ತು ವಿಶ್ಲೇಷಣೆಗಾಗಿ ಗೂಗಲ್ ಅನಾಲಿಟಿಕ್ಸ್, ಆಂಪ್ಲಿಟ್ಯೂಡ್, ಅಥವಾ ಮಿಕ್ಸ್‌ಪ್ಯಾನೆಲ್‌ನಂತಹ ಪರಿಕರಗಳನ್ನು ಪರಿಗಣಿಸಿ.

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ ಫೀಚರ್ ಫ್ಲ್ಯಾಗ್‌ಗಳು

ಹೊಸ ಕೋಡ್ ನಿಯೋಜಿಸದೆಯೇ ಫೀಚರ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಫೀಚರ್ ಫ್ಲ್ಯಾಗ್‌ಗಳು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ. ಉತ್ಪಾದನೆಯಲ್ಲಿ ಹೊಸ ಫೀಚರ್‌ಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಅಥವಾ ಬಳಕೆದಾರರ ಒಂದು ಭಾಗಕ್ಕೆ ಕ್ರಮೇಣ ಫೀಚರ್‌ಗಳನ್ನು ಹೊರತರಲು ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ. A/B ಟೆಸ್ಟಿಂಗ್‌ನಂತೆಯೇ, ನಿಮ್ಮ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನಲ್ಲಿನ ಸರಳ ಬೂಲಿಯನ್ ಫ್ಲ್ಯಾಗ್‌ನೊಂದಿಗೆ ನೀವು ಫೀಚರ್ ಲಭ್ಯತೆಯನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು.

  1. newFeatureEnabled ಎಂಬ ಕೀಲಿಯೊಂದಿಗೆ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ.
  2. ಮೌಲ್ಯವನ್ನು true ಅಥವಾ false ಗೆ ಹೊಂದಿಸಿ.
  3. ನಿಮ್ಮ ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ನಲ್ಲಿ, newFeatureEnabled ಮೌಲ್ಯವನ್ನು ಓದಿ.
  4. ಮೌಲ್ಯದ ಆಧಾರದ ಮೇಲೆ, ಹೊಸ ಫೀಚರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ.
// components/MyComponent.js
import { get } from '@vercel/edge-config';

export async function MyComponent() {
  const newFeatureEnabled = await get('newFeatureEnabled');

  return (
    <div>
      {newFeatureEnabled ? <p>ಹೊಸ ಫೀಚರ್ ಸಕ್ರಿಯವಾಗಿದೆ!</p> : <p>ಹೊಸ ಫೀಚರ್ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ.</p>}
    </div>
  );
}

export default MyComponent;

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ ವೈಯಕ್ತೀಕರಣ

ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳು ಅಥವಾ ಸ್ಥಳದ ಆಧಾರದ ಮೇಲೆ ವಿಷಯ ಮತ್ತು ಅನುಭವಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನೀವು ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳನ್ನು ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದು ಮತ್ತು ನಂತರ ಆ ಆದ್ಯತೆಗಳ ಆಧಾರದ ಮೇಲೆ ವಿಭಿನ್ನ ವಿಷಯವನ್ನು ಒದಗಿಸಲು ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಬಳಸಬಹುದು.

ಉದಾಹರಣೆ ಸನ್ನಿವೇಶ: ಒಂದು ಜಾಗತಿಕ ಇ-ಕಾಮರ್ಸ್ ಸೈಟ್ ಬಳಕೆದಾರರ ದೇಶದ ಆಧಾರದ ಮೇಲೆ ಉತ್ಪನ್ನ ಶಿಫಾರಸುಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಬಯಸುತ್ತದೆ. ದೇಶಗಳನ್ನು ಶಿಫಾರಸು ವರ್ಗಗಳಿಗೆ ಮ್ಯಾಪ್ ಮಾಡಲು ಅವರು ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಬಳಸಬಹುದು.

  1. countryToCategoryMap ಎಂಬ ಕೀಲಿಯೊಂದಿಗೆ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ.
  2. ಮೌಲ್ಯವನ್ನು ದೇಶಗಳನ್ನು ಉತ್ಪನ್ನ ವರ್ಗಗಳಿಗೆ ಮ್ಯಾಪ್ ಮಾಡುವ JSON ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಹೊಂದಿಸಿ (ಉದಾ., {"US": "Electronics", "GB": "Fashion", "JP": "Home Goods"}).
  3. ನಿಮ್ಮ ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ನಲ್ಲಿ, countryToCategoryMap ಮೌಲ್ಯವನ್ನು ಓದಿ.
  4. ಬಳಕೆದಾರರ ದೇಶವನ್ನು ನಿರ್ಧರಿಸಿ (ಉದಾ., ಅವರ IP ವಿಳಾಸ ಅಥವಾ ಕುಕೀಯಿಂದ).
  5. ಸೂಕ್ತವಾದ ಉತ್ಪನ್ನ ವರ್ಗವನ್ನು ನಿರ್ಧರಿಸಲು countryToCategoryMap ಬಳಸಿ.
  6. ಆ ವರ್ಗದಿಂದ ಉತ್ಪನ್ನ ಶಿಫಾರಸುಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ.
// pages/products.js
import { get } from '@vercel/edge-config';

export async function getServerSideProps(context) {
  const countryToCategoryMap = await get('countryToCategoryMap');
  const country = context.req.headers['x-vercel-ip-country'] || 'US'; // US ಗೆ ಡೀಫಾಲ್ಟ್ ಮಾಡಿ
  const category = countryToCategoryMap[country] || 'General'; // General ಗೆ ಡೀಫಾಲ್ಟ್ ಮಾಡಿ

  // ವರ್ಗದ ಆಧಾರದ ಮೇಲೆ ಉತ್ಪನ್ನ ಶಿಫಾರಸುಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ
  const products = await fetchProducts(category);

  return {
    props: {
      products,
    },
  };
}

export default function Products({ products }) {
  return (
    <div>
      <h1>ಉತ್ಪನ್ನ ಶಿಫಾರಸುಗಳು</h1>
      <ul>
        {products.map((product) => (
          <li key={product.id}>{product.name}</li>
        ))}
      </ul>
    </div>
  );
}

async function fetchProducts(category) {
  // ನಿಮ್ಮ ನಿಜವಾದ ಉತ್ಪನ್ನ ಪಡೆಯುವ ಲಾಜಿಕ್‌ನೊಂದಿಗೆ ಬದಲಾಯಿಸಿ
  return [
    { id: 1, name: `ಉತ್ಪನ್ನ 1 (${category})` },
    { id: 2, name: `ಉತ್ಪನ್ನ 2 (${category})` },
  ];
}

ಈ ಉದಾಹರಣೆಯು ಬಳಕೆದಾರರ ದೇಶವನ್ನು ನಿರ್ಧರಿಸಲು x-vercel-ip-country ಹೆಡರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಈ ಹೆಡರ್ ಅನ್ನು ವರ್ಸೆಲ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೇರಿಸುತ್ತದೆ. ಐಪಿ-ಆಧಾರಿತ ಜಿಯೋಲೊಕೇಶನ್ ಮೇಲೆ ಮಾತ್ರ ಅವಲಂಬಿಸುವುದು ಯಾವಾಗಲೂ ನಿಖರವಾಗಿರುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯ. ಸುಧಾರಿತ ನಿಖರತೆಗಾಗಿ ಬಳಕೆದಾರ-ಒದಗಿಸಿದ ಸ್ಥಳ ಅಥವಾ ಹೆಚ್ಚು ಅತ್ಯಾಧುನಿಕ ಜಿಯೋಲೊಕೇಶನ್ ಸೇವೆಗಳಂತಹ ಇತರ ವಿಧಾನಗಳನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ ಭೌಗೋಳಿಕ ರೂಟಿಂಗ್

ಬಳಕೆದಾರರನ್ನು ಅವರ ಸ್ಥಳದ ಆಧಾರದ ಮೇಲೆ ವಿಭಿನ್ನ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಮಾರ್ಗಸೂಚಿಸಲು ನೀವು ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಬಳಸಬಹುದು. ಸ್ಥಳೀಯ ವಿಷಯವನ್ನು ಒದಗಿಸಲು ಅಥವಾ ಪ್ರಾದೇಶಿಕ ನಿಯಮಗಳನ್ನು ಪಾಲಿಸಲು ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ.

  1. countryToRedirectMap ಎಂಬ ಕೀಲಿಯೊಂದಿಗೆ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ.
  2. ಮೌಲ್ಯವನ್ನು ದೇಶಗಳನ್ನು URL ಗಳಿಗೆ ಮ್ಯಾಪ್ ಮಾಡುವ JSON ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಹೊಂದಿಸಿ (ಉದಾ., {"CN": "/china", "DE": "/germany"}).
  3. ನಿಮ್ಮ ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ನಲ್ಲಿ, countryToRedirectMap ಮೌಲ್ಯವನ್ನು ಓದಿ.
  4. ಬಳಕೆದಾರರ ದೇಶವನ್ನು ನಿರ್ಧರಿಸಿ (ಉದಾ., ಅವರ IP ವಿಳಾಸದಿಂದ).
  5. ಬಳಕೆದಾರರನ್ನು ಸೂಕ್ತವಾದ URL ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ.
// pages/_middleware.js
import { NextResponse } from 'next/server'
import { get } from '@vercel/edge-config';

export async function middleware(req) {
  const countryToRedirectMap = await get('countryToRedirectMap');
  const country = req.geo.country || 'US'; // US ಗೆ ಡೀಫಾಲ್ಟ್ ಮಾಡಿ
  const redirectUrl = countryToRedirectMap[country];

  if (redirectUrl) {
    return NextResponse.redirect(new URL(redirectUrl, req.url))
  }

  return NextResponse.next()
}

export const config = {
  matcher: '/',
}

ಈ ಉದಾಹರಣೆಯು req.geo.country ಪ್ರಾಪರ್ಟಿಯನ್ನು ಬಳಸುತ್ತದೆ, ಇದನ್ನು ವರ್ಸೆಲ್‌ನ ಎಡ್ಜ್ ನೆಟ್‌ವರ್ಕ್ ಬಳಕೆದಾರರ ದೇಶದ ಕೋಡ್‌ನೊಂದಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತುಂಬುತ್ತದೆ. ಇದು x-vercel-ip-country ಹೆಡರ್ ಅನ್ನು ನೇರವಾಗಿ ಪಾರ್ಸ್ ಮಾಡುವುದಕ್ಕಿಂತ ಸ್ವಚ್ಛ ಮತ್ತು ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹ ವಿಧಾನವಾಗಿದೆ. ಮಿಡಲ್‌ವೇರ್ ಫಂಕ್ಷನ್ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನಲ್ಲಿ ಬಳಕೆದಾರರ ದೇಶಕ್ಕಾಗಿ ಮರುನಿರ್ದೇಶನ URL ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಹಾಗಿದ್ದಲ್ಲಿ, ಅದು ಬಳಕೆದಾರರನ್ನು ಆ URL ಗೆ ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಅದು ವಿನಂತಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ.

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನೊಂದಿಗೆ ರೇಟ್ ಲಿಮಿಟಿಂಗ್

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಪೂರ್ಣ ಪ್ರಮಾಣದ ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಪರಿಹಾರವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸದಿದ್ದರೂ, ಮೂಲಭೂತ ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನೀವು ಇದನ್ನು ಇತರ ತಂತ್ರಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಿ ಬಳಸಬಹುದು. ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು (ಉದಾ., ಪ್ರತಿ ನಿಮಿಷಕ್ಕೆ ವಿನಂತಿಗಳು) ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುವುದು ಮತ್ತು ನಂತರ ಆ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ನಿಮ್ಮ ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ಗಳಲ್ಲಿ ರೇಟ್ ಲಿಮಿಟ್‌ಗಳನ್ನು ಜಾರಿಗೊಳಿಸಲು ಬಳಸುವುದು ಇದರ ಆಲೋಚನೆಯಾಗಿದೆ.

ಪ್ರಮುಖ ಟಿಪ್ಪಣಿ: ಈ ವಿಧಾನವು ಸರಳ ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಸನ್ನಿವೇಶಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ. ಹೆಚ್ಚು ದೃಢವಾದ ರೇಟ್ ಲಿಮಿಟಿಂಗ್‌ಗಾಗಿ, ಮೀಸಲಾದ ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಸೇವೆಗಳು ಅಥವಾ ಮಿಡಲ್‌ವೇರ್ ಅನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.

  1. requestsPerMinute ಮತ್ತು blockedIps ನಂತಹ ಕೀಲಿಗಳೊಂದಿಗೆ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ರಚಿಸಿ.
  2. requestsPerMinute ಮೌಲ್ಯವನ್ನು ಬಯಸಿದ ರೇಟ್ ಲಿಮಿಟ್‌ಗೆ ಹೊಂದಿಸಿ.
  3. blockedIps ಮೌಲ್ಯವನ್ನು ನಿರ್ಬಂಧಿಸಬೇಕಾದ IP ವಿಳಾಸಗಳ ಅರೇಗೆ ಹೊಂದಿಸಿ.
  4. ನಿಮ್ಮ ಎಡ್ಜ್ ಫಂಕ್ಷನ್‌ನಲ್ಲಿ, requestsPerMinute ಮತ್ತು blockedIps ಮೌಲ್ಯಗಳನ್ನು ಓದಿ.
  5. ಬಳಕೆದಾರರ IP ವಿಳಾಸವು blockedIps ಅರೇಯಲ್ಲಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. ಹಾಗಿದ್ದಲ್ಲಿ, ವಿನಂತಿಯನ್ನು ನಿರ್ಬಂಧಿಸಿ.
  6. ಕಳೆದ ನಿಮಿಷದಲ್ಲಿ ಪ್ರತಿ IP ವಿಳಾಸದಿಂದ ಬಂದ ವಿನಂತಿಗಳ ಸಂಖ್ಯೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಕ್ಯಾಶಿಂಗ್ ಯಾಂತ್ರಿಕತೆಯನ್ನು ಬಳಸಿ (ಉದಾ., ರೆಡಿಸ್ ಅಥವಾ ವರ್ಸೆಲ್‌ನ ಎಡ್ಜ್ ಕ್ಯಾಶ್).
  7. ಬಳಕೆದಾರರ IP ವಿಳಾಸದಿಂದ ಬಂದ ವಿನಂತಿಗಳ ಸಂಖ್ಯೆಯು requestsPerMinute ಮಿತಿಯನ್ನು ಮೀರಿದರೆ, ವಿನಂತಿಯನ್ನು ನಿರ್ಬಂಧಿಸಿ.

ಉದಾಹರಣೆ (ವಿವರಣಾತ್ಮಕ - ಕ್ಯಾಶಿಂಗ್‌ಗಾಗಿ ಹೆಚ್ಚುವರಿ ಅನುಷ್ಠಾನದ ಅಗತ್ಯವಿದೆ):

// pages/api/protected-route.js
import { get } from '@vercel/edge-config';

export default async function handler(req, res) {
  const requestsPerMinute = await get('requestsPerMinute');
  const blockedIps = await get('blockedIps');
  const ip = req.headers['x-real-ip'] || req.connection.remoteAddress; // ಬಳಕೆದಾರರ ಐಪಿ ಪಡೆಯಿರಿ

  // ಐಪಿ ಬ್ಲಾಕ್ ಆಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ
  if (blockedIps && blockedIps.includes(ip)) {
    return res.status(429).send('Too Many Requests');
  }

  // TODO: ವಿನಂತಿ ಎಣಿಕೆ ಮತ್ತು ಕ್ಯಾಶಿಂಗ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ (ಉದಾ., ರೆಡಿಸ್ ಅಥವಾ ವರ್ಸೆಲ್ ಎಡ್ಜ್ ಕ್ಯಾಶ್ ಬಳಸಿ)
  // ಉದಾಹರಣೆ (ಪರಿಕಲ್ಪನಾತ್ಮಕ):
  // const requestCount = await getRequestCount(ip);
  // if (requestCount > requestsPerMinute) {
  //   return res.status(429).send('Too Many Requests');
  // }
  // await incrementRequestCount(ip);

  // ನಿಮ್ಮ ಸಂರಕ್ಷಿತ ಮಾರ್ಗದ ಲಾಜಿಕ್ ಇಲ್ಲಿ
  res.status(200).send('Protected route accessed successfully!');
}

ರೇಟ್ ಲಿಮಿಟಿಂಗ್‌ಗಾಗಿ ಪ್ರಮುಖ ಪರಿಗಣನೆಗಳು:

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಬಳಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್‌ಗೆ ಪರ್ಯಾಯಗಳು

ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದ್ದರೂ, ಇದು ಯಾವಾಗಲೂ ಪ್ರತಿ ಬಳಕೆಯ ಪ್ರಕರಣಕ್ಕೂ ಉತ್ತಮ ಪರಿಹಾರವಾಗಿರುವುದಿಲ್ಲ. ಪರಿಗಣಿಸಲು ಕೆಲವು ಪರ್ಯಾಯಗಳು ಇಲ್ಲಿವೆ:

ತೀರ್ಮಾನ

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಎಡ್ಜ್‌ನಲ್ಲಿ ಜಾಗತಿಕವಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ವಿತರಿಸಲು ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ. ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನೀವು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಬಹುದು, ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಅನುಭವಗಳನ್ನು ನೀಡಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕಾನ್ಫಿಗರೇಶನ್ ನಿರ್ವಹಣಾ ಕೆಲಸದ ಹರಿವನ್ನು ಸರಳಗೊಳಿಸಬಹುದು. ನೀವು ಜಾಗತಿಕ ಇ-ಕಾಮರ್ಸ್ ಸೈಟ್, ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್, ಅಥವಾ ಯಾವುದೇ ಇತರ ರೀತಿಯ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತಿರಲಿ, ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ನಿಮ್ಮ ವಿಶ್ವಾದ್ಯಂತದ ಬಳಕೆದಾರರಿಗೆ ವೇಗದ ಮತ್ತು ಆಕರ್ಷಕ ಅನುಭವವನ್ನು ನೀಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಸಾಧ್ಯತೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿ ಮತ್ತು ಅದರ ಸಾಮರ್ಥ್ಯವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಇಂದು ನಿಮ್ಮ Next.js ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್ ಅನ್ನು ಸಂಯೋಜಿಸಿ!

Next.js ಎಡ್ಜ್ ಕಾನ್ಫಿಗ್: ಜಾಗತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ ವಿತರಣೆ ಈಗ ಸುಲಭ | MLOG