1

我们有一个 AWS Amplify 项目,我正在将 API 从 Transformer 1 迁移到 2。

stacks/作为其中的一部分,我们有许多自定义解析器,这些解析器以前在由 Amplify CLI 生成的文件夹中拥有自己的堆栈 JSON 模板。

根据迁移说明,我创建了新的自定义资源,使用amplify add custom它可以创建 CDK(云开发工具包)资源或 CloudFormation 模板。我现在只想要一个提升 n 班次,所以我使用了模板选项并将内容从堆栈 JSON 移动到新的自定义解析器 JSON 模板。

这似乎应该可以工作,但是自定义模板不再可以访问从父堆栈共享的参数:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Metadata": {},
  "Parameters": {
    "AppSyncApiId": {
      "Type": "String",
      "Description": "The id of the AppSync API associated with this project."
    },
    "S3DeploymentBucket": {
      "Type": "String",
      "Description": "The S3 bucket containing all deployment assets for the project."
    },
    "S3DeploymentRootKey": {
      "Type": "String",
      "Description": "An S3 key relative to the S3DeploymentBucket that points to the root of the deployment directory."
    }
  },
  ...
}

所以这些是以前使用的标准参数,我现在的挑战是访问部署存储桶和根密钥,因为这些值是在部署时生成的。

当我尝试定位请求和响应映射模板 S3 位置时,确切的用例是 AppSync 功能配置:

"RequestMappingTemplateS3Location": {
  "Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/MyCustomResolver.req.vtl",
    {
      "S3DeploymentBucket": {
        "Ref": "S3DeploymentBucket"
      },
      "S3DeploymentRootKey": {
        "Ref": "S3DeploymentRootKey"
      }
    }
  ]
 },

我收到的错误消息是 AWS::CloudFormation::Stack Tue Feb 15 2022 18:20:42 GMT+0000 (Greenwich Mean Time) Parameters: [S3DeploymentBucket, AppSyncApiId, S3DeploymentRootKey] must have values

我觉得我错过了将输出值与 JSON 中的参数联系起来的步骤,但我找不到任何文档来建议如何使用更新的 Amplify CLI 选项来执行此操作。

如果您需要任何进一步的信息,请告诉我,这对您 Amplify/CloudFormation ninjas 来说很简单!

先感谢您!

4

0 回答 0