【问题标题】:Setting a dev and prod build with AWS credentials in Xcode?在 Xcode 中使用 AWS 凭证设置开发和产品构建?
【发布时间】:2018-04-26 11:57:36
【问题描述】:

我有一个 dev 和 prod 认知池,一个 dev/prod lambda 函数,它推送到 dev/prod dynamoDb 表。

是否有一种简单的方法让它知道何时使用 prod 凭据(池 ID 等)以及何时使用 dev 凭据?

与触发适当的开发/产品 API 网关 API 相同,这些 API 检查适当的池以进行身份​​验证,并发布到适当的 dynamoDb 表?现在我只是手动更改令牌,在 API Gateway 中,我手动切换 API 网关验证哪个认知池以及它们发布到哪些表,这不是很实用。

【问题讨论】:

  • 如果您使用 API Gateway 公开您的 lambda,那么只需将其部署到两个阶段 - 一个调用 prod lambda 访问 prod Dynamodb 的 prod 阶段和一个调用 dev lambda 的 dev 阶段。在您的应用程序中,您只需要更改舞台名称即可,您可以通过 Info.plist 进行设置
  • 关于如何自动获取 prod 或 dev 的令牌,这取决于您如何获取这些令牌。例如,您可以在 API Gateway 中创建一个 /login 资源,该资源将用户名 + 密码作为参数并返回令牌。同样,将其部署到在后端调用中使用不同 Cognito 池的两个阶段。现在,您也可以在应用程序中使用相同的变量/属性来获取用于获取令牌的阶段名称。因此,只需更改一个属性值,您就可以在应用中的 prod 和 dev 之间切换
  • 太棒了!谢谢!将此作为答案发布,以便我接受:)
  • 很高兴它成功了!

标签: xcode amazon-web-services amazon-dynamodb aws-api-gateway amazon-cognito


【解决方案1】:

如果您使用 API Gateway 公开您的 lambda,那么只需将其部署到两个阶段 - 一个调用 prod lambda 访问 prod Dynamodb 的 prod 阶段和一个调用 dev lambda 的 dev 阶段。在您的应用程序中,您只需要更改舞台名称即可,您可以通过 Info.plist 进行设置。

关于如何自动获取 prod 或 dev 的令牌,这取决于您如何获取这些令牌。例如,您可以在 API Gateway 中创建一个 /login 资源,该资源将用户名 + 密码作为参数并返回令牌。同样,将其部署到在后端调用中使用不同 Cognito 池的两个阶段。现在,您也可以在应用程序中使用相同的变量/属性来获取用于获取令牌的阶段名称。

因此,只需更改一个属性的值,您就可以在应用中的 prod 和 dev 之间切换。

【讨论】:

  • 我将如何让舞台决定选择哪个 plist 字段?假设我有“prod_pool_id”和“dev_pool_id”,该函数只是读取 plist,然后选择两者之一?
  • 如果你抽象出 Api Gateway 后面的所有内容,那么你的应用中就不需要提及 prod 或 dev pool id
  • 即使不使用api网关,也可以使用基于stage值的if else条件将pool id设置为Devpoolid或prodpoolid
  • 如果您只想要一个特定于 xcode 的解决方案,您可以查看用户定义的构建设置。见stackoverflow.com/questions/8971488/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多