AWS CloudFormation Fn :: Join-转义单引号

时间:2018-11-29 15:12:58

标签: amazon-web-services escaping amazon-cloudformation serverless-framework

我想转义单引号,使其成为字符串的一部分。从这样的东西:

!Join [ '', [ 'xyz', '.execute-api.eu-central-1.amazonaws.com', ''', ',', ' '' 'something' ] ]

我想得到这个:

xyz.execute-api.eu-central-1.amazonaws.com', 'something

我将其用于无服务器框架作为环境变量,该变量将其视为应变,以便在其周围加上两个单引号。

1 个答案:

答案 0 :(得分:1)

我对您的Join语句有点困惑,但是您可以通过将单引号括在双引号中来包含单引号(无需转义)。您还需要用逗号将双引号引起来。从无服务器文档中:

  

将Cache-Control标头传递为“'max-age = 120'”表示API网关将接收值为“ max-age = 120'(用单引号引起来)。

     

在.yml中,必须引用包含:,{,},[,] 、、、&,*,#,?,|,-,<,>,=,!,%,@,`的字符串。

因此,要产生xyz.execute-api.eu-central-1.amazonaws.com', 'something,可以使用以下Join语句:

!Join [ 
  "", [
    "xyz", 
    ".execute-api.eu-central-1.amazonaws.com",
    "', '",
    "something" 
  ] 
]

免责声明:我不确定您希望输出字符串是什么,但这演示了一般概念。


对于那些不使用JSON编写代码的人,可以在serverless.yml文件中使用固有的Fn::Join函数以获得更全面的结构:

sameWeirdEndpoint:
  Fn::Join:
    - ""
    - - "xyz"
      - ".execute-api.eu-central-1.amazonaws.com"
      - "', '"
      - "something"    

希望这会有所帮助!

参考:https://serverless.com/framework/docs/providers/aws/events/apigateway/#custom-request-templates