Документ об автоматизации SSM AWS Cloudformation | использовать с пакетом облачной информации aws

в AWS Cloudformation я мог использовать команду cloudformation package через интерфейс командной строки. Это работает, например, с лямбдами:

lambda:
    Type: AWS::Lambda::Function
    Properties:
      Handler: helloWorld.lambda_handler
      Role: !GetAtt lambda.Arn
      Code: lambda/helloWorld.py

Теперь я хотел бы сделать то же самое, что и Code: lambda/helloWorld.py в документах автоматизации Systems Manager.

Например, вместо строки Restart-Computer -Force под commands: я хотел бы использовать внешние скрипты, подобные приведенным ниже (commands: scripts/restart.ps1):

#---Original

[...]
- name: restartEC2Instance
action: aws:runCommand
maxAttempts: 3
timeoutSeconds: 600
inputs:
  DocumentName: AWS-RunPowerShellScript
  InstanceIds:
    - "{{ InstanceId }}"
  Parameters:
    commands: |
      Restart-Computer -Force
    executionTimeout: "600"
[...]

#---Desired

[...]
- name: restartEC2Instance
action: aws:runCommand
maxAttempts: 3
timeoutSeconds: 600
inputs:
  DocumentName: AWS-RunPowerShellScript
  InstanceIds:
    - "{{ InstanceId }}"
  Parameters:
    commands: scripts/restart.ps1
    executionTimeout: "600"
[...]

Знаете ли вы возможность это реализовать? Заранее спасибо!




Ответы (1)


Существует командный документ под названием AWS-RunRemoteScript :

Вы можете запускать документы SSM из удаленных мест с помощью предварительно определенного документа SSM AWS-RunDocument. В настоящее время этот документ поддерживает следующие удаленные расположения: репозитории GitHub (общедоступные и частные), Amazon S3, документы, сохраненные в Systems Manager.

Однако, если вы хотите, чтобы CLI автоматически загружал ваш локальный файл в S3, как это делается для лямбда-выражения, то эта функция, к сожалению, не поддерживается для документов SSM. Автоматическая загрузка локальных артефактов поддерживается только для следующих Типы ресурсов CFN:

BodyS3Location property for the AWS::ApiGateway::RestApi resource
Code property for the AWS::Lambda::Function resource
CodeUri property for the AWS::Serverless::Function resource
DefinitionS3Location property for the AWS::AppSync::GraphQLSchema resource
RequestMappingTemplateS3Location property for the AWS::AppSync::Resolver resource
ResponseMappingTemplateS3Location property for the AWS::AppSync::Resolver resource
DefinitionUri property for the AWS::Serverless::Api resource
Location parameter for the AWS::Include transform
SourceBundle property for the AWS::ElasticBeanstalk::ApplicationVersion resource
TemplateURL property for the AWS::CloudFormation::Stack resource
Command.ScriptLocation property for the AWS::Glue::Job resource
DefinitionS3Location property for the AWS::StepFunctions::StateMachine resource
person Marcin    schedule 06.07.2020