🥳
terraform-provider-snowflake の region でハマったのでメモ
記事の内容3行で
- terraform-provider-snowflakeの
- Regionが
- 異なったりいらなかったり
事象
terraform-provider-snowflake を使用しようとしてハマったのでメモ
結論は region
の項目には使用しているクラウドやリージョン情報ではなく、あくまでWebコンソールのURLが適切になるような region
を設定しよう、という話でした。
Exampleにあるように
provider.tf
provider snowflake {
// required
username = "..."
account = "..."
region = "..."
// optional, at exactly one must be set
password = "..."
oauth_access_token = "..."
private_key_path = "..."
// optional
role = "..."
}
region
が必須項目になっていて、またSnowflakeの利用環境は
SELECT CURRENT_REGION()
で調べられるため、AWS東京リージョンをいつものように使用していたので ap-northeast-1
を迷わず provider に登録して terraform の実行をした。
すると下記エラーが返ってきた。
Error: Post "https://XXXXXXXX.ap-northeast-1.snowflakecomputing.com:443/session/v1/login-request?requestId=9ba309bd-9973-408d-b325-df6569dcdbab&request_guid=XXXXXXXX&roleName=ACCOUNTADMIN": x509: certificate is valid for *.us-west-2.snowflakecomputing.com, *.snowflakecomputing.com, *.global.snowflakecomputing.com, *.prod1.us-west-2.aws.snowflakecomputing.com, *.prod2.us-west-2.aws.snowflakecomputing.com, *.us-west-2.aws.snowflakecomputing.com, not XXXXXXXX.ap-northeast-1.snowflakecomputing.com
対応
今回使用していたアカウントは、 ORGADMIN
ロールを用いて払い出された子アカウントであったためか、WebコンソールのURLは https://アカウント名.snowflakecomputing.com/console
でした。
アカウント名と snowflakecomputing.com
の間の名前空間がないもので、それなのにエラー文を見ると ap-northeast-1
へPostしようとしていた。
そのため試しに region
を空文字列へ変更したところ上手くterraformが実行された。
また、他の親アカウントでも試してみたところ、WebコンソールのURLが https://アカウント名.ap-northeast-1.aws.snowflakecomputing.com/console
となっていた場合には region
に ap-northeast-1.aws
まで入れると上手く動作した。
SELECT CURRENT_VERSION()
で出てくるのは
AWS_AP_NORTHEAST_1
とかだったりしたので、若干の罠でした。
Discussion