Документ об автоматизации 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