#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 🙂