F5 iRUule not working
This is API Application rather than web browser.
Source URL:
Destination URL:
tccog2 – azure openai instance name
irule Requirements:
1) destination host translation (prepend openai.azure.com with azure openai instance name) Immediate resource after the host name in the source url is extracted and prepended in the dest host name. As shown in the example above tccog2 is extracted from source url and prepended in the dest host name tccog2.openai.azure.com.
2) uri path translation (remove the azure openai instance name from uri path) Rest of the uri path (/openai/deployments/tccognitivedeployment/completions?api-version=2022-12-01) after the first resource from the host name is extracted and send us the destination uri path after the host name.
Following irule is not working to satisfy the above requirements:
when HTTP_REQUEST {
if { [HTTP::host] equals "mule-dev-openai-lb.ucsf.edu"} {
if { [HTTP::path] equals "/tccog2" } {
set newUri [string range [HTTP::uri] [string first / [HTTP::uri] 1] end]
set HTTP::uri ${newUri}
HTTP::redirect "https://tccog2.openai.azure.com[HTTP::uri]"
}
}
}
Hello msaud
Please remove the "set" in the "set HTTP::uri ${newUri}" command so it reads "HTTP::uri ${newUri}". I usually don't have the brackets but I doubt that makes a difference.
Scott
[edit] Ignore this, ScottE had the proper advice below 🙂
What's not working for you exactly - what behaviour are you seeing?
I did a quick test in the lab and I see the behaviour you'd expect (a 302 redirect) - obviously I've set the IP for mule-dev-openai-lb.ucsf.edu to the VIP in my lab here:
$ curl -kv 'http://mule-dev-openai-lb.ucsf.edu/tccog2/openai/deployments/tccognitivedeployment/completi ons?api-version=2022-12-01' * Trying 10.10.16.10:80... * Connected to mule-dev-openai-lb.ucsf.edu (10.10.16.10) port 80 (#0) > GET /tccog2/openai/deployments/tccognitivedeployment/completions?api-version=2022-12-01 HTTP/1.1 > Host: mule-dev-openai-lb.ucsf.edu > User-Agent: curl/7.81.0 > Accept: */* > * Mark bundle as not supporting multiuse * HTTP 1.0, assume close after body < HTTP/1.0 302 Moved Temporarily < Location: https://tccog2.openai.azure.com/tccog2/openai/deployments/tccognitivedeployment/completions?api-version=2022-12-01 < Server: BigIP * HTTP/1.0 connection set to keep alive! < Connection: Keep-Alive < Content-Length: 0 < * Connection #0 to host mule-dev-openai-lb.ucsf.edu left intact