本文へ移動

ステートのロック

使用しているバックエンドがサポートしている場合、OpenTofuはステートを書き込む可能性のあるすべての操作に対してステートをロックします。これにより、他のユーザーがロックを取得してステートを破損するのを防ぎます。

ステートのロックは、ステートを書き込む可能性のあるすべての操作で自動的に行われます。ロックが行われていることを示すメッセージは表示されません。ステートのロックに失敗した場合、OpenTofuは続行しません。ほとんどのコマンドでは`-lock`フラグを使用してステートのロックを無効にできますが、推奨されません。

ロックの取得に予想以上に時間がかかると、OpenTofuはステータスメッセージを出力します。OpenTofuがメッセージを出力しない場合でも、バックエンドがサポートしている場合は、ステートのロックがまだ行われています。

すべてのバックエンドがロックをサポートしているわけではありません。各バックエンドのドキュメントには、ロックをサポートしているかどうかが記載されています。

強制アンロック

OpenTofuには、アンロックに失敗した場合にステートを手動でアンロックするためのforce-unlockコマンドがあります。

このコマンドは非常に注意して使用してください。他のユーザーがロックを保持しているときにステートのロックを解除すると、複数のライターが発生する可能性があります。強制アンロックは、自動アンロックに失敗した場合に、自分のロックのみを解除するためにのみ使用してください。

保護のために、`force-unlock`コマンドには一意のロックIDが必要です。アンロックに失敗した場合、OpenTofuはこのロックIDを出力します。このロックIDはノンスとして機能し、ロックとアンロックが正しいロックを対象としていることを保証します。