2016-09-16 65 views
0

我有一个与特定使用计划关联的API密钥。如何使用boto3将使用计划更新为其他使用计划?使用boto3更新AWS Lambda API密钥使用计划

我尝试以下方法:

update_api_key() //添加,删除和替换操作没有使用计划路径 update_usage_plan() //添加,删除和替换操作没有使用计划路径

我想过从计划中删除密钥,然后重新添加,但没有使用计划路径。

+0

该文档说:'每个操作只能有一条路径与它相关联' – helloV

+0

我只使用一条路径。我的观点是没有任何路径与使用计划相关。 –

回答

0

您正在寻找create_usage_plan_key

response = client.create_usage_plan_key(
    usagePlanId='12345', 
    keyId='[API_KEY_ID]', 
    keyType='API_KEY' 
) 
+0

'botocore.exceptions.ClientError:调用CreateUsagePlanKey操作时发生错误(ConflictException):无法添加使用计划XYZ,因为API Key无法使用相同API阶段引用多个使用计划:ABC:beta' –

+0

此调用不会更新它增加了。 –

+0

此调用不添加新的API密钥,它添加了API密钥和使用计划之间的新关联。您发布的错误消息是无关的。您还可以使用remove_usage_plan_key删除API密钥和使用计划之间的关联。 –

1

我不知道这是任何帮助,但我遇到了类似的问题,我没有找到this post其中的伎俩对我来说!

所以在我的情况,我想一个新的REST API舞台添加到现有的使用计划,所以我用了python脚本是:

import boto3 

apigateway = boto3.client('apigateway') 
response = apigateway.update_usage_plan(
        usagePlanId='YOUR_USAGE_PLAN_ID_HERE', 
        patchOperations=[ 
         { 
          'op': 'add', 
          'path': '/apiStages', 
          'value': 'YOUR_REST_API_ID_HERE:v0' 
         } 
        ] 
      ) 

print(response) 

我希望这有助于:)

Luismy