Apex ਕਾਲਆਊਟ ਤੁਹਾਡੇ VPN ਤੋਂ ਨਹੀਂ, Salesforce ਤੋਂ ਨਿਕਲਦੇ ਹਨ
ਲੈਪਟਾਪ 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 ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਲੋਡ ਕਰਾਉਂਦੀ ਹੈ, ਉਹ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਨੂੰ ਪਹਿਲਾਂ ਵਾਂਗ ਹੀ ਉਸੇ ਟਾਈਮਆਊਟ ਨਾਲ ਫੇਲ੍ਹ ਹੋਣ ਦੇ ਸਕਦੀ ਹੈ। ਕਾਲਰ ਕਾਰਡ ਇਸ ਲਈ ਹੈ ਕਿ ਕੋਈ ਫਾਇਰਵਾਲ ਸੋਧੇ, ਉਸ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਗਲਤੀ ਰੁਕ ਜਾਵੇ।
ਉਹ ਪ੍ਰਵੇਸ਼ ਚੁਣੋ ਜੋ ਕਾਲਰ ਅਸਲ ਵਿੱਚ ਵਰਤ ਸਕਦਾ ਹੈ
ਦੋਵੇਂ ਡਿਜ਼ਾਈਨ ਜਾਇਜ਼ ਹਨ, ਅਤੇ ਉਹ ਵੱਖਰੀਆਂ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਦੇ ਹਨ। ਪਹਿਲਾ ਜਾਣ-ਬੁੱਝ ਕੇ ਬਣਾਇਆ ਜਨਤਕ ਪ੍ਰਵੇਸ਼ ਹੈ: 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 ਸਮੱਸਿਆ ਵਜੋਂ ਨਾ ਖੋਲ੍ਹੇ।