Mae'r API preifat yn ateb yn eich porwr yr eiliad y bydd y gliniadur yn ymuno â'r VPN, felly dylai'r integreiddiad weithio. Nid yw'n gweithio, oherwydd mae'r cod sy'n gwneud y alwad yn rhedeg yn hollol rhywle arall. Mae Apex yn rhedeg ar weinyddion cymhwysiad Salesforce, ac mae gweithgaredd ochr-weinydd Marketing Cloud yn rhedeg yn runtime y cynnyrch hwnnw. Nid oes yr un ohonynt yn etifeddu twnnel eich gliniadur. Rhedwch hyn fel gweithdrefn fer: nodwch y galwr, dewiswch fynedfa y gall y galwr hwnnw ei chyrraedd, cysylltwch y llwybr o'r dechrau i'r diwedd, yna gwiriwch o'r runtime ei hun.

Ysgrifennwch gerdyn y galwr cyn unrhyw newid rhwydwaith

Llenwch bum maes a gwrthodwch ddyfalu unrhyw un ohonynt. Mae'r cynnyrch gweithredu a'r cyd-destun yn penderfynu popeth i lawr yr afon, felly dechreuwch yno yn hytrach nag wrth wal dân y gweinydd.

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?

Mae tab porwr a galwad Apex yn ddau gleient gwahanol, ac mae porwr sy'n gweithio ond yn profi bod llwybr yn bodoli o'ch desg. Os yw maes y runtime yn dweud Apex, y cwestiwn perthnasol yw o ba gyfeiriadau y mae Salesforce yn allgymryd, nid pa gyfeiriadau sydd gan eich gliniadur. Dyna pam y gall twnnel sy'n gwneud i'r API lwytho mewn porwr adael yr integreiddiad yn methu â'r un terfyn amser ag o'r blaen. Mae cerdyn y galwr yn bod i atal y camgymeriad hwnnw cyn i unrhyw un olygu wal dân.

Dewiswch y fynedfa y gall y galwr ei defnyddio mewn gwirionedd

Mae'r ddau ddyluniad yn ddilys, ac maent yn datrys problemau gwahanol. Y cyntaf yw mynedfa gyhoeddus fwriadol: porth API HTTPS neu wasanaeth integreiddio sy'n dilysu'r galwr, yn gosod caniatadau cul, ac yn dal cysylltiad gwarchodedig i'r backend preifat. Nid yw hynny'r un peth ag amlygu pob gwasanaeth backend neu anfon porth rheoli i'r rhyngrwyd.

Yr ail yw cysylltiad preifat cymwys. Mae dogfennaeth Private Connect allan Salesforce yn disgrifio llwybro galwadau a gefnogir trwy Outbound Network Connection wedi'i chlymu i gymhwysiad enwir, dros ei drefniant AWS PrivateLink diffiniedig. Mae gan y nodwedd gyfyngiadau argraffiad, trwydded a chynnyrch, felly cadarnhewch fod y sefydliad yn gymwys cyn dylunio o'i gwmpas.

Nid yw'r un dyluniad yn gleient OpenVPN wedi'i osod y tu mewn i Salesforce, ac mae'r honiad hŷn bod yn rhaid i bob integreiddiad gyrraedd backend cyhoeddus yn rhy eang lle bynnag y mae cysylltiad preifat a gefnogir yn addas. Dewiswch yr un y mae'r runtime yn ei gefnogi, yna gorffennwch y llwybr i'r API go iawn: nid yw pwynt terfyn AWS yn gwybod eich adnodd lleol ac nid yw'n etifeddu llwybr eich gliniadur. Mae'n rhaid i DNS, llwybro backend, polisi mynediad a thraffig atebion oll ddilyn yr bensaernïaeth a ddewisoch. Mae llwybr preifat hanner-adeiladu yn methu mewn ffordd sy'n edrych yn union fel problem dilysu.

Cysylltwch y llwybr preifat o'r dechrau i'r diwedd

Gweithiwch allan o'r API a stopiwch wrth y bwlch cyntaf. Cadarnhewch fod y backend yn ateb yn lleol, yna fod y pwynt terfyn preifat yn cyrraedd yno, yna fod y cymhwysiad enwir a'i gysylltiad allan yn targedu'r pwynt terfyn hwnnw.

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

Mae'r gorchymyn cyntaf yn profi bod y backend yn iach o fewn y rhwydwaith preifat, mae'r ail yn dangos i beth mae'r enw'n datrys, ac mae'r trydydd yn gweithredu galwad o runtime gwirioneddol Salesforce. Mae 200 o'r cyntaf a methiant o'r trydydd yn ynysu'r bwlch i'r llwybr neu'r cymhwysiad yn hytrach na'r gwasanaeth.

Cadwch gwmpas yr hunaniaeth yn fanwl wrth gysylltu. Nid yw cymhwysiad enwir yn trwsio pwynt terfyn anghyraeddadwy ar ei ben ei hun, oherwydd mae'r cymhwysiad a'r cysylltiad preifat yn osodiadau cysylltiedig â swyddi ar wahân. Mae rhestr caniatáu IP yn culhau derbyniad rhwydwaith ac nid yw'n gymhwysiad API, felly cadwch ddilysu TLS arferol a phroses dilysu a chylchdroi'r gwasanaeth ei hun. Os yw prawf yn llwyddo dim ond ar ôl i chi analluogi gwirio tystysgrif, rydych wedi dod o hyd i broblem enw gwesteiwr yn hytrach na phroblem llwybr, ac mae angen i'r dystysgrif gyfateb o hyd.

Gwirwch o'r runtime, yna cofnodwch y cwympiad

Derbyniwch gais diniwed a ganiateir o runtime yr integreiddiad, nid o'ch peiriant. Cofnodwch ffynhonnell a arsylwyd y gwasanaeth sy'n derbyn, y prifddinas dilys, y canlyniad, ac un cais a wrthodwyd yn fwriadol sy'n rhaid methu.

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

Rhedwch yr un ddwy brof o rwydwaith y backend ei hun fel y gellir cymharu'r ffynhonnell a arsylwyd â'r hyn a gynhyrchodd y runtime. 200 wedi'i ddilyn gan 401 neu 403 yw'r siâp rydych ei eisiau; mae dau 200 yn golygu nad yw'r llwybr gwrthod yn cael ei orfodi mewn gwirionedd.

Ysgrifennwch y cwympiad cyn i chi ei angen: pa gofnod rhestr caniatáu, cymhwysiad enwir neu gysylltiad allan y gwnaethoch ei newid, pwy sy'n berchen arno, a sut i adfer y gwerth blaenorol. Yna caewch y cylch trwy enwi'r galwr cwmwl a llwybr llawn y gwasanaeth yn y tocyn, fel na fydd unrhyw un yn ailagor yr un mater fel problem VPN.

Erthyglau cysylltiedig