■ はじめに
https://dk521123.hatenablog.com/entry/2022/09/27/165923
と同じようなエラーが発生したのだが、若干対応方法が変わったのと その後に別エラーメッセージが発生して、対応がかなり大変だったので 記事としてまとめておく。 # これで、多少はPulumiに関するトラブルシュートに強くなったかなっと思う
目次
【1】pulumi stack selectをした際にエラー「snapshot integrity failure」が発生 1)エラー内容 2)原因 3)解決案 【2】pulumi upした際にエラー「IdempotentParameterMismatchException」が発生 1)エラー内容 2)原因 3)解決案
【1】pulumi stack selectをした際にエラー「snapshot integrity failure」が発生
以下「コマンド例」のように Pulumi loginした後に、pulumi stack selectをした際に 後述「1)エラー内容」の「[1] pulumi stack select時のエラー」 が発生した。
https://dk521123.hatenablog.com/entry/2022/09/27/165923
と似てるエラー(微妙に違うが)だから、pulumi state deleteしたら、 別エラー「[2] pulumi state delete時のエラー」が発生した。
コマンド例
# Pulumi loginする(ここまでOK) pulumi login s3://your-s3-bucket/pulumi/state/your-project # pulumi stack select時でエラー「snapshot integrity failure」が発生 pulumi stack select your-stack
1)エラー内容
[1] pulumi stack select時のエラー
error: .pulumi/stacks/your-stack.json snapshot integrity failure; refusing to use it: resource urn:pulumi:xxxxxxxxx dependency urn:pulumi:yyyyyyy/zzzz.whl refers to missing resource
[2] pulumi state delete時のエラー
$ pulumi state delete 'urn:pulumi:xxxxxxxxx' --disable-integrity-checking Please choose a stack, or create a new one: your-stack (対象Stackを選択) warning: This command will edit your stack‘s state directly. y (「y」を入力) <ここからが実際のエラー内容> error: This resource can't be safely deleted because the following resources depend on it: * "resource-name1": (urn:pulumi:zzzzzzzzzzzzzzzz1) << URNも表示 * "resource-name2": (urn:pulumi:zzzzzzzzzzzzzzzz2) * "resource-name3": (urn:pulumi:zzzzzzzzzzzzzzzz3) Delete those resources first before deleting this one.
2)原因
[2] pulumi state delete時のエラー
pulumi state deleteで削除しようとしている対象リソースの 子リソースがある(今回の場合、"resource-name1~3"の3つ)ため エラーになっている
3)解決案
[1] 地道にエラーの出ている子リソースから消していく => pulumi state delete 'urn:pulumi:zzzzzzzzzzzzzzzz1' --disable-integrity-checking => 子リソースに孫リソースがいたら、ひたすら消しまくる => かなり大変だった、、、 [2] 再度、pulumi stack select を実行(エラーがでたら[1]を繰り返す) [3] pulumi refresh で、ステートと実リソースの差分を同期する
コマンド例
# [1] 地道にエラーの出ている子リソースから消していく $ pulumi state delete 'urn:pulumi:zzzzzzzzzzzzzzzz1' --disable-integrity-checking warning: This command will edit your stack‘s state directly. y (「y」を入力) Resource deleted (<=削除成功) # 孫リソースがいたら、同じエラーメッセージが表示されるので確認し、消しまくる # 他の子リソースも消す $ pulumi state delete 'urn:pulumi:zzzzzzzzzzzzzzzz2' --disable-integrity-checking $ pulumi state delete 'urn:pulumi:zzzzzzzzzzzzzzzz3' --disable-integrity-checking # 再度に親リソースを消す $ pulumi state delete 'urn:pulumi:xxxxxxxxx' --disable-integrity-checking # [2] 再度、pulumi stack select を実行 $ pulumi stack select your-stack # エラーがでたら[1]を繰り返す # ちなみに今回の場合、別リソースが紐づいていてエラーが発生した # [3] リフレッシュ(ステートと実リソースの差分を同期する) # => これをやらないとpulumi up時にエラーになる可能性がある $ pulumi refresh
【2】pulumi upした際にエラー「IdempotentParameterMismatchException」が発生
「【1】pulumi stack selectをした際にエラー「snapshot integrity failure」が発生」 の対応後に、pulumi up したら、別エラー(「1)エラー内容」を参照)が発生した
1)エラー内容
error creating Glue Trigger (test-trigger): IdempotentParameterMismatchException: Trigger with name 'test-trigger' already submitted with different configuration * Idempotent(アイデムポテント) : 冪等性(べきとうせい)
2)原因
* 実環境に対象リソース(今回の場合「test-trigger」)が 既に出来上がっているため
3)解決案
* 手動で対象リソースを削除し、 (今回の場合、GlueページからGUI操作で「test-trigger」を削除した) 再度、pulumi upを実行
関連記事
Pulumi ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/10/23/025230
Pulumi ~ 基本編 / CLI ~
https://dk521123.hatenablog.com/entry/2021/10/25/215508
pulumiで対象リソースのみデプロイ / 削除(--target)
https://dk521123.hatenablog.com/entry/2022/06/28/000000
pulumiで 新規作成リソースのみデプロイ
https://dk521123.hatenablog.com/entry/2022/08/04/124321
Pulumi に関するトラブル
https://dk521123.hatenablog.com/entry/2022/01/11/105319
pulumi up 時のトラブル
https://dk521123.hatenablog.com/entry/2022/04/05/150240
pulumi up --target をした際にエラー「snapshot integrity failure」が発生
https://dk521123.hatenablog.com/entry/2022/09/27/165923