Проблема с переносом пользовательского домена на другую конечную точку API с помощью AWS cli

#amazon-web-services #aws-api-gateway #aws-cli

#amazon-веб-сервисы #aws-api-gateway #aws-cli

Вопрос:

Я следую инструкциям AWS по переносу пограничного пользовательского домена в региональный: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-migrate.html#update-edge-optimized-domain-name-to-regional-cli

 aws apigateway update-domain-name 
    --domain-name 'api.example.com' 
    --patch-operations  [  
        { op:'add', path: '/endpointConfiguration/types',value: 'REGIONAL' }, 
        { op:'add', path: '/regionalCertificateArn', value: 'arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149' } 
      ]
 

Но я получаю следующую ошибку:

 Error parsing parameter '--patch-operations': Invalid JSON:
[
 

Я буду признателен за помощь. Спасибо

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

1. Очень странный синтаксис. Можете ли вы попробовать с обычным: --patch-operations op='add',path='/endpointConfiguration/types',value='REGIONAL' op='add',path='/regionalCertificateArn',value='arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149' ?

2. @Marcin Спасибо! Похоже, это сработало. Теперь я застрял со следующим, который заключается в удалении пограничного пользовательского домена. Путь отличается от другого (в нем нет /), значений нет. Не могли бы вы взглянуть, пожалуйста aws apigateway update-domain-name --domain-name api.example.com --patch-operations [ {op:'remove', path:'/endpointConfiguration/types', value:'EDGE'}, {op:'remove', path:'certificateName'}, {op:'remove', path:'certificateArn'} ]

3. Рад, что это сработало. Если вы не возражаете, я дам ответ на первый вопрос.

4. Что касается второй проблемы, вы также используете этот «странный» синтаксис. Вы пробовали конвертировать в стандартный?

5. Вы могли бы задать новый вопрос, специфичный для этой новой проблемы. Сложно определить, что может происходить, основываясь только на комментариях.

Ответ №1:

На основе комментариев.

Проблема была решена с помощью сокращенного синтаксиса для update-domain-name :

 aws apigateway update-domain-name 
    --domain-name 'api.example.com' 
    --patch-operations op='add',path='/endpointConfiguration/types',value='REGIONAL' op='add',path='/regionalCertificateArn',value='arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149'