Попытка создать документ автоматизации SSM, который обновит конфигурацию жизненного цикла корзины S3. Основываясь на моем подходе на примере AWS для обновления свойства управления версиями S3: https://ap -southeast-2.console.aws.amazon.com / systems-manager / documents / AWS-ConfigureS3BucketVersioning / content ?
Однако, когда я пытаюсь вызвать s3: PutLifecycleConfiguration API, он не найден. Какое имя API я должен использовать?
Вот это .yml
---
description: Configures the S3 Bucket Lifecycle Policy
schemaVersion: "0.3"
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
BucketName:
type: String
description: (Required) The name of the S3 Bucket to have its lifecycle policy set
DaysAfterInitiationParam:
type: Integer
description: >
(Optional) Applied to the lifecycle configuration, how many days before the incomplete files are deleted
default: 7
AutomationAssumeRole:
type: String
description: (Optional) The ARN of the role that allows Automation to perform the actions on your behalf.
default: ""
VersioningState:
type: String
description: >
(Optional)
default: Enabled
allowedValues:
- Enabled
- Suspended
mainSteps:
-
name: SetBucketLifecycleMultiPartUpload
action: aws:executeAwsApi
maxAttempts: 1
inputs:
Service: s3
Api: PutLifecycleConfiguration
Bucket: "{{ BucketName }}"
LifecycleConfiguration:
Rules:
- ID: automation-rule-s3-lifecycle-multi-part-upload-delete
Status: "{{ VersioningState }}"
Prefix: ""
AbortIncompleteMultipartUpload:
DaysAfterInitiation: "{{ DaysAfterInitiationParam }}"
isEnd: true
...
Я получаю эту ошибку:
Step fails when it is Execute/Cancelling action. Invalid API name: PutLifecycleConfiguration. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.
Я пытаюсь использовать вызовы API S3 здесь: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html
Я знаю, что это возможно, потому что в прошлом я успешно использовал boto3 для выполнения этой операции.