# ------------------------------------
#   If you need English case, you can refer to [s_en.yaml] file
# ------------------------------------
#   欢迎您使用阿里云函数计算 FC 组件进行项目开发
#   组件仓库地址：https://github.com/devsapp/fc
#   组件帮助文档：https://www.serverless-devs.com/fc/readme
#   Yaml参考文档：https://www.serverless-devs.com/fc/yaml/readme
#   关于：
#      - Serverless Devs和FC组件的关系、如何声明/部署多个函数、超过50M的代码包如何部署
#      - 关于.fcignore使用方法、工具中.s目录是做什么、函数进行build操作之后如何处理build的产物
#   等问题，可以参考文档：https://www.serverless-devs.com/fc/tips
#   关于如何做CICD等问题，可以参考：https://www.serverless-devs.com/serverless-devs/cicd
#   关于如何进行环境划分等问题，可以参考：https://www.serverless-devs.com/serverless-devs/extend
#   更多函数计算案例，可参考：https://github.com/devsapp/awesome/
#   有问题快来钉钉群问一下吧：33947367
# ------------------------------------
edition: 1.0.0
name: rds-mysql-app
# access 是当前应用所需要的密钥信息配置：
# 密钥配置可以参考：https://www.serverless-devs.com/serverless-devs/command/config
# 密钥使用顺序可以参考：https://www.serverless-devs.com/serverless-devs/tool#密钥使用顺序与规范
access: "{{ access }}"

vars: # 全局变量
  region: "{{ region }}"
  service:
    name: "{{ serviceName }}"
    description: 'rds mysql http service by serverless devs'

services:
  osstrigger: # 业务名称/模块名称
    component:  fc # 组件名称，Serverless Devs 工具本身类似于一种游戏机，不具备具体的业务能力，组件类似于游戏卡，用户通过向游戏机中插入不同的游戏卡实现不同的功能，即通过使用不同的组件实现不同的具体业务能力
    actions:
     pre-deploy:
       - run: mvn package
         path: ./code
    props:
      region: ${vars.region}              # 关于变量的使用方法，可以参考：https://www.serverless-devs.com/serverless-devs/yaml#变量赋值
      service: ${vars.service}
      function:
        name: "{{ functionName }}"
        description: 'mysql http function by serverless devs'
        runtime: java11
        codeUri: ./code/target/HelloFCJava-1.0-SNAPSHOT.jar
        handler: example.App::handleRequest
        memorySize: 128
        timeout: 60
        initializationTimeout: 60
        initializer: example.App::initialize
        instanceLifecycleConfig:
          preStop:
            handler: example.App::preStop
            timeout: 60
        environmentVariables:
          MYSQL_USER: "{{ mysqlUser }}"                           
          MYSQL_PASSWORD: "{{ mysqlPassword }}"
          MYSQL_ENDPOINT: "{{ mysqlUrl }}" 
          MYSQL_PORT: "{{ mysqlPort }}"  
          MYSQL_DBNAME: "{{ mysqlDatabase }}"
      triggers:  
        - name: httpTrigger    
          type: http    
          # qualifier: LATEST    
          config:      
            authType: anonymous      
            methods:        
              - POST