Передача параметров в CodePipeline - PullRequest
1 голос
/ 27 января 2020

Я создал кодовую линию для своего стека, и во время фиксации в указанной ветви c должен быть запущен стек обновлений, все работает нормально, но проблема в параметрах, особенно в секретных параметрах. Вот мой вопрос: 1. Как я могу опустить "некрасивую" строку JSON в ParameterOverrides, сейчас проблем нет, но если я переопределю более 30 параметров, это будет длинная строка, могу ли я включить JSON файл с параметрами? Если да, как я могу это сделать?

 "ResRootStackCodePipeline": {
  "Type": "AWS::CodePipeline::Pipeline",
  "DependsOn": [
    "ResRootStackServerI"
  ],
  "Properties": {
    "Name": "AutoProjectCodePipeline",
    "RestartExecutionOnUpdate": "true",
    "RoleArn": {
      "Fn::Join": [
        "",
        [
          "arn:aws:iam::",
          {
            "Ref": "AWS::AccountId"
          },
          ":role/service-role/AWSCodePipelineServiceRole"
        ]
      ]
    },
    "ArtifactStore": {
      "Type": "S3",
      "Location": "bucket-codepipeline-test"
    },
    "Stages": [
      {
        "Name": "APSource",
        "Actions": [
          {
            "Name": "APSourceProcess",
            "ActionTypeId": {
              "Category": "Source",
              "Owner": "ThirdParty",
              "Provider": "GitHub",
              "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
              "Branch": "instances-test",
              "OAuthToken": "xxx",
              "Owner": "muume",
              "PollForSourceChanges": "true",
              "Repo": "autoproject-aws-infra"
            },
            "OutputArtifacts": [
              {
                "Name": "APGithubArtifact"
              }
            ]
          }
        ]
      },
      {
        "Name": "APDeploy",
        "Actions": [
          {
            "Name": "APUpdateProcess",
            "ActionTypeId": {
              "Category": "Deploy",
              "Owner": "AWS",
              "Provider": "CloudFormation",
              "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
              "ActionMode": "CREATE_UPDATE",
              "RoleArn": {
                "Fn::Join": [
                  "",
                  [
                    "arn:aws:iam::",
                    {
                      "Ref": "AWS::AccountId"
                    },
                    ":role/CloudFormationRole"
                  ]
                ]
              },
              "StackName": {
                "Ref": "AWS::StackName"
              },
              "ParameterOverrides": { "Fn::Join": [ "", [
                "{\"ParaNamePrefix\": \"tescik\",\"ParaTemplateURI\": \"https://localhost.xx/\",\"ParaServerInstanceTypeFront\": \"t2.medium\"}"
                ]]},
              "TemplatePath": "APGithubArtifact::instances-test/Stack_Root_I.json",
              "TemplateConfiguration": "APGithubArtifact::instances-test/simple_configuration.json"

            },
            "OutputArtifacts": [],
            "InputArtifacts": [
              {
                "Name": "APGithubArtifact"
              }
            ]
          }
        ]
      }
    ]
  }
}

Может быть, вы видите другое решение для решения этой проблемы?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Используйте YAML. Это намного лучше, чем JSON для CloudFormation. Вот пример того, как могут выглядеть переопределения параметров:

ParameterOverrides: |-
          {
            "SomeParameterOverride": "xxx",
            "SomeOtherParameterOverride":"yyy"
          }

Вы можете легко преобразовать свой существующий JSON в YAML, используя конструктор Cloudformation или такой сайт: https://www.json2yaml.com/

К вашему сведению: YAML также позволяет комментировать и легко ссылаться на другие ресурсы и параметры в шаблоне.

0 голосов
/ 27 января 2020

В соответствии с документацией :

Мы рекомендуем использовать файл конфигурации шаблона для указания большинства значений параметров. Используйте переопределения параметров, чтобы указывать только значения параметров Dynami c. Параметры Dynami c неизвестны до тех пор, пока вы не запустите конвейер.

Имейте в виду, что существует также ограничение в 1 КБ на размер переопределений параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...