アップデート:

アップデート:

私はこれに基づいてプロジェクトを試し続けます:https://github.com/GoogleCloudPlatform/iot-smart-home-cloud

私の問題は次のとおりです:

cloudfunctions.googleapis.com google.cloud.functions.v1.CloudFunctionsService.UpdateFunction プロジェクト/casaminha-2e0ca/locations/us-central1/functions/syncOnRemove [メールアドレス] ビルドに失敗しました: ソースを解決できませんでした: googleapi: エラー 403:[メールアドレス]Google Cloud Storage オブジェクトへの storage.objects.get アクセス権がありません。禁止されています com.google.net.rpc3.client.RpcClientException: APPLICATION_ERROR;google.devtools.cloudbuild.v1/ArgoAdminV1.CreateBuild;ソースを解決できませんでした: googleapi: エラー 403:[メールアドレス]Google Cloud Storage オブジェクトへの storage.objects.get アクセス権がありません。禁止;AppErrorCode=3;StartTimeMs=999999999999540;不明;ResFormat=AUTOMATIC;ServerTimeSec=0.999999999999999;LogBytes=256;非

2021 年 7 月 27 日に、GCP コンソールで削除した Cloud Build または Cloud Run (プロジェクトでは Cloud Run を使用していません) を削除しました。これが、Google のアクション プロジェクトで認証情報エラーを引き起こしている原因だと思いました。その後、現在のエラーが発生し始めました

削除したサービスアカウントはGoogleコントローラーにのみ関連付けられていたことを覚えています(そこには疑問符があった

gcfコマンドで再構築できると思います。しかし、これが正しいかどうかはわかりません。また、使い方もわかりません。gcf-sources-<プロジェクト番号>-

私は、Firestore と GCP を使用して、Google でのアクションを試行し続けています。

コマンド:

firebase --project casaminha-2e0ca 関数:config:set cloudiot.region=us-central1

firebase --project casaminha-2e0ca functions:config:set smarthome.id=567617xxxxxxxxxxxxxx9r9upjxxxxxxx0t.apps.googleusercontent.com smarthome.secret=D99999999999

firebase --project casaminha-2e0ca functions:config:set smarthome.key="99999999"

firebase デプロイ --project casaminha-2e0ca

これはgithubの私のプロジェクトです:https://github.com/neuberfran/firebasefunction

これは私の問題追跡ツールです:https://issuetracker.google.com/issues/194942955?pli=1

手伝ってくれますか

答え1

Cloud Functions を使用する場合、Cloud Functions をデプロイするには Cloud Build API を有効にする必要があります。これはチュートリアルに詳しく記載されています(あなたが始める前に)。Google Cloud プロジェクトで Cloud Build サービスを有効にすると、Cloud Build サービス アカウントが自動的に生成され、次のようになります。

[PROJECT-ID]@cloudbuild.gserviceaccount.com

これに関して:

2021年7月27日にクラウドビルドまたはクラウドランを削除しました(プロジェクトではクラウドランを使用していません)GCPコンソールで削除しました

ご注意ください、サービス アカウントの削除:

サービス アカウントを削除すると、アプリケーションはそのサービス アカウントを通じて Google Cloud リソースにアクセスできなくなります。

そしてあなたの問題追跡解決策は、削除されたサービス アカウントを復元することのようです。削除されたサービス アカウントは 30 日以内に復元できます。削除を取り消したり復元したりするには、Cloud Logging/Log Explorer で取得できる削除されたサービス アカウントの数値 ID または ACCOUNT_ID を見つける必要があります。チュートリアルはこちら

数値 ID または ACCOUNT_ID を取得したら、CLI、Cloud Shell、または Cloud SDK で次のコマンドを実行します。

gcloud beta iam service-accounts undelete ACCOUNT_ID

出力:

restoredAccount:
  email: SA_NAME@PROJECT_ID.iam.gserviceaccount.com
  etag: BwWWE7zpApg=
  name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
  oauth2ClientId: '123456789012345678901'
  projectId: PROJECT_ID
  uniqueId: 'ACCOUNT_ID'

アップデート:

エラーの根本的な原因は「Cloud Build サービス アカウント」権限が不足していたことであり、この権限を追加することで解決しました。

答え2

私の場合は、サービス アカウントを削除せず、サービス アカウントの IAM ロールだけを削除しました。

解決策は、IAM ページに移動し、プリンシパル [PROJECT-ID]@cloudbuild.gserviceaccount.com とロールを追加することです。Cloud Build Service Account

答え3

私の場合は、プロジェクトで Cloud Build API を有効にしたばかりだったので、あと 2 分待つだけで機能しました。待っている間に IAM ロールを無駄にいじらなくてよかったです。

関連情報