microscopic-florist-22719
new aws.s3.Bucket('prod-us-west-1', {}, { id: 'sdp-tsm-prod-uw1-artifacts', provider: uw1Provider })
early-musician-41645
11/30/2018, 1:12 AMmicroscopic-florist-22719
get
is doing under the covers. The id
property in the resource options causes a read rather than a createearly-musician-41645
11/30/2018, 4:51 AMDiagnostics:
aws:s3:BucketNotification (sdp-tsm-s3-artifact-indexer-onNewObject):
error: Plan apply failed: Error putting S3 notification configuration: BucketRegionError: incorrect region, the bucket is not in 'us-west-2' region
status code: 301, request id: , host id:
Is the provider not feeding through down to all other resources?Updating (s3-object-indexer-dev):
Type Name Status Info
+ pulumi:pulumi:Stack s3-object-indexer-s3-object-indexer-dev created
+ ├─ pulumi:providers:aws us-west-1-aws-provider created
>- ├─ aws:s3:Bucket prod-us-west-1 read
+ │ └─ aws:s3:BucketNotification sdp-tsm-s3-artifact-indexer-onNewObject **creating failed** 1 error
+ └─ aws:s3:BucketEventSubscription sdp-tsm-s3-artifact-indexer-onNewObject created
+ ├─ aws:iam:Role sdp-tsm-s3-artifact-indexer-onNewObject created
+ ├─ aws:iam:RolePolicyAttachment sdp-tsm-s3-artifact-indexer-onNewObject-32be53a2 created
+ ├─ aws:lambda:Function sdp-tsm-s3-artifact-indexer-onNewObject created
+ └─ aws:lambda:Permission sdp-tsm-s3-artifact-indexer-onNewObject created
microscopic-florist-22719
early-musician-41645
11/30/2018, 5:00 AM// Trigger a Lamda function when something is added
bucket.onObjectCreated("sdp-tsm-s3-artifact-indexer-onNewObject", onObjectCreatedLambda);
microscopic-florist-22719
lemon-spoon-91807
11/30/2018, 5:53 PMmicroscopic-florist-22719
lemon-spoon-91807
11/30/2018, 6:23 PMearly-musician-41645
11/30/2018, 6:36 PMbucket.onObjectCreated("sdp-tsm-s3-artifact-indexer-onNewObject", onObjectCreatedLambda, {}, { provider: uw1Provider });
And got this:
error: TSError: ⨯ Unable to compile TypeScript:
index.ts(29,96): error TS2345: Argument of type '{ provider: Provider; }' is not assignable to parameter of type 'ResourceOptions'.
Object literal may only specify known properties, and 'provider' does not exist in type 'ResourceOptions'.
ResourceOptions
different per method?lemon-spoon-91807
11/30/2018, 6:59 PMmicroscopic-florist-22719
lemon-spoon-91807
11/30/2018, 7:05 PM.onObjectCreate(..., <pulumi.ComponentResourceArgs>{ provider: Provider })
const usw1Args: pulumi.ComponentResourceOptions = { provider: uw1Provider }
usw1Args
to calls like this.early-musician-41645
11/30/2018, 10:08 PMbucket.onObjectCreated("sdp-tsm-s3-artifact-indexer-onNewObject", onObjectCreatedLambda, <pulumi.ComponentResourceArgs>{ provider: uw1Provider });
error: TSError: ⨯ Unable to compile TypeScript:
index.ts(29,98): error TS2694: Namespace '"/home/tsi/eshamay/git/mustang/sdp-mustang-terraform/pulumi/s3-object-indexer/node_modules/@pulumi/pulumi/index"' has no exported member 'ComponentResourceArgs'.
ResourceOptions
for provider, some take ComponentResourceArgs
, and in some cases I have to do a type cast, etc. It's a bit confusing.
Either way, still stuck because I can't pass the provider into the onObjectCreated
methodlemon-spoon-91807
11/30/2018, 10:12 PMearly-musician-41645
11/30/2018, 10:13 PMindex.ts(29,98): error TS2694: Namespace '"/home/tsi/eshamay/git/mustang/sdp-mustang-terraform/pulumi/s3-object-indexer/node_modules/@pulumi/pulumi/index"' has no exported member 'CompontentResourceOptions'.
lemon-spoon-91807
11/30/2018, 10:13 PMearly-musician-41645
11/30/2018, 10:14 PMindex.ts(29,90): error TS2559: Type 'ComponentResourceOptions' has no properties in common with type 'ObjectCreatedSubscriptionArgs'.
lemon-spoon-91807
11/30/2018, 10:14 PMearly-musician-41645
11/30/2018, 10:15 PMerror: Error: Explicit providers may not be used with component resources
lemon-spoon-91807
11/30/2018, 10:15 PMearly-musician-41645
11/30/2018, 10:16 PMbucket.onObjectCreated("sdp-tsm-s3-artifact-indexer-onNewObject", onObjectCreatedLambda, {}, <pulumi.ComponentResourceOptions>{ provider: uw1Provider });
error: Error: Explicit providers may not be used with component resources
lemon-spoon-91807
11/30/2018, 10:17 PMmicroscopic-florist-22719
{ providers: { aws: uw1Provider } }
lemon-spoon-91807
11/30/2018, 10:19 PMearly-musician-41645
11/30/2018, 10:19 PMerror: Plan apply failed: Error putting S3 notification configuration: BucketRegionError: incorrect region, the bucket is not in 'us-west-2' region
status code: 301, request id: , host id:
// @ts-check
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
// Lambda handlers that processes the object creation and removal events in S3 and adds corresponding
// items to a DynamoDB table for indexing the objects.
let onObjectCreatedLambda = function(event: any, context: any, callback: any) {
let record = event.Records[0];
console.log("==== New object created");
console.log("Event: "+JSON.stringify(event));
console.log("Event Type: "+record.eventName);
console.log("Region: "+record.awsRegion);
console.log("Bucket: "+record.bucket.name);
console.log("Object: "+JSON.stringify(record.s3.object));
}
// Fetch all the buckets that need the lambda attached
// Fetch an existing bucket
let uw1Provider = new aws.Provider("us-west-1-aws-provider", { region: aws.USWest1Region });
const bucket = new aws.s3.Bucket('prod-us-west-1', {}, { id: 'sdp-tsm-prod-uw1-artifacts', provider: uw1Provider })
// Create a new bucket
//const bucket = new aws.s3.Bucket("eshamay-test-bucket");
const bucketName = bucket.id;
// Trigger a Lamda function when something is added
bucket.onObjectCreated("sdp-tsm-s3-artifact-indexer-onNewObject", onObjectCreatedLambda, {}, <pulumi.ComponentResourceOptions>{ providers: { aws: uw1Provider } });
// Export the bucket name.
exports.bucketName = bucketName;
lemon-spoon-91807
11/30/2018, 10:30 PMearly-musician-41645
11/30/2018, 10:35 PMonObjectCreated
lineUpdating (s3-object-indexer-dev):
Type Name Status Info
pulumi:pulumi:Stack s3-object-indexer-s3-object-indexer-dev
>- ├─ aws:s3:Bucket prod-us-west-1 read
+ │ └─ aws:s3:BucketNotification sdp-tsm-s3-artifact-indexer-onNewObject **creating failed** 1 error
+ └─ aws:s3:BucketEventSubscription sdp-tsm-s3-artifact-indexer-onNewObject created
+ ├─ aws:iam:Role sdp-tsm-s3-artifact-indexer-onNewObject created
+ ├─ aws:iam:RolePolicyAttachment sdp-tsm-s3-artifact-indexer-onNewObject-32be53a2 created
+ ├─ aws:lambda:Function sdp-tsm-s3-artifact-indexer-onNewObject created
+ └─ aws:lambda:Permission sdp-tsm-s3-artifact-indexer-onNewObject created
Diagnostics:
aws:s3:BucketNotification (sdp-tsm-s3-artifact-indexer-onNewObject):
error: Plan apply failed: Error putting S3 notification configuration: BucketRegionError: incorrect region, the bucket is not in 'us-west-2' region
status code: 301, request id: , host id:
lemon-spoon-91807
11/30/2018, 10:36 PMearly-musician-41645
11/30/2018, 10:38 PMlemon-spoon-91807
11/30/2018, 10:58 PMearly-musician-41645
11/30/2018, 11:08 PMlemon-spoon-91807
11/30/2018, 11:08 PMearly-musician-41645
11/30/2018, 11:42 PMlemon-spoon-91807
11/30/2018, 11:43 PMnode_modules/@pulumi/aws/s3/s3Mixins.js
early-musician-41645
11/30/2018, 11:56 PMlemon-spoon-91807
11/30/2018, 11:57 PMearly-musician-41645
12/01/2018, 6:10 PM