aws serverless multiple yaml java без сервера

#amazon-web-services #aws-serverless

#amazon-веб-сервисы #aws-бессерверный

Вопрос:

Я получил образец бессерверного приложения AWS, в котором у меня есть отдельные файлы yaml вместе с несколькими обработчиками.

Проблема в этом шаблоне.yaml продолжает расти, как можно разделить yaml для каждого обработчика или группы обработчиков, чтобы им было легко управлять.

Ответ №1:

Для наших проектов мы начали разделять основной YAML на несколько на следующим образом:

  • все лямбды по-прежнему описаны в файле serverless.yml

  • в бессерверном.yml

     resources:
     - ${file(./sls-config/cognito-user-pools-authorizer.yml)}
     - ${file(./sls-config/aurora.yml)}
     - ${file(./sls-config/bucket.yml)}
     - ${file(./sls-config/queues.yml)}
     - ${file(./sls-config/alarms.yml)}
     - ${file(./sls-config/roles.yml)}
     - ${file(./sls-config/outputs.yml)}
      

Да, разделение ресурсов зависит от вас.

  • alarm.yml

     Resources:
       SQSAlarmTopic:
           Type: AWS::SNS::Topic
           Properties:
                 DisplayName: ${self:provider.prefix}-sqs-alarm-topic
                 TopicName: ${self:provider.prefix}-sqs-alarm-topic
                 Subscription:
                   - Endpoint: example-email@mail.com
                     Protocol: email
                 Tags: ${self:custom.sqsTags}
      

    и так далее.

  • outputs.yml

     Outputs:
        CognitoUserPoolId:
            Value: ${self:custom.userPool}
        CognitoUserPoolClientId:
            Value: ${self:custom.userPoolClientId}
        DSClusterID:
            Description: "RDS Cluster "
            Value: { Ref: RDSCluster }
        DBAddress:
            Value: !GetAtt RDSCluster.Endpoint.Address
      

Переменные из пользовательских и предоставляемых могут быть легко использованы через sub_configs.yml.

Будьте осторожны с интервалами / дополнениями в файлах yaml 🙂