2017-05-17 104 views
0

当用户创建新应用程序时,我还需要从AWS生成API密钥。我需要使用特定的使用计划(静态)来分配给每个新客户端。我收到错误params [:usage_plan_id]导致救援的意外值。任何想法,我在这里失踪?使用计划创建AWS API网关客户端API密钥

def create 
    @app = App.create(app_params) 

    begin 

    # ... 

    aws_client = Aws::APIGateway::Client.new(
     region: "xxxxxxxxxxx", 
     access_key_id: AWS_ACCESS_KEY, 
     secret_access_key: AWS_ACCESS_SECRET 
    ).create_api_key({ 
     name: @app.name, 
     enabled: true, 
     generate_distinct_id: true, 
     usage_plan_id: "xxxxxx" 
    }) 

    logger.debug aws_client.inspect 

    rescue => e 
    logger.error e.message 
    # ... 
    end 

    respond_with(@app) 
end 

回答

0

这里是需要采取什么措施:

  1. 建立新的客户端连接到AWS API网关。
  2. 为客户端创建API密钥。
  3. 将api_key客户端添加到使用计划。

    API_GATEWAY = Aws::APIGateway::Client.new(
        region: "xxxxx", 
        access_key_id: "xxxxxxxxxxxxxxxx", 
        secret_access_key: "xxxxxxxxxxxxxx" 
    ) 
    

    在控制器:

    aws_api_key = API_GATEWAY.create_api_key({ 
        name: @app.name, 
        enabled: true, 
        generate_distinct_id: true, 
        stage_keys: [{ 
        rest_api_id: "xxxxxxx", 
        stage_name: "xxxxxxxx" 
        }] 
    }) 
    
    resp = API_GATEWAY.create_usage_plan_key({ 
        usage_plan_id: "xxxxxx", 
        key_id: aws_api_key.id, 
        key_type: "API_KEY" 
    }) 
    
在AWS配置文件

相关问题