为什么固有的cloudformation函数!当我将其放入无服务器api模板的definitionbody中的Join函数中时,ImportValue不能解析为字符串吗?
此cloudformation模板:
public function switchLang(Request $request, $lang)
{
session(['applocale' => $lang]);
app()->setLocale($lang);
}
会产生以下错误:
public function index()
{
\Debugbar::info("Index getLocale is: " . app()->getLocale());
\Debugbar::info("Index Session locale is: " . session('applocale'));
}
但是,如果我将最后一行替换为:
UserAPI:
Type: 'AWS::Serverless::Api'
Properties:
StageName: !ImportValue StageName
DefinitionBody:
'Fn::Transform':
Name: 'AWS::Include'
Parameters:
Location: !Join [ "", [ "s3://", !ImportValue S3APIBucket, "/api_user.yaml" ] ]
并将S3APIBucket作为参数可以正常工作。否则,请勿使用!Join并仅对s3存储桶名称进行硬编码,这也可以正常工作。