Вызов API PutLifecycleConfiguration S3 из документа автоматизации SSM (.yml) - PullRequest
0 голосов
/ 14 марта 2019

Попытка создать документ автоматизации 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 для выполнения этой операции.

...