You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Terraform将reCAPTCHA Classic迁移至Google Cloud版reCAPTCHA?

能否用Terraform迁移Google reCAPTCHA经典密钥到GCP项目?

可以实现,但Terraform官方Google Provider并没有提供专门的迁移资源,需要结合以下两种方式完成操作:

方式一:通过local-exec调用gcloud CLI

利用Terraform的local-exec provisioner直接执行官方提供的gcloud迁移命令,适合批量迁移已有经典密钥的场景。

示例配置片段:

resource "null_resource" "recaptcha_migration" {
  for_each = toset(["YOUR_CLASSIC_KEY_1", "YOUR_CLASSIC_KEY_2"])

  provisioner "local-exec" {
    command = "gcloud recaptcha keys migrate ${each.value} --project=YOUR_GCP_PROJECT_ID"
  }

  # 仅当密钥未迁移时执行,避免重复操作
  triggers = {
    migration_status = "${trimspace(external("gcloud recaptcha keys describe ${each.value} --format='value(migrated)'").result)}"
  }
}
  • 替换YOUR_CLASSIC_KEY_*和YOUR_GCP_PROJECT_ID为实际值
  • triggers字段通过gcloud命令检查密钥迁移状态,确保只执行一次迁移
  • 执行前需确保本地已完成gcloud认证,且账号拥有目标GCP项目的对应权限

方式二:调用Google Cloud reCAPTCHA迁移API

通过Terraform的external数据源或local-exec直接调用reCAPTCHA迁移REST API,适合需要自定义迁移逻辑的场景。

示例配置片段(使用local-exec调用curl):

resource "null_resource" "recaptcha_api_migration" {
  for_each = toset(["YOUR_CLASSIC_KEY_1", "YOUR_CLASSIC_KEY_2"])

  provisioner "local-exec" {
    command = <<EOT
      curl -X POST \
        "https://recaptchaenterprise.googleapis.com/v1/projects/YOUR_GCP_PROJECT_ID/keys:migrate?key=YOUR_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "key": "${each.value}"
        }'
    EOT
  }
}
  • 需要先在GCP项目中创建API密钥作为认证凭证
  • 确保调用账号拥有recaptchaenterprise.keys.migrate权限

关键注意事项

  • 迁移前务必备份经典密钥的配置信息,防止配置丢失
  • 迁移完成后需更新应用中的reCAPTCHA调用代码,切换至reCAPTCHA Enterprise的API端点
  • 可通过gcloud recaptcha keys list --project=YOUR_GCP_PROJECT_ID验证迁移后的密钥状态

内容的提问来源于stack exchange,提问作者Aleks Vujic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 07:15:54