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

多云场景:从AWS Lambda(Node.js)认证Google Cloud翻译客户端

解决AWS Lambda通过Google工作负载身份联盟访问Cloud Translate API的超时问题

你遇到的169.254.169.254超时错误,是因为Google Auth库没有正确使用工作负载身份联盟的配置,反而 fallback 到默认流程去请求AWS元数据服务导致的。以下是针对性的解决步骤:

  • 确认客户端配置文件有效性
    检查下载的clientLibraryConfig-fq-aws-apis.json:

    • 确保type字段为external_account(工作负载身份联盟凭证的标识)
    • audience字段需准确指向你的工作负载池提供者受众,格式类似//iam.googleapis.com/projects/[GCP_PROJECT_NUMBER]/locations/global/workloadIdentityPools/[POOL_ID]/providers/[PROVIDER_ID]
    • credential_source下的environment_id为aws1,region_url和url分别指向AWS元数据的区域地址和IAM安全凭证地址
  • 显式加载凭证配置,避免环境变量依赖
    Lambda环境中文件路径可能因打包规则变化,直接在代码里加载配置更可靠,同时指定项目ID跳过自动检测:

    const { TranslationServiceClient } = require('@google-cloud/translate').v3;
    const path = require('path');
    
    const client = new TranslationServiceClient({
      credentials: require(path.join(__dirname, './clientLibraryConfig-fq-aws-apis.json')),
      projectId: '你的GCP项目ID'
    });
    
  • 检查Lambda执行角色权限
    确保Lambda执行角色拥有sts:GetCallerIdentity权限,这是工作负载身份联盟交换凭证的必要权限;同时确认角色信任策略允许Lambda服务扮演该角色。

  • 验证Serverless打包配置
    在serverless.yml中明确包含凭证文件,避免打包时被遗漏:

    package:
      include:
        - clientLibraryConfig-fq-aws-apis.json
    

    若使用Webpack等打包工具,需确保JSON文件被正确复制到输出目录。

  • 排查Lambda网络环境
    如果Lambda部署在VPC内,必须配置NAT网关或VPC端点以允许访问AWS元数据服务(169.254.169.254);非VPC环境下默认可访问,此时超时大概率是IAM角色或依赖版本问题。

  • 升级依赖版本
    旧版@google-cloud/translate或google-auth-library可能存在工作负载身份联盟兼容问题,执行命令升级到最新稳定版:

    npm update @google-cloud/translate google-auth-library
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:19