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

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

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
Другие вопросы по тегам