Добавить временную метку в папку корзины S3 в файле builspec.yaml

#amazon-web-services #yaml #aws-codepipeline

#amazon-web-services #yaml #aws-codepipeline

Вопрос:

Я новичок в файле YAML. Я хочу каждый раз добавлять временную метку в папку корзины S3, чтобы каждая сборка была уникальной. В post_build я добавляю временную метку в корзину S3 следующим образом. При запуске codepipeline все файлы сохраняются во внутренней папке корзины S3, но папка с временной меткой не генерируется. s3://${S3_BUCKET}/Inhouse/${‘date’}

 Version: 0.2
env:
    variables:
        S3_BUCKET: Inhouse-market-dev
phases:
    install:
        runtime-versions:
            nodejs: 10
        commands:
            - npm install
            - npm install -g @angular/cli
    build:
        commands:
            - echo Build started on `date`
    post_build:
         commands:
            - aws s3 cp . s3://${S3_BUCKET}/Inhouse/${'date'} --recursive --acl public-read --cache-control "max-age=${CACHE_CONTROL}"
            - echo Build completed on `date`
  

Ответ №1:

Я думаю, что вы используете ${'date'} неправильно. Я бы рекомендовал попробовать следующее, чтобы действительно получить временную метку unix:

     post_build:
         commands:
            - current_timestamp=$(date  "%s")
            - aws s3 cp . s3://${S3_BUCKET}/Inhouse/${current_timestamp} --recursive --acl public-read --cache-control "max-age=${CACHE_CONTROL}"
            - echo Build completed on `date` which is ${current_timestamp}
  

Комментарии:

1. Привет, Марчин. Это сработало. Я получил ошибку, спасибо за вашу помощь.

2. @RaghuRam Рад это слышать. Если это так, мы будем признательны за принятие ответа. Спасибо.