In this article
...
The proxy settings are configured per the standard JRE settings. These are exposed in the Node Proxies tab of your Snaplex in SnapLogic Manager.
Code Block |
---|
jcc.http.proxyHost = myproxy.example.com jcc.http.proxyPort = 3128 jcc.http.nonProxyHosts = localhost|127.*|[::1]|MYHOSTNAME|*.example.com jcc.https.proxyHost = myproxy.example.com jcc.https.proxyPort = 3128 jcc.https.nonProxyHosts = localhost|127.*|[::1]|MYHOSTNAME|*.example.com jcc.http.proxyUser=proxyuser jcc.http.proxyPassword=proxypass |
...
The http_proxy
/https_proxy
environment variable is now active within the SnapLogic product. You can now run your script to call the external process.
For example, the following Script Snap uses the subprocess
library to execute curl
and adds the response body to the output document:
Code Block |
---|
# Import the interface required by the Script snap. from com.snaplogic.scripting.language import ScriptHook import subprocess class TransformScript(ScriptHook): def __init__(self, input, output, error, log): self.input = input self.output = output self.error = error self.log = log # The "execute()" method is called once when the pipeline is started # and allowed to process its inputs or just send data to its outputs. def execute(self): self.log.info("Executing Transform script") while self.input.hasNext(): try: # Read the next input document, store it in a new dictionary, and write this as an output document. inDoc = self.input.next() proc = subprocess.Popen(['curl','https://www.snaplogic.com'], stdout=subprocess.PIPE) (out, err) = proc.communicate() outDoc = { 'original' : out } self.output.write(inDoc, outDoc) except Exception as e: errDoc = { 'error' : str(e) } self.log.error("Error in python script") self.error.write(errDoc) self.log.info("Script executed") # The "cleanup()" method is called after the snap has exited the execute() method def cleanup(self): self.log.info("Cleaning up") # The Script Snap will look for a ScriptHook object in the "hook" variable. The snap will then call the hook's "execute" method. hook = TransformScript(input, output, error, log) |
...
The above configuration is the typical HTTP Proxy configuration, a forward proxy, which can forward requests to any endpoint. You can use the same HTTP proxy for connecting with the SnapLogic control plane and also for connecting to other REST endpoints, such as Salesforce. Forward HTTP proxy type is the most flexible method for integrating multiple endpoints. In some scenarios, your network operations team can configure a reverse proxy instead of a forward proxy. In that case, all requests to the proxy are directly sent to the SnapLogic control plane. For example, if https://myproxy.test.com/ is the proxy server, a request will return the status from the SnapLogic control plane.
For example:
...
To enable the Snaplex to work with the reverse proxy, add the following information to your Snaplex properties:
...