ലാപ്‌ടോപ്പ് VPN-ൽ ചേരുന്ന നിമിഷം തന്നെ സ്വകാര്യ API നിങ്ങളുടെ ബ്രൗസറിൽ പ്രതികരിക്കുന്നു, അതിനാൽ സംയോജനം പ്രവർത്തിക്കേണ്ടതാണ്. അത് പ്രവർത്തിക്കുന്നില്ല, കാരണം കോൾ നടത്തുന്ന കോഡ് തികച്ചും മറ്റൊരിടത്താണ് പ്രവർത്തിക്കുന്നത്. Apex Salesforce-ന്റെ അപ്ലിക്കേഷൻ സെർവറുകളിലും, Marketing Cloud-ന്റെ സെർവർ സൈഡ് പ്രവർത്തനം ആ ഉൽപ്പന്നത്തിന്റെ റൺടൈമിലും പ്രവർത്തിക്കുന്നു. രണ്ടും നിങ്ങളുടെ ലാപ്‌ടോപ്പിന്റെ ടണൽ അനുഭവിക്കുന്നില്ല. ഇത് ഒരു ചെറിയ നടപടിക്രമമായി ചെയ്യുക: വിളിക്കുന്നയാളെ തിരിച്ചറിയുക, ആ വിളിക്കുന്നയാൾക്ക് എത്താൻ കഴിയുന്ന ഒരു പ്രവേശനം തിരഞ്ഞെടുക്കുക, പാത ആദ്യം മുതൽ അവസാനം വരെ ബന്ധിപ്പിക്കുക, എന്നിട്ട് റൺടൈമിൽ നിന്നുതന്നെ പരിശോധിക്കുക.

ഏതെങ്കിലും നെറ്റ്‌വർക്ക് മാറ്റത്തിന് മുമ്പ് വിളിക്കുന്നയാളുടെ കാർഡ് എഴുതുക

അഞ്ച് ഫീൽഡുകൾ പൂരിപ്പിച്ച് അവയിലൊന്നും ഊഹിക്കാൻ വിസമ്മതിക്കുക. എക്സിക്യൂഷൻ ഉൽപ്പന്നവും സന്ദർഭവുമാണ് ബാക്കിയെല്ലാം തീരുമാനിക്കുന്നത്, അതിനാൽ സെർവറിന്റെ ഫയർവാളിൽ നിന്നല്ല, അവിടെ നിന്ന് തുടങ്ങുക.

FieldWhat it must answer
RuntimeWhich product and execution context issues the request?
EndpointWhich hostname must that runtime resolve, and to what?
PathWhich supported public entry or private connection carries it?
IdentityWhich credential and which operation is the API asked to authorize?
FailureHow do responses return, and what happens when the path is down?

ബ്രൗസർ ടാബും Apex കോളും രണ്ട് വ്യത്യസ്ത ക്ലയന്റുകളാണ്, പ്രവർത്തിക്കുന്ന ബ്രൗസർ നിങ്ങളുടെ മേശയിൽ നിന്ന് ഒരു പാതയുണ്ടെന്ന് മാത്രം തെളിയിക്കുന്നു. റൺടൈം ഫീൽഡ് Apex എന്ന് പറഞ്ഞാൽ, പ്രസക്തമായ ചോദ്യം Salesforce ഏത് വിലാസങ്ങളിൽ നിന്ന് പുറത്തുപോകുന്നു എന്നതാണ്, നിങ്ങളുടെ ലാപ്‌ടോപ്പിന് ഏത് വിലാസങ്ങളുണ്ടെന്നല്ല. അതുകൊണ്ടാണ് API ബ്രൗസറിൽ ലോഡ് ചെയ്യുന്ന ടണലിന് പോലും സംയോജനം മുമ്പത്തെ അതേ ടൈംഔട്ടിൽ പരാജയപ്പെടാൻ കഴിയുന്നത്. ആരെങ്കിലും ഫയർവാൾ തിരുത്തുന്നതിന് മുമ്പ് ആ തെറ്റ് തടയാനാണ് വിളിക്കുന്നയാളുടെ കാർഡ്.

വിളിക്കുന്നയാൾക്ക് യഥാർത്ഥത്തിൽ ഉപയോഗിക്കാൻ കഴിയുന്ന പ്രവേശനം തിരഞ്ഞെടുക്കുക

രണ്ട് രൂപകൽപ്പനകളും സാധുവാണ്, അവ വ്യത്യസ്ത പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു. ആദ്യത്തേത് ബോധപൂർവമായ ഒരു പൊതു പ്രവേശനമാണ്: വിളിക്കുന്നയാളെ പ്രാമാണീകരിക്കുന്ന, ഇടുങ്ങിയ അനുമതികൾ പ്രയോഗിക്കുന്ന, സ്വകാര്യ ബാക്ക്എൻഡിലേക്ക് സംരക്ഷിത കണക്ഷൻ നിലനിർത്തുന്ന HTTPS API ഗേറ്റ്‌വേ അല്ലെങ്കിൽ സംയോജന സേവനം. ഓരോ ബാക്ക്എൻഡ് സേവനവും വെളിപ്പെടുത്തുന്നതിനോ മാനേജ്മെന്റ് പോർട്ട് ഇന്റർനെറ്റിലേക്ക് കൈമാറുന്നതിനോ തുല്യമല്ല ഇത്.

രണ്ടാമത്തേത് യോഗ്യതയുള്ള സ്വകാര്യ കണക്ഷനാണ്. Salesforce-ന്റെ ഔട്ട്ബൗണ്ട് Private Connect രേഖകൾ പിന്തുണയുള്ള കോളുകൾ പേരിട്ട ക്രെഡൻഷ്യലിൽ ബന്ധിപ്പിച്ച Outbound Network Connection വഴി, അതിന്റെ നിർവചിച്ച AWS PrivateLink ക്രമീകരണത്തിലൂടെ റൂട്ട് ചെയ്യുന്നത് വിവരിക്കുന്നു. ഈ സവിശേഷതയ്ക്ക് പതിപ്പ്, ലൈസൻസ്, ഉൽപ്പന്ന പരിമിതികളുണ്ട്, അതിനാൽ അതിനെ ചുറ്റിപ്പറ്റി രൂപകൽപ്പന ചെയ്യുന്നതിന് മുമ്പ് സംഘടന യോഗ്യതയുള്ളതാണെന്ന് ഉറപ്പാക്കുക.

രണ്ട് രൂപകൽപ്പനകളിൽ ഒന്നും Salesforce-നുള്ളിൽ ഇൻസ്റ്റാൾ ചെയ്ത OpenVPN ക്ലയന്റല്ല, ഓരോ സംയോജനവും പൊതു ബാക്ക്എൻഡിൽ എത്തണമെന്ന പഴയ വാദം പിന്തുണയുള്ള സ്വകാര്യ കണക്ഷൻ യോജിക്കുന്നിടത്ത് വളരെ വിശാലമാണ്. റൺടൈം പിന്തുണയ്ക്കുന്നത് തിരഞ്ഞെടുക്കുക, എന്നിട്ട് യഥാർത്ഥ API വരെയുള്ള പാത പൂർത്തിയാക്കുക: AWS എൻഡ്‌പോയിന്റിന് നിങ്ങളുടെ ലോക്കൽ റിസോഴ്‌സ് അറിയില്ല, നിങ്ങളുടെ ലാപ്‌ടോപ്പിന്റെ റൂട്ട് അത് അനുഭവിക്കുന്നുമില്ല. DNS, ബാക്ക്എൻഡ് റൂട്ടിംഗ്, ആക്സസ് നയം, പ്രതികരണ ട്രാഫിക് എന്നിവയെല്ലാം നിങ്ങൾ തിരഞ്ഞെടുത്ത ആർക്കിടെക്ചർ പിന്തുടരണം. പകുതി നിർമ്മിച്ച സ്വകാര്യ പാത കൃത്യമായി പ്രാമാണീകരണ പ്രശ്നം പോലെ തോന്നുന്ന രീതിയിൽ പരാജയപ്പെടുന്നു.

സ്വകാര്യ പാത ആദ്യം മുതൽ അവസാനം വരെ ബന്ധിപ്പിക്കുക

API-യിൽ നിന്ന് പുറത്തേക്ക് പ്രവർത്തിച്ച് ആദ്യ വിടവിൽ നിർത്തുക. ബാക്ക്എൻഡ് ലോക്കലായി പ്രതികരിക്കുന്നുവെന്ന്, തുടർന്ന് സ്വകാര്യ എൻഡ്‌പോയിന്റ് അവിടെ എത്തുന്നുവെന്ന്, തുടർന്ന് പേരിട്ട ക്രെഡൻഷ്യലും അതിന്റെ ഔട്ട്ബൗണ്ട് കണക്ഷനും ആ എൻഡ്‌പോയിന്റ് ലക്ഷ്യമിടുന്നുവെന്ന് ഉറപ്പാക്കുക.

curl -sS -m 5 -o /dev/null -w '%{http_code}\n' http://10.40.8.20:8080/health
dig +short api.partner.example
sf apex run --file scripts/apex/callout-check.apex --target-org integration

ആദ്യ കമാൻഡ് സ്വകാര്യ നെറ്റ്‌വർക്കിനുള്ളിൽ നിന്ന് ബാക്ക്എൻഡ് ആരോഗ്യകരമാണെന്ന് തെളിയിക്കുന്നു, രണ്ടാമത്തേത് പേര് എന്തിലേക്ക് റിസോൾവ് ചെയ്യുന്നു എന്ന് കാണിക്കുന്നു, മൂന്നാമത്തേത് യഥാർത്ഥ Salesforce റൺടൈമിൽ നിന്ന് ഒരു കോൾ നടത്തുന്നു. ആദ്യത്തിൽ നിന്ന് 200-ഉം മൂന്നാമത്തേതിൽ നിന്ന് പരാജയവും വിടവിനെ സേവനത്തിലല്ല, പാതയിലോ ക്രെഡൻഷ്യലിലോ ഒറ്റപ്പെടുത്തുന്നു.

ബന്ധിപ്പിക്കുമ്പോൾ ഐഡന്റിറ്റിയുടെ പരിധി കൃത്യമായി നിലനിർത്തുക. പേരിട്ട ക്രെഡൻഷ്യൽ എത്തിച്ചേരാനാകാത്ത എൻഡ്‌പോയിന്റ് ഒറ്റയ്ക്ക് ശരിയാക്കില്ല, കാരണം ക്രെഡൻഷ്യലും സ്വകാര്യ കണക്ഷനും വെവ്വേറെ ജോലികളുള്ള ബന്ധപ്പെട്ട ക്രമീകരണങ്ങളാണ്. IP അനുവദനീയ പട്ടിക നെറ്റ്‌വർക്ക് സ്വീകരണം ഇടുങ്ങിയതാക്കുന്നു, API ക്രെഡൻഷ്യലല്ല, അതിനാൽ സാധാരണ TLS സാധൂകരണവും സേവനത്തിന്റെ സ്വന്തം പ്രാമാണീകരണ-റൊട്ടേഷൻ പ്രക്രിയയും നിലനിർത്തുക. സർട്ടിഫിക്കറ്റ് പരിശോധന ഓഫ് ചെയ്തതിന് ശേഷം മാത്രം ഒരു പരീക്ഷണം വിജയിക്കുന്നുവെങ്കിൽ, നിങ്ങൾ പാതയുടെ പ്രശ്നമല്ല, ഹോസ്റ്റ്നെയിം പ്രശ്നമാണ് കണ്ടെത്തിയത്, സർട്ടിഫിക്കറ്റ് ഇപ്പോഴും ഒത്തുപോകണം.

റൺടൈമിൽ നിന്ന് പരിശോധിച്ച്, എന്നിട്ട് റോൾബാക്ക് രേഖപ്പെടുത്തുക

നിങ്ങളുടെ മെഷീനിൽ നിന്നല്ല, സംയോജന റൺടൈമിൽ നിന്ന് ദോഷകരമല്ലാത്ത അനുവദനീയ അഭ്യർത്ഥന സ്വീകരിക്കുക. സ്വീകരിക്കുന്ന സേവനത്തിന്റെ നിരീക്ഷിച്ച ഉറവിടം, പ്രാമാണീകരിച്ച പ്രിൻസിപ്പൽ, ഫലം, കൂടാതെ പരാജയപ്പെടേണ്ട ബോധപൂർവം നിരസിച്ച ഒരു അഭ്യർത്ഥന എന്നിവ രേഖപ്പെടുത്തുക.

curl -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://api.partner.example/v1/ping
curl -sS -o /dev/null -w '%{http_code}\n' -H 'Authorization: Bearer invalid' https://api.partner.example/v1/ping

അതേ രണ്ട് പരിശോധനകളും ബാക്ക്എൻഡിന്റെ സ്വന്തം നെറ്റ്‌വർക്കിൽ നിന്ന് പ്രവർത്തിപ്പിക്കുക, അതുവഴി നിരീക്ഷിച്ച ഉറവിടം റൺടൈം ഉൽപ്പാദിപ്പിച്ചതുമായി താരതമ്യം ചെയ്യാം. 200-ന് ശേഷം 401 അല്ലെങ്കിൽ 403 ആണ് ആവശ്യമായ രൂപം; രണ്ട് 200 എന്നാൽ നിരസിക്കൽ പാത യഥാർത്ഥത്തിൽ നടപ്പാക്കുന്നില്ല.

ആവശ്യമാകുന്നതിന് മുമ്പ് റോൾബാക്ക് എഴുതുക: ഏത് അനുവദനീയ പട്ടിക എൻട്രി, പേരിട്ട ക്രെഡൻഷ്യൽ അല്ലെങ്കിൽ ഔട്ട്ബൗണ്ട് കണക്ഷൻ നിങ്ങൾ മാറ്റി, അതിന്റെ ഉടമ ആരാണ്, മുമ്പത്തെ മൂല്യം എങ്ങനെ പുനഃസ്ഥാപിക്കാം. തുടർന്ന് ടിക്കറ്റിൽ ക്ലൗഡ് വിളിക്കുന്നയാളെയും സേവനത്തിന്റെ പൂർണ്ണ പാതയും പേരിട്ട് വൃത്തം അടയ്ക്കുക, ആരും അതേ വിഷയം വീണ്ടും VPN പ്രശ്നമായി തുറക്കാതിരിക്കാൻ.

അനുബന്ധ ലേഖനങ്ങൾ