str_replace

str_replace 関数では、文字列の置換ができます。

str_replace:
  template: <template string>
  params: <parameter mappings>
Element Required Description
template Yes 置換元の文字列を指定します。
params Yes 置換する文字列のマッピングを指定します。 get_attr などの別の関数を使用できます。

str_replace 関数の指定例1

resources:
  my_instance:
    type: OS::Nova::Server

outputs:
  Login_URL:
    description: The URL to log into the deployed application
    value:
      str_replace:
        template: http://host/MyApplication
        params:
          host: { get_attr: [ my_instance, first_address ] }

上記の例では、get_attr: [ my_instance, first_address ] で返却される値が"10.0.0.1"である場合、出力パラメータ'Login_URL'の値は"http://10.0.0.1/MyApplication"になります。

str_replace 関数の指定例2

parameters:
  DBRootPassword:
    type: string
    label: Database Password
    description: Root password for MySQL
    hidden: true

resources:
  my_instance:
    type: OS::Nova::Server
    properties:
      # general properties ...
      user_data:
        str_replace:
          template: |
            #!/bin/bash
            echo "Hello world"
            echo "Setting MySQL root password"
            mysqladmin -u root password $db_rootpassword
            # do more things ...
          params:
            $db_rootpassword: { get_param: DBRootPassword }

上記の例では、Computeリソースに入力するuser_dataに関して、str_replace 関数を使って"$db_rootpassword"という文字列をテンプレートの入力パラメータ'DBRootPassword'の値で置換しています。