私はこれに基づいてプロジェクトを試し続けます: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 ロールを無駄にいじらなくてよかったです。