簡體   English   中英

Pulumi 文件存檔 - 沒有這樣的文件或目錄

[英]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 命令。 我還pwdls文件目錄以確認文件在那里。

# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM