我对Amazon Echo有技巧。 lambda函数是用C#/。Net Core编写的,并托管在AWS上。现在,我需要使用PuppeteerSharp的功能对其进行扩展。我的第一个问题是,它会下载Chrome,并默认将其放入应用程序的目录中。这给了我一个错误,因为文件系统是只读的。然后,我尝试了HeadlessChromium.Puppeteer.Lambda.Dotnet程序包,但是我得到的技巧太大,无法作为lambda函数上传,因为它现在已嵌入铬。
我现在正尝试使用BrowserFetchOption覆盖默认的伪造者下载路径。这使我可以将AWS上的Chrome下载到系统临时路径,但是Puppeteer找不到它。尝试启动操纵up时,需要将ExecutablePath添加到LaunchOptions对象。我已经在Windows下在本地对其进行了测试,并且可以正常工作,现在我只需要编写一些通用代码即可在AWS下找到Chrome可执行文件。
以下是当前正在运行的Windows代码,其中包含chrome路径的硬编码:
string cpath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "chromium");
var bfopt = new BrowserFetcherOptions() { Path = cpath };
await new BrowserFetcher(bfopt).DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions {
ExecutablePath=System.IO.Path.Combine(cpath, "Win64-674921\\chrome-win\\chrome.exe"),
Headless = true
});