小编kna*_*aak的帖子

如何使用Terraform和AWS API Gateway创建API代理

我正在尝试使用Terraform能够在AWS上的API网关中建立一个简单的API代理.基本上,我想包装root并将请求代理回另一个端点.它可能是最简单的设置,我似乎无法让它在Terraform中工作.

您将在下面找到该脚本.此时,我能够创建REST API,定义资源,创建方法,但似乎没有任何方法可以定义它的终点.

provider "aws" {
    region = "us-east-1"
}
resource "aws_api_gateway_rest_api" "TerraTest" {
  name = "TerraTest"
  description = "This is my API for demonstration purposes"
}

resource "aws_api_gateway_resource" "TerraProxyResource" {
  rest_api_id = "${aws_api_gateway_rest_api.TerraTest.id}"
  parent_id = "${aws_api_gateway_rest_api.TerraTest.root_resource_id}"
  path_part = "{proxy+}"
}

resource "aws_api_gateway_integration" "integration" {
    rest_api_id = "${aws_api_gateway_rest_api.TerraTest.id}"
    resource_id = "${aws_api_gateway_resource.TerraProxyResource.id}"
    http_method = "${aws_api_gateway_method.mymethod.http_method}"

    type = "HTTP_PROXY"
    uri = "http://api.endpoint.com/{proxy+}"
}
Run Code Online (Sandbox Code Playgroud)

这里我将类型设置为proxy,但我认为URI不是设置端点的正确属性.

resource "aws_api_gateway_method" "mymethod" {
  rest_api_id = "${aws_api_gateway_rest_api.TerraTest.id}"
  resource_id = "${aws_api_gateway_resource.TerraProxyResource.id}"
  http_method = "ANY"
  authorization = "NONE"
}
Run Code Online (Sandbox Code Playgroud)

我希望这里的某个地方能够创建到其他端点的映射,但似乎没有任何属性.( …

amazon-web-services terraform aws-api-gateway

9
推荐指数
1
解决办法
3886
查看次数

使用prepareForSegue的UITableView didSelectRowAtIndexPath但未调用didLoadView

我正在学习iOS,我使用iOS 5编写了一个简单的iPhone应用程序.该应用程序显示了一个填充了Speakers名称的UITableView,当我选择其中一个名称时,它应该转到UIViewController并显示有关该人的详细信息(名称,地址等),所以它真的有两个ViewControllers,一个UITableViewController和UIViewController(都是子类).

所以,在MICSpeakersTableViewController:UITableViewController我有这个:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MICSpeakerDetailViewController *detailViewController = [[MICSpeakerDetailViewController alloc] initWithNibName:@"Detail" bundle:nil];    

    [detailViewController setSpeaker:[[self getSpeakers] objectAtIndex:indexPath.row]];
    [self.navigationController pushViewController:detailViewController animated:YES];    
}
Run Code Online (Sandbox Code Playgroud)

当我选择它并填充扬声器时会调用它(因为它不是nil和描述匹配).

然后我在同一个实现中有这个:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSIndexPath *indexPath = [ self.tableView indexPathForCell:sender];

    if ([segue.identifier isEqualToString:@"Detail"])
        [segue.destinationViewController setSpeaker:[[self getSpeakers] objectAtIndex:indexPath.row]];
}
Run Code Online (Sandbox Code Playgroud)

哪个也被调用,segue.identifier是Detail,而destinationViewController的扬声器设置正确(不是nil,描述匹配).我不太清楚为什么我必须再次设置它,因为我在didSelectRowAtIndexPath中设置它但我再次设置它似乎无害.

最后,在MICSpeakerDetailViewController中,调用initWithNibName方法,self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 返回一个实例.

但是,segue永远不会发生,并且从不调用viewDidLoad.

它可能很小但我无法弄清楚......有什么建议吗?

编辑:这是故事板的屏幕截图,显示了segue和控制器:

在此输入图像描述

iphone objective-c ios5

4
推荐指数
1
解决办法
9036
查看次数