Build failed with status: FAILURE and message: yarn run v1.22.19error Command "plugin" not found. 【Cloud Functions】

9:20
これの続き

index.ts


import {onRequest} from "firebase-functions/v2/https";
import * as logger from "firebase-functions/logger";
import { PKPass } from "passkit-generator";

export const helloWorld = onRequest(async (request, response) => {
   logger.info("Hello logs!");
   try {
      const pass = await PKPass.from({
         model: "./passModels/myFirstModel.pass",
         certificates: {
            wwdr: "./src/controllers/ios/certs/wwdr.pem",
            signerCert: "./src/controllers/ios/certs/signerCert.pem",
            signerKey: "./src/controllers/ios/certs/signerKey.pem",
            signerKeyPassphrase: "Ticketclub",
         },
      }, {
         // keys to be added or overridden
         serialNumber: "AAGH44625236dddaffbda"
      });
      logger.info("buffer", pass);
   
      // Adding some settings to be written inside pass.json
      pass.localize("en", {});
      pass.setBarcodes("36478105430"); // Random value
   
      const buffer = pass.getAsBuffer();
      logger.info("aaaaa", buffer);
      //doSomethingWithTheBuffer(buffer);
   } catch (err) {
      //doSomethingWithTheError(err);
   }
   response.send("Hello from Firebase!");
});

これをfirebase deploy --only functionsすると、エラー

=== Deploying to 'project name'...

i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run build

> build
> tsc

✔ functions: Finished running predeploy script.
i functions: preparing codebase default for deployment
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔ artifactregistry: required API artifactregistry.googleapis.com is enabled
✔ functions: required API cloudfunctions.googleapis.com is enabled
✔ functions: required API cloudbuild.googleapis.com is enabled
i functions: Loading and analyzing source code for codebase default to determine what to deploy
Serving at port 8128

shutdown requested via /__/quitquitquit

i functions: preparing functions directory for uploading...
i functions: packaged /Users/tenna/Desktop/wallet_osuka/gcp/functions (36.95 MB) for uploading
i functions: ensuring required API run.googleapis.com is enabled...
i functions: ensuring required API eventarc.googleapis.com is enabled...
i functions: ensuring required API pubsub.googleapis.com is enabled...
i functions: ensuring required API storage.googleapis.com is enabled...
✔ functions: required API eventarc.googleapis.com is enabled
✔ functions: required API run.googleapis.com is enabled
✔ functions: required API storage.googleapis.com is enabled
✔ functions: required API pubsub.googleapis.com is enabled
i functions: generating the service identity for pubsub.googleapis.com...
i functions: generating the service identity for eventarc.googleapis.com...
✔ functions: functions folder uploaded successfully
i functions: updating Node.js 18 (2nd Gen) function helloWorld(us-central1)...
Build failed with status: FAILURE and message: yarn run v1.22.19
error Command "plugin" not found.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.. For more details see the logs at https://console.cloud.google.com/cloud-build/builds;region=us-central1/631e5336-a662-4721-91d3-29f6307deaaa?project=1082101732317.

Functions deploy had errors with the following functions:
helloWorld(us-central1)
i functions: cleaning up build files...

Error: There was an error deploying functions

調べてもなんも出てこないから、そもそもpasskit-generatorはcloud functionsで使えないとか?
ソース側では何ももう思いつかないので、GCPのCloud Runを開いてみる。

サービスに「認証が必要」というエラーっぽいやつが表示されてる。


が、それについて他に特にコメントがないので、Cloud Functionsの方を見てみる。
ログにContainer called exit(1).というWarningがある。

コンテナがクラッシュした時に起こるらしいが、そもそもコンテナとやらを使ったことがない。
Container Registoryを開いてみる。

Artifact Registry は、コンテナ イメージを管理するための推奨サービスです。Container Registry は非推奨となっており、重要なセキュリティ修正のみが適用されます。詳しくは、Artifact Registry に移行するためのオプションについての記事をご覧ください。

Artifact Registryを開いてみる。
gcf-artifactsというのができてて、helloworldのキャッシュがあるようだ。
一回消しちゃう。

firebase deployを試してみたが同じエラー。

そういえばいつもfirebase deployの時のログに"shutdown requested via /__/quitquitquit"なんて表示されないんだけど、これも何か関係してそう。

調べても何も出てこない

passkit-generatorの作成者に質問してみる(開発者からしたら知ったこっちゃない話だけど、もしかしたら何かヒントになるかもと思い)
https://github.com/alexandercerutti/passkit-generator/issues/164

それとも、他のエラーを解消するためにtsconfigに追加した内容とかが原因だったりするか?

一旦"esModuleInterop": true,を消去して、他の解決方法を探してみる。

10:00

他の解決方法なさそうだったので、一旦戻す。
package.jsonに意味のないスクリプトを追加してみた。
"plugin": "npm --version"

% firebase deploy --only functions

✔ functions[helloWorld(us-central1)] Successful update operation.
Function URL (helloWorld(us-central1)): https://helloworld-gozzofgipq-uc.a.run.app
i functions: cleaning up build files...

✔ Deploy complete!

できた!!!!!?????????え????????いいの???
だめだろう!!!!!!!!

GCPから実行してみる。

10:22

普通に動いてる。。。。なんだったんだ。。。。???

とりあえず完了。本テストで上手くいかなくなりそうなので追記するかも。

この記事が気に入ったらサポートをしてみませんか?