Àwọn ìpè Apex ń jáde láti Salesforce, kì í ṣe láti VPN rẹ
VPN lórí kọ̀mpútà ń fún aṣàwákiri rẹ ní ọ̀nà, kì í ṣe fún Apex tàbí Marketing Cloud. So olùpè gidi pọ̀ mọ́ ẹnubodè gbogbogbò tàbí ìsopọ̀ àdáni tó yẹ.
API àdáni ń dáhùn nínú aṣàwákiri rẹ ní àkókò tí kọ̀mpútà bá darapọ̀ mọ́ VPN, nítorí náà ìsopọ̀ yẹn yẹ kí ó ṣiṣẹ́. Kò ṣiṣẹ́, nítorí kóòdù tí ń ṣe ìpè náà ń ṣiṣẹ́ ní ibòmíràn pátápátá. Apex ń ṣiṣẹ́ lórí àwọn sáfà ohun-èlò Salesforce, ìgbòkègbodò ẹ̀gbẹ́ sáfà nínú Marketing Cloud sì ń ṣiṣẹ́ nínú àyíká ìṣiṣẹ́ ti ọjà yẹn. Kò sí ọ̀kan nínú wọn tí ó jogún ọ̀nà abẹ́lẹ̀ kọ̀mpútà rẹ. Ṣe èyí gẹ́gẹ́ bí ìlànà kúkúrú: dámọ̀ olùpè, yan ẹnubodè tí olùpè yẹn lè dé, so ọ̀nà náà pọ̀ láti bẹ̀rẹ̀ dé ìparí, lẹ́yìn náà ṣàyẹ̀wò láti inú àyíká ìṣiṣẹ́ fúnra rẹ̀.
Kọ káàdì olùpè kí ó tó di ìyípadà nẹ́tíwọ́kì èyíkéyìí
Kún àwọn pápá márùn-ún kí o sì kọ̀ láti dí èyíkéyìí nínú wọn. Ọjà ìṣiṣẹ́ àti ipò ń pinnu ohun gbogbo tó tẹ̀le, nítorí náà bẹ̀rẹ̀ níbẹ̀ kì í ṣe ní odi iná sáfà.
| Field | What it must answer |
|---|---|
| Runtime | Which product and execution context issues the request? |
| Endpoint | Which hostname must that runtime resolve, and to what? |
| Path | Which supported public entry or private connection carries it? |
| Identity | Which credential and which operation is the API asked to authorize? |
| Failure | How do responses return, and what happens when the path is down? |
Tábì aṣàwákiri àti ìpè Apex jẹ́ àwọn oníbàárà méjì ọ̀tọ̀ọ̀tọ̀, aṣàwákiri tí ń ṣiṣẹ́ ń fi kìkì pé ọ̀nà wà láti orí tábìlì rẹ. Bí pápá àyíká ìṣiṣẹ́ bá sọ Apex, ìbéèrè tó yẹ ni pé àwọn àdírẹ́sì wo ni Salesforce ń jáde láti, kì í ṣe àwọn àdírẹ́sì wo ni kọ̀mpútà rẹ ní. Ìdí nìyẹn tí ọ̀nà abẹ́lẹ̀ tí ń jẹ́ kí API kó nínú aṣàwákiri lè fi ìsopọ̀ náà sílẹ̀ ní ìkùnà pẹ̀lú àkókò ìdúró kan náà bí ti tẹ́lẹ̀. Káàdì olùpè wà kí ó lè dá àṣìṣe yẹn dúró kí ẹnikẹ́ni tó ṣàtúnṣe odi iná.
Yan ẹnubodè tí olùpè lè lò ní ti gidi
Àwọn àpẹẹrẹ méjèèjì tọ́, wọ́n sì ń yanjú àwọn ìṣòro ọ̀tọ̀ọ̀tọ̀. Èkíni jẹ́ ẹnubodè gbogbogbò tí a mọ̀ọ́mọ̀ ṣe: ẹnubodè API HTTPS tàbí iṣẹ́ ìsopọ̀ tí ń ṣe ìjẹ́rìí olùpè, tí ń fi àwọn àṣẹ tóóró sílò, tí ó sì ń di ìsopọ̀ tí a dáàbò bo mọ́ backend àdáni. Ìyẹn kì í ṣe ohun kan náà pẹ̀lú fífi gbogbo iṣẹ́ backend hàn tàbí fífi ẹnu-ọ̀nà ìṣàkóso ránṣẹ́ sí íńtánẹ́ẹ̀tì.
Èkejì ni ìsopọ̀ àdáni tó yẹ. Ìwé Private Connect ìjáde ti Salesforce ṣàlàyé bí a ṣe ń darí àwọn ìpè tí a ṣe àtìlẹ́yìn fún nípasẹ̀ Outbound Network Connection tí a so mọ́ ẹ̀rí tí a dárúkọ, lórí ètò AWS PrivateLink tí a ti ṣàlàyé. Ẹ̀yà yìí ní àwọn ààlà ẹ̀dà, ìwé àṣẹ àti ọjà, nítorí náà jẹ́rìí pé àjọ náà yẹ kí o tó ṣe àpẹẹrẹ yí ká.
Kò sí ọ̀kan nínú àwọn àpẹẹrẹ náà tí í ṣe oníbàárà OpenVPN tí a fi sínú Salesforce, àti ọ̀rọ̀ àtijọ́ pé gbogbo ìsopọ̀ gbọ́dọ̀ dé backend gbogbogbò gbòòrò jù níbikíbi tí ìsopọ̀ àdáni tí a ṣe àtìlẹ́yìn bá yẹ. Yan èyí tí àyíká ìṣiṣẹ́ ń ṣe àtìlẹ́yìn fún, lẹ́yìn náà parí ọ̀nà náà dé API gidi: ojú ìparí AWS kò mọ ohun àmúṣe ilé rẹ, kò sì jogún ọ̀nà kọ̀mpútà rẹ. DNS, ìdarí backend, ìlànà àǹfààní àti ìrìnàjò ìdáhùn gbogbo wọn gbọ́dọ̀ tẹ̀le ìtòpọ̀ tí o yàn. Ọ̀nà àdáni tí a kọ̀ dẹ́rẹ̀ yóò kùnà ní ọ̀nà tí ó dà bí ìṣòro ìjẹ́rìí gan-an.
So ọ̀nà àdáni pọ̀ láti bẹ̀rẹ̀ dé ìparí
Ṣiṣẹ́ láti API sí ìta kí o sì dúró ní àlàfo àkọ́kọ́. Jẹ́rìí pé backend ń dáhùn níbílẹ̀, lẹ́yìn náà pé ojú ìparí àdáni ń dé ọ̀dọ̀ rẹ̀, lẹ́yìn náà pé ẹ̀rí tí a dárúkọ àti ìsopọ̀ ìjáde rẹ̀ ń dojú kọ ojú ìparí yẹn.
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Àṣẹ àkọ́kọ́ ń fi hàn pé backend ní ìlera láti inú nẹ́tíwọ́kì àdáni, èkejì ń fi hàn ibi tí orúkọ náà ń yanjú sí, ẹ̀kẹta sì ń ṣe ìpè láti àyíká ìṣiṣẹ́ Salesforce gidi. 200 láti èkíni àti ìkùnà láti ẹ̀kẹta ń ya àlàfo náà sọ́tọ̀ sí ọ̀nà tàbí ẹ̀rí, kì í ṣe sí iṣẹ́ náà.
Jẹ́ kí ìwọ̀n ìdánimọ̀ wà ní pípé nígbà tí o ń sopọ̀. Ẹ̀rí tí a dárúkọ kì í tún ojú ìparí tí kò lè dé ṣe fúnra rẹ̀, nítorí ẹ̀rí àti ìsopọ̀ àdáni jẹ́ ètò tó ní ìbámu pẹ̀lú iṣẹ́ ọ̀tọ̀ọ̀tọ̀. Àkójọ IP tí a gbà láàyè ń dín ìgbàwọlé nẹ́tíwọ́kì kù, kì í sì í ṣe ẹ̀rí API, nítorí náà pa ìjẹ́rìí TLS déédé mọ́ pẹ̀lú ìlànà ìjẹ́rìí àti yíyí iṣẹ́ náà fúnra rẹ̀. Bí ìdánwò bá kọjá kìkì lẹ́yìn tí o ti pa ìṣàyẹ̀wò ìwé-ẹ̀rí, o ti rí ìṣòro orúkọ agbàlejò, kì í ṣe ti ọ̀nà, ìwé-ẹ̀rí sì ṣì gbọ́dọ̀ bára mu.
Ṣàyẹ̀wò láti àyíká ìṣiṣẹ́, lẹ́yìn náà kọ ìpadàsẹ́yìn
Gbà ìbéèrè aláìléwu tí a gbà láàyè láti àyíká ìṣiṣẹ́ ìsopọ̀, kì í ṣe láti ẹ̀rọ rẹ. Kọ orísun tí iṣẹ́ tí ń gbà náà rí, ẹni tí a jẹ́rìí, àbájáde àti ìbéèrè kan tí a mọ̀ọ́mọ̀ kọ̀ tí ó gbọ́dọ̀ kùnà.
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Ṣe àwọn ìdánwò méjèèjì náà láti nẹ́tíwọ́kì backend fúnra rẹ̀ kí a lè fi orísun tí a rí wé èyí tí àyíká ìṣiṣẹ́ ṣe. 200 lẹ́yìn 401 tàbí 403 ni ìrísí tí o fẹ́; 200 méjì túmọ̀ sí pé ọ̀nà ìkọ̀ kò ní ìmúṣẹ ní ti gidi.
Kọ ìpadàsẹ́yìn kí o tó nílò rẹ̀: èwo ìforúkọsílẹ̀ àkójọ ààyè, ẹ̀rí tí a dárúkọ tàbí ìsopọ̀ ìjáde ni o yí padà, ẹni tí ó ni í àti bí a ṣe lè dá iye àtẹ́lẹ̀ padà. Lẹ́yìn náà pa ìyípo mọ́ nípa dídárúkọ olùpè ojú-ọ̀run àti gbogbo ọ̀nà iṣẹ́ nínú tíkẹ́ẹ̀tì, kí ẹnikẹ́ni má baà tún ṣí ọ̀rọ̀ kan náà gẹ́gẹ́ bí ìṣòro VPN.