从After Effects的Extendscript调用Amazon Lambda如何获取HTTP调用URL
亚马逊API Gateway所有公开调用端点默认强制使用HTTPS协议,没有官方提供的HTTP版本调用地址,你无法直接获取对应HTTP地址走80端口请求。
可行解决方案
方案1:调用系统原生curl命令发起HTTPS请求(最简便)
ExtendScript支持通过system.callSystem()方法调用本地系统命令,目前Windows 10及以上、macOS所有现代版本均默认内置curl工具,可以直接用curl发起HTTPS请求,无需额外部署服务。
示例代码如下:
// 替换为你的Lambda API Gateway HTTPS地址 var apiUrl = "https://<myAPI>.execute-api.us-east-2.amazonaws.com/version1"; // 拼接curl命令,-s参数表示静默输出仅返回响应内容 var cmd = 'curl -s "' + apiUrl + '"'; // 执行命令获取返回结果 var reply = system.callSystem(cmd); // 后续自行处理reply内容
注意:如果路径或参数包含特殊字符,需要提前做转义处理,避免命令执行出错。
方案2:本地搭建HTTP转HTTPS代理
如果不能使用系统命令,可以在运行After Effects的设备上启动一个轻量的本地HTTP代理服务,代理服务收到你的HTTP请求后,内部转换为HTTPS请求发送给API Gateway,再把结果返回给ExtendScript。
你可以用Python、Node.js等语言快速实现这个代理,以下是Python Flask实现的极简示例:
from flask import Flask import requests app = Flask(__name__) @app.route('/version1') def proxy(): # 替换为你的Lambda HTTPS接口地址 res = requests.get("https://<myAPI>.execute-api.us-east-2.amazonaws.com/version1") return res.text if __name__ == '__main__': # 本地监听80端口 app.run(port=80, host='127.0.0.1')
启动代理服务后,你原来的ExtendScript代码不需要做太大调整,直接把请求地址改为127.0.0.1:80即可。
内容的提问来源于stack exchange,提问作者Antoine Gagnon
相关产品推荐
相关产品推荐

