[英]Pulumi file archive - no such file or directory
我覺得我在這里犯了一個愚蠢的錯誤,但 Pulumi 似乎看不到我用來[創建資產][1] 的文件。 這些文件在目錄中彼此相鄰。 這是文件結構:
-- /resources
-- function.js
-- lambda.ts
很簡單。 這是我們嘗試使用 Javascript 文件作為我們正在創建的 Lambda 的資產的文件:
// lambda.ts
import * as pulumi from '@pulumi/pulumi';
import * as aws from '@pulumi/aws';
const file = new pulumi.asset.FileAsset('./function.js');
console.log('file', file);
export const exampleFunction = new aws.lambda.Function('exampleFunction', {
role: role.arn,
runtime: 'nodejs14.x',
code: file,
});
我編寫了一個腳本來運行我的 Pulumi 命令。 我還pwd
和ls
文件目錄以確認文件在那里。
# deploy.sh
#!/bin/sh
ls resources
pulumi preview
輸出/錯誤:
- ls 資源 -- function.js lambda.ts
- pulumi preview -- 錯誤:無法注冊新資源 exampleFunction [aws:lambda/function:Function]:2 UNKNOWN:無法計算存檔 hash:無法讀取存檔路徑“./function.js”:stat./function。 js: 沒有這樣的文件或目錄
有點迷失了這一點。 文件就在那里。
編輯:
我已經意識到文件路徑必須相對於Pulumi.yaml
文件所在的位置,所以在這種情況下/resources
上方的目錄。
deploy.sh
或者更具體地說, pulumi preview
在哪里運行? 它是在“資源”文件夾中運行,還是在其他地方運行 - 例如在上面的文件夾中? 如果它不是從資源文件夾中運行的,那么這可能是問題所在,因此您需要提供運行 pulumi 的 function.js 的路徑。
您應該使用FileAsset
而不是FileArchive
,因為FileArchive
用於 tar.gz 和相關存檔文件: https://www.pulumi.com/docs/intro/concepts/assets-archives/
至少我認為這就是正在發生的事情。 如果這是真的,那么錯誤消息就不是很好,因為它沒有告訴您實際問題是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.