😄

[凡ミス]: Failed to get existing workspaces: Unable to list objects ~の原因

に公開

[AWS] [凡ミス]: Failed to get existing workspaces: Unable to list objects in S3 bucket ~

Github ActionsでTerraformを実行した時に下記のようなエラーが発生し、その結果が恥ずかしい凡ミスだったため、反省の意味も込めてメモ

発生した状況やエラー文

  • AWS・Github間のOIDCを作成し認証が通ることを確認した
  • 検証のためにS3FullAccessを付けていた
  • Github Actions内で実行している
  • tfstateを管理するのにS3バックエンドを使用している

Github Actions内のステップ

- name: Terraform init
  run: |
    terraform init \
      -backend-config="bucket=${{ env.TFSTATE_BUCKET }}" \
      -backend-config="key=state/terraform.tfstate" \
      -backend-config="region=${{ env.AWS_REGION  }}"
`

エラー文
```bash
Failed to get existing workspaces: Unable to list objects in S3 bucket "*** " with prefix "env:/": operation error S3: ListObjectsV2, https response error StatusCode: 400, RequestID

試したこと

  1. runにrm -rf .terraformを追加してローカル上と同様にワークスペースを初期化
  2. AWS_ROLE_ARNとポリシーの確認
  3. バケット名やリージョンなど各環境変数の再入力
  4. バケットの存在確認
  5. 一般的なエラー原因をAIに列挙してもらいチェック

原因

エラー文を見るとわかるが、***の後ろにスペースがあり、これが原因でバケット名が一致せずにエラーを引き起こしていた。2時間ほど原因調査した結果がこれだったのでもう失敗しない意味も込めてメモする。バケット名をコピペするときは空白や改行が含まれていないか気を付けよう。

最後に

間違っていることあればコメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion