Apex шақырулары Salesforce-тен шығады, VPN-іңізден емес
Ноутбуктегі VPN браузеріңізге жол береді, Apex немесе Marketing Cloud-қа емес. Нақты шақырушыны жария шлюзбен немесе білікті жеке қосылыммен сәйкестендіріңіз.
Ноутбук VPN-ге қосылған сәтте жеке API браузеріңізде жауап береді, сондықтан интеграция жұмыс істеуі керек. Ол жұмыс істемейді, өйткені шақыруды орындайтын код мүлдем басқа жерде жүреді. Apex Salesforce-тің қолданбалық серверлерінде, ал Marketing Cloud-тың серверлік әрекеті сол өнімнің орындалу ортасында жүреді. Екеуі де ноутбугіңіздің туннелін мұра етпейді. Мұны қысқа рәсім ретінде орындаңыз: шақырушыны анықтаңыз, сол шақырушы жете алатын кіреберіс таңдаңыз, жолды басынан аяғына дейін жалғаңыз, содан кейін орындалу ортасының өзінен тексеріңіз.
Желіге кез келген өзгеріс жасамас бұрын шақырушы картасын жазыңыз
Бес өрісті толтырыңыз және ешқайсысын болжаудан бас тартыңыз. Орындау өнімі мен контексті кейінгінің бәрін анықтайды, сондықтан сервердің брандмауэрынан емес, содан бастаңыз.
| 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? |
Браузер қойындысы мен Apex шақыруы екі түрлі клиент, ал жұмыс істеп тұрған браузер тек сіздің үстеліңізден жол бар екенін дәлелдейді. Егер орындалу ортасының өрісі Apex десе, өзекті сұрақ Salesforce қай мекенжайлардан шығады, ал ноутбугіңізде қандай мекенжайлар бар емес. Сондықтан API-ді браузерде жүктейтін туннель интеграцияны бұрынғыдай сол күту уақытымен қатеге ұшыратады. Шақырушы картасы біреу брандмауэрді өңдеуден бұрын осы қатені тоқтату үшін бар.
Шақырушы шынымен пайдалана алатын кіреберісті таңдаңыз
Екі жоба да заңды және олар түрлі мәселелерді шешеді. Біріншісі әдейі жасалған жария кіреберіс: шақырушыны аутентификациялайтын, тар рұқсаттарды қолданатын және жеке backend-ке қорғалған қосылымды ұстайтын HTTPS API шлюзі немесе интеграция қызметі. Бұл әрбір backend қызметін ашумен немесе басқару портын интернетке бағыттаумен бірдей емес.
Екіншісі білікті жеке қосылым. Salesforce-тің Private Connect-тің шығыс қосылымы туралы құжаттамасы қолдау көрсетілетін шақыруларды аталған тіркелгі деректеріне байланған Outbound Network Connection арқылы, оның айқындалған AWS PrivateLink құрылымы бойынша маршруттауды сипаттайды. Функцияның басылым, лицензия және өнім шектеулері бар, сондықтан оның айналасында жобалаудан бұрын ұйымның талаптарға сай екенін растаңыз.
Екі жобаның ешқайсысы Salesforce ішінде орнатылған OpenVPN клиенті емес, ал әрбір интеграция жария backend-ке жетуі керек деген ескі тұжырым қолдау көрсетілетін жеке қосылым сәйкес келетін жерде тым кең. Орындалу ортасы қолдайтынын таңдаңыз, содан кейін нақты API-ге дейінгі жолды аяқтаңыз: AWS шеткі нүктесі сіздің жергілікті ресурсыңызды білмейді және ноутбугіңіздің маршрутын мұра етпейді. DNS, backend маршруттауы, қатынау саясаты және жауап трафигі — бәрі сіз таңдаған архитектураға бағынуы керек. Жартылай салынған жеке жол дәл аутентификация мәселесіне ұқсайтын түрде сәтсіздікке ұшырайды.
Жеке жолды басынан аяғына дейін жалғаңыз
API-ден сыртқа қарай жұмыс істеңіз және бірінші олқылықта тоқтаңыз. Backend жергілікті түрде жауап беретінін, содан кейін жеке шеткі нүктенің оған жететінін, содан кейін аталған тіркелгі деректері мен оның шығыс қосылымы сол шеткі нүктені нысанаға алатынын растаңыз.
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Бірінші пәрмен backend-тің жеке желінің ішінен сау екенін дәлелдейді, екіншісі атаудың неге шешілетінін көрсетеді, ал үшіншісі нақты 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Сол екі тексеруді backend-тің өз желісінен орындаңыз, сонда байқалған көзді орындалу ортасы шығарған нәтижемен салыстыруға болады. 200, содан кейін 401 немесе 403 — қажет пішін; екі 200 болса, бас тарту жолы шын мәнінде орындалмайды.
Қайтаруды қажет болмай тұрып жазыңыз: қай рұқсат тізімі жазбасын, аталған тіркелгі деректерін немесе шығыс қосылымын өзгерттіңіз, ол кімге тиесілі және алдыңғы мәнді қалай қалпына келтіру керек. Содан кейін билетте бұлттық шақырушыны және қызметтің толық жолын атап, шеңберді жабыңыз, сонда ешкім сол мәселені қайтадан VPN мәселесі ретінде ашпайды.