我们有一个 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 来说很简单!
先感谢您!