Tôi đang làm việc trên một chức năng phần mềm mà tôi phải xóa các tập tin định kỳ bằng cách sử dụng Django + cron + AWS. Vấn đề là tôi không thể làm cho nó hoạt động được. Cách tốt nhất để làm cho nó hoạt động là gì? Tôi có thiếu một số cấu hình AWS? Tôi đã định cấu hình một máy chủ web và một công nhân môi trường, đã triển khai cùng một phiên bản ứng dụng trên chúng. Nhiệm vụ là chế độ xem được ánh xạ thành một địa chỉ url (truy cập url mà hàm được thực hiện). Có một thông báo xác nhận về môi trường công nhân:AWS Elastic BeansTalk Django cronjob yêu cầu bài trả lại lỗi 403
Đã nạp thành công 1 tác vụ theo lịch từ cron.yaml.
Nhưng cũng là một lỗi 403 trên người lao động access_log:
"POST/networks_app/delete_expired_files HTTP/1.1" 403 2629 "-" "AWS-sqsd/2.0"
cron.yaml:
version: 1
cron:
- name: "delete_expired_files"
url: "/networks_app/delete_expired_files"
schedule: "10 * * * *"
lập bản đồ url tại urls.py:
urlpatterns = [
url(r'^delete_expired_files', views.delete_expired_files, name='delete_expired_files'),
]
chức năng để xóa các tập tin tại views.py:
def delete_expired_files(request):
users = DemoUser.objects.all()
for user in users:
documents = Document.objects.filter(owner=user.id)
if documents:
for doc in documents:
now = timezone.now()
if now >= doc.date_published + timedelta(days=doc.owner.group.valid_time):
doc.delete()
IAM vai trò của tôi là:
AmazonSQSFullAccess
.210AmazonS3FullAccess
AWSElasticBeanstalkFullAccess
AmazonDynamoDBFullAccess
Nếu tôi truy cập vào url thông qua trình duyệt, nhiệm vụ được thực hiện (các tập tin đã hết hạn được xóa). Tuy nhiên, môi trường công nhân được cho là truy cập vào url và thực hiện nhiệm vụ tự động và không chỉ khi tôi truy cập url thông qua trình duyệt. Làm thế nào tôi có thể làm cho nó hoạt động?